【Linux服务器】-mysql数据库主备实现

2.mysql数据库主备实现

2.1.主备配置

2.1.1.前置环境准备

服务名称服务器IP角色数据库版本
mysql-01192.168.6.136mastermysql-8.0.4
mysql-02192.168.6.135slavemysql-8.0.4

1、确保2台数据库之间的网络是互通的
2、配置期间不能有数据写入

2.1.2.master数据库服务器配置

编辑数据库配置文件

vi /etc/my.cnf

cat  >> /etc/my.cnf <<EOF 
#服务器 id,随意,但要唯一
server-id = 1  
#二进制文件的名
log-bin = mysql-bin 
#设置日志最大为1G
max_binlog_size=1024M
#设置binlog文件最大保留天数30天
expire_logs_days=30
#数据库宕机恢复后,自动同步缺少的数据
relay_log=mysql-relay-bin
relay_log_recovery=1
#设置自增id的初始值为1,每次增量为2
auto_increment_offset=1
auto_increment_increment=2
#开启gtid
gtid_mode=ON
enforce_gtid_consistency=1
#需要同步的数据库,如test1,test2,根据实际情况配置
binlog-do-db=test1
binlog-do-db=test2
#不要同步的数据库
binlog-ignore-db=mysql,information_schema,performance_schema,sys
#不要同步的表
#replicate-ignore-table=库名.表名
EOF

创建同步用户

use mysql;
#创建用户
create user 'user_sync'@'%' identified by 'mypassword';
#授权账号复制权限
grant replication slave on *.* to 'user_sync'@'%';
#刷新配置
FLUSH PRIVILEGES;
reset master;
#重置master信息
#说明:同步开始前,不要有数据写入,否则影响bin-log日志文件
flush tables with read lock;
#锁表命令,在同步配置完成后再使用解锁表命令:unlock tables;

输出File 和 Position 值

show master status;
#记下输出中的 File 和 Position 值,后续在从库上使用
| mysql-bin.000001 |      157 | 

2.1.3.slave数据库服务器配置

编辑数据库配置文件

cat >>/etc/my.cnf <<EOF

server-id = 2
#二进制日志文件名
log-bin=master-b-bin
#二进制日志格式
binlog-format=ROW
#设置日志最大为1G
max_binlog_size=1024M
#设置binlog文件最大保留天数30天
expire_logs_days=30
#数据库宕机恢复后,自动同步缺少的数据
relay_log=mysql-relay-bin
relay_log_recovery=1
#设置自增id的初始值为1,每次增量为2
auto_increment_offset=2
auto_increment_increment=2
#开启gtid
gtid_mode=ON
enforce_gtid_consistency=1
#需要同步的数据库,如test1,test2,根据实际情况配置
binlog-do-db=test1
binlog-do-db=test2
#不要同步的数据库
binlog-ignore-db=mysql,information_schema,performance_schema,sys
#不要同步的表 
#replicate-ignore-table=库名.表名
EOF

编辑同步数据库指向

stop slave;
change master to
 master_host = '192.168.6.136',
 master_user = 'user_sync',
 master_password = 'mypassword',
  #主服务器数据库上的file值(不能有空格)
 master_log_file = 'mysql-bin.000001',
  #主服务器数据库的Position值
 master_log_pos = 157;

start slave;

显示同步情况

show slave status\G
当Slave_IO_Running和Slave_SQL_Running均为Yes时,代表正在保持同步

2.2.主备故障切换

3.mysql数据库主主

登录备数据库

use mysql;
#创建用户
create user 'user_sync_b'@'%' identified by 'mypassword';
#授权账号复制权限
grant replication slave on *.* to 'user_sync_b'@'%';
#刷新配置
FLUSH PRIVILEGES;
reset master;
#重置master信息
#说明:同步开始前,不要有数据写入,否则影响bin-log日志文件
flush tables with read lock;
#锁表命令,在同步配置完成后再使用解锁表命令:unlock tables;

输出File 和 Position 值

show master status;
#记下输出中的 File 和 Position 值,后续在从库上使用
| mysql-bin.000001 |      157 | 

导出数据库

mysqldump -u 用户名 -p --all-databases > all_databases_backup.sql
mysql -u 用户名 -p < all_databases_backup.sql

编辑同步数据库指向

stop slave;
change master to
 master_host = '192.168.6.135',
 master_user = 'user_sync_b',
 master_password = 'mypassword',
  #主服务器数据库上的file值(不能有空格)
 master_log_file = 'mysql-bin.000001',
  #主服务器数据库的Position值
 master_log_pos = 157;

start slave;

显示同步情况

show slave status\G
当Slave_IO_Running和Slave_SQL_Running均为Yes时,代表正在保持同步
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深度学习007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值