Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

主服务器将所有命令写入二进制日志当中,从服务器将主服务器中的二进制日志复制到中继日志中,在执行一遍,即实现复制。


第一种方法:


一、master服务器配置:
1、停止服务:
wKiom1NVNxWiH5WtAABfdsRuJv0608.jpg
2、修改配置文件:
wKiom1NVNxaB_TniAAD0zwI37jM326.jpg
3、创建目录、修改属组:
wKioL1NVNuzT83IsAADDy-ioh1s781.jpg
4、启动服务、端口:
wKiom1NVNxazK3OpAACzKBH0WNY116.jpg
5、授权用户
wKioL1NVNu3xtwqUAADx0FVBU1Q937.jpg



二、slave服务器配置:

1、停止服务:
wKiom1NVNxegbwTjAABhlxGcGjs622.jpg
2、修改配置文件:
wKioL1NVNu3DjXNBAADypp6guJY902.jpg
3、创建目录、修改属组:
wKiom1NVNxfhfdoSAAC9tci4kdE712.jpg
4、启动服务:
wKioL1NVNu6CXe0eAABdLCVY8iI229.jpg
5、连入mysql,查看relay日志状态:
wKiom1NVNxiw555TAAIBVoYU-dQ949.jpg
6、查看验证(此时是没有文件的):

wKioL1NVNu-ANZ_IAABot0uYN-4142.jpg

7设置连接主服务器:

wKioL1NVNu_z-pTwAAC0Z0TWiBI519.jpg



三、查看master、slave节点状态及启动slave节点:
1、查看master进程数量:
wKiom1NVNxniDNiSAAGHMQbNBqI167.jpg
2、master查看 操作日志状态:
wKiom1NVNxmRRiVOAAET91NTFQA850.jpg
3、slave节点查看同步状态:
wKioL1NVNvCSrM8uAAItvJ1kRV0313.jpg
4、启动同步连接服务:
wKioL1NVNvHB41lpAAB0a9PgIi8073.jpg
5、slave节点查看验证文件:
wKiom1NVNxqjV3b5AAB_n6vAnkU964.jpg
6、slave节点查看同步状态:
wKiom1NVOO6AGeoBAAHWuuHExB0383.jpg



四、验证从0开始同步:

1、master上创建库:
wKiom1NVNy-zMp1-AABzJpNgvsc505.jpg
2、master查看刚刚创建的库:
wKioL1NVNwbR89tgAADFGE_GiZU817.jpg
3、master查看 操作日志状态
wKioL1NVNwbCSUmwAAEuQ7NslXU891.jpg
4、slave查看同步状态:
wKiom1NVNzCQLVqYAAHWlK4e-_U618.jpg
5、slave查看是否同步:
wKioL1NVNweDEHzQAADOwS5wjJU127.jpg
6、master创建表且插入数据:
wKiom1NVNzGQ3kxeAAEJHsg1_Yo018.jpg
7、master查看操作日志状态:
wKiom1NVNzHQ1Ap3AAE8h4ACk9g577.jpg
8、slave查看同步状态:
wKioL1NVNwiA6_c3AAHwA0ailrw122.jpg
9、查看同步的表:

wKiom1NVNzLC7IoZAAE7t9oDg2Y713.jpg

9、停止使用

wKioL1NVNwnSy5DnAAB8POLP07o728.jpg

10、现在我停止mysqld服务, 而后我又想启用mysqld服务,你说这时候会报错吗?
wKiom1NVNzLg1GouAAClCc0D4oE686.jpg
11、这时候你直接启动可以吗?这时候会报错的,请看:

wKioL1NVNwnQKoEpAAFbDgKMDQQ548.jpg


12、这时候你停止服务后再次连接时候mysql会自动启动的服务的,请看:
12.1 停止连接服务:
wKiom1NVNzPyBquiAABtF0dtpno539.jpg
12.2 先停止服务在启动:
wKioL1NVNwqwGbsEAADikpn_jUY006.jpg
12.3 查看同步状态:

wKiom1NVNzPy9rkMAAHh9kYqhw0680.jpg





第二种方法:


一、需求:
1、演示从一半的时候开始复制,而不是从0开始复制:
2、为了演示效果我们让这服务器上直接导入我之前准备好的库,然后让从服务器不从0开始复制了,这样的话会很慢的,我们从主上做备份后到从一半时恢复,看下怎么操作呢?
3、为了演示效果,这里就把刚刚做数据删了,


二、master、slave的配置:

1、slave 删除、停止传输(按理来说是不可以修改的):

wKioL1NVNwrR2jYAAAC3sEHCBec837.jpg

2、master删除:

wKioL1NVNwqTRFdeAABS2xSRSpc659.jpg

3、master导入数据:

wKiom1NVNzTi_80lAACeHUlbL7A716.jpg

4、查看 操作日志状态(这时就已经产生很多信息了)
wKioL1NVNyeRWC4KAAEP5YKVAXo975.jpg
4.1 这时我不行让从服务器从0开始复制怎么办呢? 锁定位置,从锁定位置开始复制:



三、备份及同步数据:

1、master创建库、表、插入数据:

wKiom1NVN1GgIOvvAADyLGoNDjQ149.jpg

2、master做备份:

wKiom1NVN1HxVLExAACLD4NQWEM032.jpg

3、master的数据复制slave上:

wKioL1NVNyjTro2UAABjqOwbSg0535.jpg

4、slave确认传输是停止状态:

wKiom1NVN1GAZLTGAAHHNeOhyqM512.jpg

5、slave导入数据并连入mysql:

wKioL1NVNyjxbjElAABB8hSWJ-A187.jpg

5.1 查看:

wKioL1NVNyjh2F3VAADhBqPlM6U383.jpg

5.2 slave 授权:

wKiom1NVN1LDGB-pAAEE0euhjQY329.jpg

5.3 启动传输服务

wKiom1NVN1Ky4a19AABM05PKE5I347.jpg

5.4 查看是否启动:

wKioL1NVNymjGSgpAAHbBEbpB9M713.jpg

6、master测试创建数据:

wKiom1NVN1PQBhpCAABaMdMu0qI719.jpg

6.1 查看 操作日志状态
wKioL1NVNynwSqE3AAEnM***h8E901.jpg
7、查看是否同步及查看同步状态:
wKiom1NVN1OzfCP-AAHjATfibL8979.jpg
7.1 查看testdb库是否同步:
wKioL1NVNyqDKSlQAADsHWQEtxc643.jpg






Welcome to the xiaomazi blog!!