Chinaunix首页 | 论坛 | 博客
  • 博客访问: 452706
  • 博文数量: 61
  • 博客积分: 507
  • 博客等级: 下士
  • 技术积分: 1185
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-20 00:19
文章分类

全部博文(61)

文章存档

2014年(13)

2013年(21)

2012年(27)

分类: Mysql/postgreSQL

2014-03-09 23:13:43

服务器名 IP 系统 MySQL
odd.example.com 192.168.1.116 rhel-5.8 5.5.16
even.example.com 192.168.1.115 rhel-5.8 5.5.16

假设两台服务器都是新上的,新机器,要同步的库是 db_rocky
如果说主服务器是已经上的,mysqldump -u root -p -h XXX.XXX.XXX.XXX -F -l --master-data=1 --databases test > test.sql
通过热备备份之前的数据,而且有一个好处就是配置master_log_pos的时候不用看master的 直接从test.sql来看就可以了
打开主服务器的二进制日志文件记录操作记录
从服务器能够从主服务器取二进制日志文件
从服务器重放事件并应用在自己的服务器上

 
 (一) 修改 /etc/my.cnf 配置文件,为其添加以下内容:

    在 ODD 上 

  1. [mysqld]
  2. ....
  3. log-bin=mysql-bin
  4. server-id=116
  5. sync_binlog=1 //每次提交事务的时候把二进制日志的内容同步到磁盘上
     在 EVEN 上
  1. [mysqld]  
  2. ....
  3. log-bin=mysql-bin
  4. server-id=115
  5. sync_binlog=1

            配置完成之后分别重启服务器ODD  EVEN 上的mysql服务  
(二) 创建同步用户
     
     在 ODD上创建同步账号是为了能够去主服务器取二进制日志
    replication slave
    replication client 为什么用这两个权限

  1. mysql> grant replication slave,replication client on *.* to 'water'@'192.168.1.%' identified by 'cdio2010';  
  2. Query OK, 0 rows affected (0.00 sec)  
  3. mysql> flush privileges;  
  4. Query OK, 0 rows affected (0.00 sec)         
(三)查看主服务器ODD上二进制日志文件状态
       在ODD

  1. mysql> show master status \G 
  2. *************************** 1. row ***************************  
  3.             File: mysql-bin.000007  
  4.         Position: 438  
  5.     Binlog_Do_DB: db_rocky  
  6. Binlog_Ignore_DB: mysql  
  7. 1 row in set (0.00 sec)  
(四)在从服务器EVEN上用change master to语句指定同步位置 : 
   
     在EVEN对应的user和password都是grant授权的账号
  1. mysql> change master to 
  2.     -> master_host='192.168.1.116',
  3.     -> master_user='water',
  4.     -> master_password='cdio2010',  
  5.     -> master_log_file='mysql-bin.000007',
  6.     -> master_log_pos=438;  
  7. Query OK, 0 rows affected (0.15 sec)  
     注:用change master to 不用配置my.cnf文件的原因是这样从服务器也可以成为主服务器,如果更改了my.cnf文件,要想生效必须得重新启动,而用前者却不用用stop slave就可以
             master_log_file,master_log_pos由上面主服务器查出的状态值中确定
             master_log_file对应File,master_log_pos对应Position
    
    在从服务器EVEN上启动线程 stop slave / reset slave 停止/重置
  1. mysql> start slave;  
  2. Query OK, 0 rows affected (0.00 sec)  
     查看从服务器EVEN上状态 : show slave status / show processlist 可以通过进程来查看
  1. EVEN上:  
  2.   
  3. mysql> show slave status\G 
  4. *************************** 1. row ***************************  
  5. 主要关注以下 2 个参数:  
  6. ...  
  7. ...  
  8.              Slave_IO_Running: Yes  
  9.             Slave_SQL_Running: Yes  
  10. ...  
  11. ...  
  12. mysql> show processlist \G

     ㈦ 测试
  1. ODD 上  
  2.   
  3. mysql> show databases;  
  4. +--------------------+  
  5. | Database           |  
  6. +--------------------+  
  7. | information_schema |  
  8. | db_rocky           |  
  9. | mysql              |  
  10. | performance_schema |  
  11. | test               |  
  12. +--------------------+  
  13. 5 rows in set (0.00 sec)  
  14.   
  15. mysql> use db_rocky;  
  16. Database changed  
  17. mysql> show tables;  
  18. Empty set (0.00 sec)  
  19.   
  20. mysql> create table water (id int);  
  21. Query OK, 0 rows affected (0.04 sec)  
  22.   
  23. mysql> insert into water values(1);  
  24. Query OK, 1 row affected (0.01 sec)  
  25.   
  26. mysql> commit;  
  27. Query OK, 0 rows affected (0.00 sec)  
  28.   
  29.   
  30. 在 EVEN 上  
  31.   
  32. mysql> show tables;  
  33. +--------------------+  
  34. | Tables_in_db_rocky |  
  35. +--------------------+  
  36. | t_rocky            |  
  37. | water              |  
  38. +--------------------+  
  39. 2 rows in set (0.00 sec)  
  40.   
  41. mysql> select * from water;  
  42. +------+  
  43. | id   |  
  44. +------+  
  45. |    1 |  
  46. +------+  
  47. 1 row in set (0.00 sec)
  48. 测试成功 
阅读(2181) | 评论(0) | 转发(0) |
0

上一篇:mysqldump 参数说明

下一篇:lvs+keepalived搭建

给主人留下些什么吧!~~