免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 872 | 回复: 0
打印 上一主题 下一主题

Mysql Replication [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-18 17:51 |只看该作者 |倒序浏览
类似于从一台服务器拷贝数据库到另一台服务器上,但它是通过定义Master 和Slave的关系去实时地保证两个数据库的完全同步,这个功能在Mysql的3.23版中开始出现。
Master/Slave模式备份
TestEnv:
Master:Mysql-4.1.12 on Redhat9.0         IP:192.168. 0.217
Slave: Mysql-4.1.12 on Redhat9.0                 IP:192.168.10.244
1、编译,安装
1.        #tar –zxvf Mysql-4.1.12.tar.gz
2.        #cd Mysql-4.1.12
3.        .#/configure –prefix=/var/eyou/mysql
4.        #make
5.        #make install
6.        #chown –R root /var/eyou/mysql
7.        # chown –R mysql /var/eyou/mysql/var
8.        #chgrp –R mysql /var/eyou/mysql
9.        #scripts/mysql_install_db
10.        #cp support-files/my-medium.cnf /etc/my.cnf
2、Master 机器设置权限,赋予Slave机器FILE及Replication Slave权利,并打包要同步的数据库结构。
Master# pwd
/var/eyou/mysql/bin
Master#./mysql –u root –p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.12
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>; GRANT FILE ON *.* TO rep@192.168.0.244 IDENTIFIED BY ‘eyou’;
mysql>; GRANT REPLICATION SLAVE ON *.*  TO rep@192.168.0.244 IDENTIFIED BY ‘eyou’;
赋予192.168.10.244也就是Slave 机器有File权限, 这个4.1.12版对replication的权限好像做了调整,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。
然后打包要复制的数据库
Master# cd var
Master# tar czvf reptest.tar.gz reptest
这样,我们得到一个reptest数据库的打包文件reptest.tar.gz
2设置主服务器Master的my.cnf,启动Mysql服务
Master# vi /etc/my.cnf
在[mysqld]添加或修改以下的
[mysqld]
log-bin
server-id=1
sql-bin-update-same
binlog-do-db= reptest
针对reptest 库做replication 功能
然后把Master主服务器的Mysql重启。
Master# /var/eyou/mysql/bin/mysqladmin –u root –p shutdown
Master# /var/eyou/mysql/bin/safe_mysqld --user=mysql &
3、建立Slave数据库
刚才在Master中打包了reptest.tar.gz,它的作用就是要在Slave恢复成一样的数据库。先把Master 的reptest.tar.gz文件传到Slave机器中去。然后
Slave# tar zxvf reptest.tar.gz -C /var/eyou/mysql/var/
4、修改Slave服务器的my.cnf
Slave# vi /etc/my.cnf
在[mysqld]添加或修改以下的
master-host=192.168.10.217
master-user=rep
master-password=eyou
master-port=3306
server-id=2
master-connect-retry=60
replicate-do-db=reptest    [要更新的数据库]
log-slave-updates
5、删除Slave端数据库目录中的master.info
Slave# rm /var/eyou/mysql/var/master.info
6、重启动Slave的slave start。
Slave# /var/eyou/mysql/bin/mysqladmin –u root –p shutdown
Slave# /var/eyou/mysql/bin/safe_mysqld --user=mysql &
7、测试
先检测两个Mysql数据库中的reptest是否正常。
正常情况应该是Master和Slave 中的Mysql 都有相同的reptest 数据库,并且里面的数据都一样。
然后测试replication 功能是否起用。
在Master中的reptest数据库添加一笔数据:
Master# /var/eyou/mysql/bin/mysql –u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12 to server version: 4.1.12
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>; use  reptest;
Database changed
mysql>; INSERT INTO rep_table  VALUES ('test1', '4321', 'T',24);
Query OK, 1 row affected (0.00 sec)
mysql>;
然后查看Slave机器的reptest数据库:
Slave#/var/eyou/mysql/bin/mysql –u root –p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12 to server version: 4.1.12
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>; use  reptest;
Database changed
mysql>;select * from reptable;;
+------+------+------+------+
| id   | name | sex  | age  |
+------+------+------+------+
| test1| 4321 |  T  |   24  |
+------+------+------+------+
1 row in set (0.00 sec)
PS :
1,Slave机器的权限问题,不但要给slave机器File权限,还要给它REPLICATION SLAVE的权限。
2.在修改完Slave机器/etc/my.cnf之后,slave机器的mysql服务启动之前,记得要删除掉master.info
3,在show master status 或着show slave status 不正常时,看看.err是怎样说的。
双机互备模式
在原有的master/slave设置基础上做下列修改即可:
Master# vi /etc/my.cnf
添加:
master-host=192.168.0.244
master-user=rep
master-password=eyou
master-connect-retry=60
rplicate-do-db=reptest
log-slave-updates
保存退出重起mysql服务
Slave#vi /etc/my.cnf
添加:
binlog-do-db=reptest
sql-bin-update-same
保存退出重起mysql服务
PS :
1,以前Slave机器的server-id不用变
2,重启完mysql服务后,记得看一slave status,最好slave stop / slave start


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/19228/showart_384651.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP