Mysql 的数据库复制功能 (Replication Database)
来源:互联网 发布:摄像头 数据小偷 编辑:程序博客网 时间:2024/06/07 23:54
那么Mysql 能不能实现两个系统之间通过TCP/IP去复制数据库?能不能实现实时复制呢?也就是说能不能实现同步(Synchronization)的问题。先概括介绍一下Mysql 的Replication Database功能。
复制(Replication)类似于拷贝数据库到另一台服务器上,但它是通过定义Master 和Slave的关系去实时地保证两个数据库的完全同步。这个功能在Mysql的3.23版中开始出现。
下面大家一起来测试一下Mysql的Replication 功能。
作者的平台是:
Slave: Mysql 3.23.56-log on FreeBSD 4.8 Stable IP:192.168.10.200
/usr/local/mysql/bin
MasterBSD#./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: 3.23.53-log
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql> GRANT FILE ON *.* TO replication@192.168.10.200 IDENTIFIED BY ‘repplication’;
然后打包要复制的数据库
MasterBSD# tar czvf repdatabase.tar.gz repdatabase
这样,我们的到一个repdatabase数据库的打包文件repdatabase.tar.gz
2设置主服务器Master的my.cnf,启动Mysql服务log-bin
server-id=1
sql-bin-update-same
binlog-do-db= repdatabase
然后把Master主服务器的Mysql重启。
MasterBSD# /usr/local/mysql/bin/safe_mysqld --user=mysql &
刚才我们在Master中打包了repdatabase.tar.gz,它的作用就是要在Slave恢复成一样的数据库。先把Master 的repdatabase.tar.gz文件传到Slave机器中去。然后
master-user=replication
master-password=replication
master-port=3306
server-id=2
master-connect-retry=60
replicate-do-db=reldatabase [要更新的数据库]
log-slave-updates
SlaveBSD# /usr/local/mysql/bin/safe_mysqld --user=mysql &
先检测两个Mysql数据库中的repdatabase是否正常。
正常情况应该是Master和Slave 中的Mysql 都有相同的repdatabase 数据库,并且里面的数据都一样。
然后我们测试replication 功能是否起用。
在Master中的repdatabas数据库添加一笔数据:
Enter password:
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 12 to server version: 3.23.53-log
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql> use repdatabase;
Database changed
mysql> INSERT INTO `rep_table` ( `name` , `num` , `selectd ` ) VALUES ('test1', '4321', 'Y');
Query OK, 1 row affected (0.00 sec)
mysql>
Enter password:
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 17 to server version: 3.23.56-log
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql> select * from repdatabase.rep_table;
+--------+-----------+------------+
| name | num | selectd |
+--------+-----------+------------+
| aaa | 44444 | N |
| ddd | 111112222 | N |
| insert | 1234 | N |
| test | 12345 | N |
| test1 | 4321 | Y | 这一行就是Master插入的时候Slave 同步得回来的数据。
+--------+-----------+------------+
5 rows in set (0.01 sec)
mysql>
7、互为replication
在Mysql 的文档资料中也指出了,一台Mysql机器同样可以作为Master也可以作为Slave的,也可以互相replication数据。
8、应用
replication可以用在那方面呢?我的想法是,一台Mysql生产机器在提供繁忙的SQL查询,比如说是股市的查询,那它仅仅是作为查询而已。那么我们就可以通过两台机器,提供查询的机器为Slave,那么数据录入的机器是Master,通过双网卡去进行,请看下图:
这样的好处是显而易见,Slave作为大量SQL查询的服务器,繁忙、任务大!而且对着Internet,破坏可能性也大!因此,引入Mysql的replication我们可以方便、安全地管理数据库!
【来源】
- Mysql 的数据库复制功能 (Replication Database)
- MYSQL中replication(主从复制)的原理
- MySQL Replication同步复制的延时监控
- mysql replication 复制的一些问题
- MySQL Replication(复制)基本原理
- MySQL Replication(复制)基本原理
- MySQL+Replication(复制)基本原理
- MySQL Replication(复制)基本原理
- MYSQL 主从复制(Replication)
- MySQL Replication(复制)基本原理
- MySQL Replication(复制)基本原理
- mysql复制replication
- mysql主从复制(replication)
- MySQL Replication(复制)基本原理
- 理解MySQL复制(Replication)
- 配置MySQL主从复制(Replication)
- MySQL 主从复制 replication 实验!
- MySQL 5.6 Replication 复制 FAQ
- Python Web 框架,第 1 部分: 使用 Django 和 Python 开发 Web 站点(转)
- 封装delphi Hook Api
- [讨论]闭合浮动元素的方法与差别
- 利用Debug Api 获得QQ2007密码
- 悲观的想法
- Mysql 的数据库复制功能 (Replication Database)
- 转载 浅谈校内网的技术架构
- BOOTP和DHCP
- Visual Studio 2008 简体中文专业版
- 海量数据网站的数据库SQL方面的优化
- 中国IT工作者35岁后的发展出路调查报告
- struts代码
- change document
- 光线游戏引擎