您的位置:首页 > 数据库 > MySQL

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

2016-04-22 11:40 916 查看
看过一本书,总要留下点痕迹

搭建复制的环境,需要一台主服务器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的克隆,然后按照复制的步骤搭建主从复制的环境,就可以完成配置。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: