MySQL数据库热备份
1. 集群测试环境
1.1 环境介绍
集群 IP : 192.168.21.113 、192.168.21.114、192.168.21.116、192.168.21.117
MySQL服务器1:192.168.21.113
MySQL服务器2:192.168.21.116
MySQL版本信息:MySQL 5.6.19
HADOOP版本号:CDH-4.5.0
操作系统:CentOS
1.2 数据库安装
在主机1和主机2上分别安装好对应的数据库版本(具体安装介绍请参考《LINUX下安装MySQL操作文档》)。
2. 进行主机1的数据库配置
2.1 添加同步账号
登陆MySQL操作界面,在主机1服务器上为主机2服务器建立一个用来同步的连接账户,该账户必须授予复制权限。
操作指令:
mysql> GRANT REPLICATIONCLIENT,REPLICATION SLAVE ON *.* TO kingpoint2@'192.168.21.116' IDENTIFIED BY'kingpoint';
mysql> flush privileges;
2.2 测试同步账号的连接性
登陆主机2,用账号kingpoint2对主机1进行数据库访问
操作指令:
mysql -h 192.168.21.113 -u kingpoint2 -p回车后要求输入密码,密码为kingpoint
如果登陆成功,则可以继续进行双机热备,否则请查找问题。
2.3 修改主机1的配置文件
配置文件目录为:/etc/my.cnf
新增属性截图:
server-id 为服务号必须唯一
log-bin 启用日志文件
binlog-do-db 需要同步的数据库(可设置多个)
binlog-ignore-db 不需要同步的数据库(可设置多个)
relay_lob 启用MySQL SLAVE进程。
Log-slave 启用日志
log-slave-updates 自动更新
auto_increment_offset 自增标志
修改之后重启数据库。
命令格式:servicemysql restart
2.4 查看主机1服务器MySQL的状态文件
进入MySQL,输入命令:show master status\G
结果截图:
3. 进行主机2的数据库配置
3.1 添加同步账号
登陆MySQL操作界面,在主机1服务器上为主机2服务器建立一个用来同步的连接账户,该账户必须授予复制权限。
操作指令:
GRANT REPLICATION CLIENT,REPLICATION SLAVEON *.* TO kingpoint1@'192.168.21.113' IDENTIFIED BY 'kingpoint';
mysql> flush privileges;
3.2 测试同步账号的连接性
登陆主机1,用账号kingpoint1对主机1进行数据库访问。
操作指令:
mysql -h 192.168.21.116 -u kingpoint1 -p回车后要求输入密码,密码为kingpoint
如果登陆成功,则可以继续进行双机热备,否则请查找问题。
3.3 修改主机1的配置文件
配置文件目录为:/etc/my.cnf
修改截图:
修改之后重启MySQL服务。
命令格式:servicemysql restart
3.4 查看主机1服务器MySQL的状态文件
进入MySQL,输入命令:show master status\G
结果截图:
4. 利用change master语句指定同步位置
4.1 指定主机1的同步源为主机2的MySQL服务器
进入主机1的MySQL服务器
操作命令截图:
4.2 指定主机2的同步源为主机1的MySQL服务器
进入主机2的MySQL服务器
操作命令截图:
5.查看同步状态
5.1 在主机1的MySQL服务器上查看主机2的MySQL服务器的状态(对主机1来说,主机2就是slave)
查看截图:
查看下面两项值均为Yes,即表示设置从服务器成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果为NO,则要执行stop slave,reset slave,startslave来重启slave服务。
5.2 在主机2的MySQL服务器上查看主机1的MySQL服务器的状态(对主机2来说,主机1就是slave)
查看截图:
6. 测试同步数据
6.1 在主机1的test数据库中建表并插入测试数据。
相关命令:
Create table testdb(id int ,namevarchar(50));
Insert into testdb(1,’test1’);
6.2 在主机2的test数据库中查看是否有同步数据。
相关命令:
Select * from testdb;
6.3 在主机2的test数据库中建表写数据。
相关命令:
Insert into testdb values(2,’test2’);
Create table testdb2(id int,namevarchar(50));
Insert into testdb2 vlaues(1,’test2’);
6.4 在主机1的test数据库中查看是否有同步数据。
相关命令:
Select * from testdb;
Select * from testdb2;
如果上述四个操作都正确,则表示热备份成功。