千家信息网

mysql 备份 和半同步

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,一,自带的软件备份mysqldump1.mysqldump -uroot -p123456 --single-transaction --master-data=2 --all-databases >
千家信息网最后更新 2026年11月03日mysql 备份 和半同步

一,自带的软件备份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

head -30 2019-09-06.sql |grep MASTER_LOG_FILE ##查看二进制文件所在位置

2.使用二进制文件,生成恢复文件
二进制开启方法,在/etc/my.cnf 里添加 log_bin=(这里是路径名加名称),现网建议用网络盘,这个文件非常重要
先在刚才的备份过的数据里再写点数据

这里我用mysql -uroot -p123456 -e 'show master status;' 查看了二进制文件位置已经发生了变化,应为我增添了数据,我们在数据库做的操作都会记录在二进制日志文件当中,如果数据库蹦了,我们用刚才备份记录的位置对二进制文件进行恢复,就能取得刚才备份过后到数据库蹦的这一时间的数据,在加上先前的备份就可以取得完整的数据
mysqlbinlog --start-position=245 /var/lib/mysql/log_bin.000008 >logbin.sql
#指定位置,二进制文件位置,恢复到那个目录起什么名称
3.恢复数据库

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

上图是软件正确执行的返回结果,成功后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%';
#查看状态

从节点
配置下主从
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%';
#看下启动模块启动状态

start slave;##启动主从复制
show slave status\G; #查看主从复制状态
3.查看状态
SHOW GLOBAL STATUS LIKE '%semi%'

status 状态 为 ON 说明 半同步配置成功

备份 数据 文件 二进制 同步 数据库 模块 位置 状态 增量 日志 节点 配置 主从 注释 目录 路径 名称 命令 软件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网黑科技 上海喔噻互联网科技有限公司 奇酷互联网络科技 北京互联网络科技有限公司 丰台科技园 互联网 互联网科技ppt模板 兼蜜互联网科技 深圳卡尔迅互联网科技有限公司怎么样 互联网和高科技公司 央行互联网金融科技公司 互联网系的金融科技公司 互联网科技公司有风险吗 互联网媒体平台算高科技产业 如何创新互联网科技 深圳市罗太互联网科技有限公司 佛山市拉法互联网科技有限公司 互联网金融科技名词解释 珠海东科互联网科技有限公司 陕西九四连强互联网科技有限公司 数字互联网科技有限公司 互联网金融科技 湖北九亚互联网络科技有限公司 南京欣网互联网络科技有限公司 海南科技产业互联网平台 华中科技有哪些互联网大佬 新华互联网科技2019 恒银科技与互联网金融 高科技互联网发展前景如何 黑龙江互联网科技公司 重庆科技产业互联网有哪些
0