mysql 备份 和半同步
admin
2023-03-10 19:22:08
0次

一,自带的软件备份mysqldump

1.mysqldump -uroot -p123456 --single-transaction --master-data=2 --all-databases > /root/date +%F.sql
--single-transaction,想当于启了镜像,数据库可正常写入。
--master-data=2 记录备份那一时刻的二进制日志的位置,并且注释掉,1是不注释的用于二进制日志恢复
--all-databases 备份全部数据库,--databases cs1 只备份cs1数据库,可以备份多个,空格隔开
如果有主从复制且是基于gtid的 要加--set-gtid-purged=off
mysql 备份 和半同步
head -30 2019-09-06.sql |grep MASTER_LOG_FILE ##查看二进制文件所在位置
mysql 备份 和半同步
2.使用二进制文件,生成恢复文件
二进制开启方法,在/etc/my.cnf 里添加 log_bin=(这里是路径名加名称),现网建议用网络盘,这个文件非常重要
先在刚才的备份过的数据里再写点数据
mysql 备份 和半同步
这里我用mysql -uroot -p123456 -e 'show master status;' 查看了二进制文件位置已经发生了变化,应为我增添了数据,我们在数据库做的操作都会记录在二进制日志文件当中,如果数据库蹦了,我们用刚才备份记录的位置对二进制文件进行恢复,就能取得刚才备份过后到数据库蹦的这一时间的数据,在加上先前的备份就可以取得完整的数据
mysqlbinlog --start-position=245 /var/lib/mysql/log_bin.000008 >logbin.sql
#指定位置,二进制文件位置,恢复到那个目录起什么名称
3.恢复数据库
mysql 备份 和半同步
2019-09-06.sql 是第一次完整备份的,先恢复这,再恢复后面二进制文件生成的备份数据。

这样就完成数据完整备份恢复了,这种自带的之适用于小型备份,1G以内的

二.使用xtrabackup做完整和增量备份

1.先安装
yum install percona-xtrabackup.x86_64 -y
#软件在epel源里,在部署好epel源
2.完整备份
innobackupex --defaults-file=/etc/my.cnf --user=root --password="" --backup /root
mysql 备份 和半同步
上图是软件正确执行的返回结果,成功后root 目录下会有个以日期命令的目录,里面就是备份了
3.增量备份
innobackupex --user=root --password= --incremental /root/ --incremental-basedir=/root/2019-09-06_11-33-50
#--incremental /root/ 指定备份的路径 --incremental-basedir= 这后面写上次备份的目录
4.对数据做同步,合并增量备份
innobackupex --apply-log --redo-only /root/2019-09-06_11-33-50/
#因为备份需要时间,备份的过程当中新的事物可能没有同步到数据里,这个命令就是把当前的新事物同步到数据里,如果是最后一个备份,可做可不做,这边后面还有一个增量备份,所用必须要做
innobackupex --incremental --apply-log --redo-only /root/2019-09-06_11-33-50/ --incremental-dir=/root/2019-09-06_11-40-39
#将后面增量备份的数据附加到完整数据里,这样完整数据就包含了第二次备份的数据了,恢复时只恢复完整数据即可,命令第一个路径是完整备份的路径
5.恢复
innobackupex --defaults-file=/etc/my.cnf --copy-back /root/2019-09-06_11-33-50/
#直接恢复完整备份即可
ps 恢复的时候,mysql的根目录不能有文件,需要删了,恢复完了注意修改属主,如果启动不起来看看sulinux 是否关闭

三.半同步

1.先配置主节点配置文件
vim /etc/my.cnf
[mysqld]
skip_name_resolve=ON ##开启跳过名称解析
innodb_file_per_table=ON ##开启独立表空间
server_id=1 ##ID 唯一
log_bin=log-bin ##开启二进制日志 必须的
rpl_semi_sync_master_enabled = ON #开机启动半同步,如果模块还没安装,先注释掉
从节点
[mysqld]
skip_name_resolve=ON
innodb_file_per_table=ON
server_id=2
relay_log=relay-log ##开启中继日志,从节点必须开的
rpl_semi_sync_slave_enabled = ON ; #开机启动半同步,如果模块还没安装,先注释掉
2.安装半同步模块
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
#安装模块
set global rpl_semi_sync_master_enabled = ON;
#设置半同步状态为启动 注意如果要让它自动启动,要把它写到配置文件里
SHOW GLOBAL VARIABLES LIKE '%semi%';
#查看状态
mysql 备份 和半同步
从节点
配置下主从
CHANGE MASTER TO MASTER_HOST='192.168.0.14', MASTER_USER='rep', MASTER_PASSWORD='123456', MASTER_LOG_FILE='log_bin.000002', MASTER_LOG_POS=245;
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
#安装从节点模块
set global rpl_semi_sync_slave_enabled = ON ;
#启动模块
SHOW GLOBAL VARIABLES LIKE '%semi%';
#看下启动模块启动状态
mysql 备份 和半同步
start slave;##启动主从复制
show slave status\G; #查看主从复制状态
3.查看状态
SHOW GLOBAL STATUS LIKE '%semi%'
mysql 备份 和半同步
status 状态 为 ON 说明 半同步配置成功

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...