记录一下本人做数据库复制的实际操作步骤。
前提:两台linux服务器、配置相同、MySQL版本相同,都是5.6。
本人的复制的前提是主(源)数据库没有更新、写入操作。所以,根据mysql官方文档,并没有使用mysqldump数据快照。
参照:https://dev.mysql.com/doc/refman/5.6/en/replication.html
相关知识:
通过复制,可以将一台MySQL数据库服务器(源)中的数据复制到一台或多台MySQL数据库服务器(副本)中。默认情况下,复制是异步的,因此无需永久连接副本即可从源接收更新。
根据配置,您可以复制数据库中的所有数据库,选定的数据库甚至选定的表
MySQL中的复制功能支持单向异步复制,其中一台服务器充当源,而一台或多台其他服务器充当副本。
在MySQL 5.6中,除了内置的异步复制外,还支持半同步复制的接口。对于半同步复制,在返回到执行事务的会话之前,对源块执行的提交,直到至少一个副本确认它已接收并记录了事务事件为止。
MySQL 5.6还支持延迟复制,以便复制服务器故意在源后面至少延迟指定的时间。
有许多解决方案可用于设置两个服务器之间的复制,但是最佳的使用方法取决于数据的存在和所使用的引擎类型。
复制格式有两种核心类型:基于语句的复制(SBR),它复制整个SQL语句;和基于行的复制(RBR),它仅复制更改的行。您也可以使用第三种混合混合复制(MBR)。
在MySQL 5.6中,基于语句的格式是默认格式。
1、复制源(主服务器)配置
修改 /etc/my.cnf文件,内容如下
#开启二进制日志
log-bin=mysql-bin
#设置server-id,必须唯一(本人使用Ip)
server-id=216
# 不同步哪些数据库
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
# 只同步哪些数据库
binlog-do-db = ****db
修改完成后,重启数据库服务。
2、在复制源上创建专门用于同步的用户,也可以使用其他已知用户。
3、获取复制源二进制坐标
4、副本(从服务器)-配置
修改 /etc/my.cnf文件,内容如下
#设置server-id,必须唯一
server-id=217
修改完成后,重启数据库服务。
5、在副本服务器上,进入mysql,使用CHANGE MASTER TO,使用源中的复制坐标配置副本,告诉副本二进制日志文件以及该文件在其中需要开始复制的位置
6、在副本服务器上、启动复制线程
7、在副本服务器上、查看复制线程状态
数据库复制操作完成。