• ADADADADAD

    mysql主从复制配置(日志点)[ mysql数据库 ]

    mysql数据库 时间:2024-12-25 09:55:28

    作者:文/会员上传

    简介:

            一些mysql版本并不会开启二进制日志,所以一定要检查是否开启。如果一开始没开启,在以后需要开启,则必须重启数据库服务器,而数据库服务器重启会对业务造成很大

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

            一些mysql版本并不会开启二进制日志,所以一定要检查是否开启。如果一开始没开启,在以后需要开启,则必须重启数据库服务器,而数据库服务器重启会对业务造成很大影响。所以,尽管二进制日志会对性能有稍许影响,所以,无论是否要用复制、备份功能(增量日志也依赖二进制日志),都建议开启

            目前mysql支持两种复制类型:

                    1.二进制日志点

                    2.GTID(mysql>=5.7推荐使用)




            有些配置要重启后才能生效,为了不影响数据库的正常使用,最好在上线之前就配置好,特别是master服务器的配置更应该做为初始参数配置好



            log_bin:mysql-bin为日志文件前缀(之所以把日志文件和数据文件分开放,是为了提高io性能)

            server_id:用来区分不同服务器

            log_bin:mysql-bin为日志文件前缀(之所以把日志文件和数据文件分开放,是为了提高io性能)

            server_id:用来区分不同服务器

            relay_log:slave的中继日志也应该和数据文件分开,以提高io性能

            read_only:只读(使所有没有super权限的用户在从服务器上不能执行写操作的,不论这个用户是否具备写权限。这样做的好处是避免误操作写到从服务器上造成主从不一致的问题。但这个参数不能限制具有super权限的用户,比如root帐号。为了解决这个问题,mysql5.7之后引入了super_read_only这个参数将具备super权限的用户也限制了不能在从服务器上做写操作)

            skip_slave_start:在slave服务器重启时不会自动启动复制链路(默认情况下mysql在slave重启时会自动启动复制链路,如果存在问题,则主从复制链路会中断。所以正常情况下,我们应该在服务器重启后检查是否存在问题,然后手动启动主从复制链路)

            master_info_repository和relay_log_info_repository:把主从服务器的信息存储到innodb表中,默认情况下是存储到文件系统中的,这样如果从服务器出现宕机,则很容易出现文件记录和实际同步信息不同步的情况。而把相关信息存储到表中,可以利用innodb丰富的恢复机制保证记录数据的一致性



    在master上建立复制帐号:

    (注意:只设置了该有的权限REPLICATION和SLAVE权限)




    初始化slave数据:




    启动基于日志点的复制链路:







    主从复制演示:


    主服务器配置:

            先看下主服务器的binlog日志是否开启,以及配置好server-id(这里配置为ip的后三位):

                    

                    

                    

            

    从服务器(slave)配置:

            配置server-id和relay_log、master_info_repository、relay_log_info_repository,再加上read_only

                    

                    

            手动将master的server-id改为100(由于未重启master):

                    

            slave并没有业务访问,所以是可以重启的:

                    

            (如果是mysql5.7及以上版本,还有个问题要注意:增加了个uuid值,默认情况下在data目录下有个auto.cnf文件中,如果用镜像方式安装的mysql服务器,server-uuid应该是一样的,所以需要将auto.cnf删掉,再重启自动生成一个新的uuid值。uuid相同主从复制会出现问题)

            

    在主服务器上建立复制帐号,并授权:

            

            (本例中:从服务器全在192.168.3.%网段上)


    mysql全备来初始化从服务器的数据:

            

            

            将全备拷贝到从服务器上:

                    

                    

            

    复制链路的配置(从服务器):

            

            (dba_repl是master创建的主从复制帐号,master_log_file是主服务器的二进制日志文件,master_log_pos是日志点)

                    查看master服务器的master_log_file和master_log_pos的方式(举例,显示的和本例无关):

                            

            启动从服务器:

                    

            检查slave的状态,是否启动:

                    执行命令show slave status:

                            


    mysql主从复制配置(日志点).docx

    将本文的Word文档下载到电脑

    推荐度:

    下载