mysql主从复制原理及配置步骤

看过一本书,总要留下点痕迹


搭建复制的环境,需要一台主服务器master,和一台从服务器slave,把主服务器上的数据备份到从服务器上,过程如下:


1 配置一个服务器作为master

      1.1

      配置二进制日志 : 这个日志记录了数据的变化,通过这个日志,把主服务器的变化发给从服务器

      配置服务器ID:唯一标识

      修改my.conf:

         1.1.1  log-bin = master-bin (指定二进制日志产生的所有文件的基本名)  

         1.1.2  log-bin-index = master-bin.index(索引文件,保存所有二进制文件的列表)

         1.1.3  server-id = 1

      1.2

       master上创建复制用户,用于把master上的数据复制到slave

       1.2.1 CREATE USER repl_user 创建用户repl_user

       1.2.2 GRANT REPLICATION SLAVE ON *.* TO repl_user IDENTIFIED BY 'xyzzy' 给该用户赋予复制的权限,密码为xyzzy

      

2 配置一个服务器为slave

       配置my.conf文件

       2.1 server-id : 2

       2.2 relay-log-index : slave-relay-bin.index

       2.3 relay-log = slave-relay-bin

3 将slave链接到master

       使用CHANGE MASTER TO命令使slave指向Master,然后使用 START SLAVE命令启动复制

       3.1 CHANGE MASTER TO

                   MASTER_HOST = "masteri-1"(主机名或ip地址)

                   MASTER_PORT = 3306

                   MASTER_USER = 'repl_user'

                   MASTER_PASSWORD = 'xyxxz'

       3.2 START SLAVE

上述是配置过程,配置好了,就可以实现主从复制,下面介绍下原理性的内容


介绍个重要的概念:二进制日志 binary-log

        它记录了数据库上的所有改变。执行完毕的数据库语句,会写入二进制日志。

        create table test(tmp varchar(100))

        insert into test values("1111111111")

        select * from test

        flush logs(强制轮换二进制日志)

        查看二进制文件的内容

        show binlog events\G

        log-name: master-bin.000001

        pos:4

        server-id:1

        end_log_pos:106

        info:server ver:5.1.33


        log-name: master-bin.000001

        pos:106

        server-id:1

        end_log_pos:197

        info:create table tbl

....省略了后面两个事件,一个是insert,还有一个是flush,pos,end_pos指的是文件的起止位置。


二进制记录了数据库的变化,但是如果master运行了好久,slave从头开始读master的二进制日志,效率太低。


所以可以通过先copy master的数据,在搭建主从复制的环境,实现主从复制,这是效率较高的方式。


1  show master status,显示二进制的当前pos位置,作为复制的起点,从起点往前的所有数据进行备份。

2  锁住master的表,主要锁写

3  mysqldump host=master.1 > backup.sql(生成备份文件,master副本)

4  解锁

5  slave机器上使用备份进行恢复


这样就会完成master的克隆,然后按照复制的步骤搭建主从复制的环境,就可以完成配置。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值