码迷,mamicode.com
首页 > 数据库 > 详细

mysql主从复制

时间:2014-11-25 16:34:47      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:mysql   主从复制   

1、mysql主从复制原理

对于主服务器来讲,会不停的吧当前数据库中产生的信息记录进二进制日志中,如果服务器端接收到客户端一个需要改变数据的语句之后,这个数据如果采用的是InnoDB的话,这些数据本身首先被记录进事务日志,这些会影响数据的语句会被记录进二进制日志中,而复制讲的是,另外一个从服务器上,被动的接受数据,本身并不接受客户端链接进来做任何写操作,复制是单向的,只能从主服务器到从服务器,因此,从服务器中的数据都是来自于主服务器,主服务是监听在3306端口上,从服务器启动了一个客户端进程,这个进程会向服务器点提供数据服务的端口发起请求,请求读取二进制日志中的事件,在主服务器点上,mysql主要提供认证服务,同时会启动一个sqldump线程,这个线程在接收到用户的请求后,并确保这个用户具有权限之后,会去读取二进制日志中的事件,如果客户端是第一次来请求,那么这个进程就读取日志中的第一个事件,读一个就发送给客户端一个,从服务的进程在接收到主服务器发行过来的数据之后,会保存在本地的中继日志,然后再启动一个具有特殊功能的线程,去中继之日中读取事件,读一行,在本地执行一下,以此类推,最终生成本地的数据库。mysql的复制时异步的,因此在接收到用户的请求之后,将结果返回给用户。并将信息存放在内存中,之后再记录进二进制文件中,这样会造成从服务器落后与主服务器,但是这样也是有好处的,如果你有一个错误操作,在这个时间内,立即去从服务器上备份数据就OK,这需要mysql管理员把握。

2、mysql主从复制的实现

   [1]首先确保主从服务器上的Mysql版本相同
   [2]在主服务器上操作
       (1)设置一个从数据库的账户,使用REPLICATION SLAVE赋予权限,如:   

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.99' IDENTIFIED BY '123456';
mysql> FLUSH PRIVILEGES; 
      (2)修改主数据库的配置文件my.cnf,开启BINLOG,并设置server-id的值,修改之后必须重启Mysql服务 

log-bin = mysql-bin
server-id=10
      (3)之后可以得到主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复

mysql> show master status\G;
      (4)将主数据库数据导入到从服务器,可以将数据库原始文件拷贝过去,也可以通过导出脚本,然后倒入到从服务器中,导出脚本前,为确保数据一致,需要对主数据库进行READ LOCK

mysql> flush tables with read lock;
然后进行数据库导出

mysqldump -h127.0.0.1 -p3306 -uroot -p test > /home/ceshi/test.sql
数据备份好之后,需要对主服务器恢复写错做

mysql> unlock tables;

   [3]在从服务器上操作
        (1)将导出的test.sql导入到从数据库上。
        (2)修改从数据库的配置文件my.cnf,指定主数据库的基本信息

server-id      = 20                
read-only = 1  //开启只读模式 
        (3)配置从服务器连接主服务器

mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.98', MASTER_USER='slave001', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=107;
mysql> START SLAVE;
         (4)在从服务器进行show salve status验证

mysql> SHOW SLAVE STATUS\G
如果Slave_IO_Running或者Slave_SQL_Running表示yes,就代表正常

mysql主从复制

标签:mysql   主从复制   

原文地址:http://blog.csdn.net/zhao1234567890123456/article/details/41482057

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!