千家信息网

MySQL+第三方软件备份

发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,一、使用binlog日志binlog日志: 二进制日志 MsSQL数据库服务日志文件的一种1、配置好MsQAL服务器,确保能使用密码登入2、调整/etc/my.cnf配置,并重启服务[root@mys
千家信息网最后更新 2025年11月10日MySQL+第三方软件备份

一、使用binlog日志

binlog日志: 二进制日志 MsSQL数据库服务日志文件的一种

1、配置好MsQAL服务器,确保能使用密码登入

2、调整/etc/my.cnf配置,并重启服务

[root@mysql-1 ~]#vim /etc/my.cof

log-bin-index=mysql-bin //启用二进制日志,并指定前缀

server_id=1

binlog_format=STATEMENT //在Mysql5.7中,binlog日志格式默认为ROW

3、重启服务

[root@mysql-1 ~]#systemctl restart mysqld


4、查看

[root@mysql-1 ~]# ls /var/lib/mysql/mysql-bin.*

/var/lib/mysql/mysql-bin.000001 /var/lib/mysql/mysql-bin.index

查看binlog日志内容

[root@mysql-1 mysql]# mysqlbinlog mysql-111-bin.000001


重启MySQL服务程序,会生成一份新的日志:


二、利用binlog日志重做数据库操作

1、执行数据库表添加操作

创建db1·库tb1表,表结构自定义:

mysql> CREATE DATABASE db1;

mysql> USE db1;

Database changed

mysql> CREATE TABLE tb1(

-> id int(4) NOT NULL,name varchar(24)

-> );


2、插入3条表记录:

mysql> INSERT INTO tb1 VALUES

-> (1,'Jack'),

-> (2,'Kenthy'),

-> (3,'Bob');

3、删除前一步添加的3条表记录

执行删除所有表记录操作:

mysql> DELETE FROM tb1;

4、通过binlog日志恢复表记录

查看mysql-bin.000001日志内容

[root@mysql-1 ~]# mysqlbinlog /var/lib/mysql/mysql-bin.000001


5、 执行指定Pos节点范围内的sql命令恢复数据

注:具体恢复需要看日志信息

[root@mysql-1 ~]# mysqlbinlog \

--start-datetime="2018-1-20 20:06:55" \

--stop-datetime="2018-1-20 20:07:23" \

/var/lib/mysql/mysql-bin.000002 | mysql -u root -p 结合管道交给msyql命令执行导入重做

Enter password: //验证口令



6、确认恢复结果

mysql> SELECT * FROM db1.tb1;

+----+--------+

| id | name |

+----+--------+

| 1 | Jack |

| 2 | Kenthy |

| 3 | Bob |

+----+--------+

3 rows in set (0.00 sec)


三、第三方软件做增量备份 XtraBackup

1、安装软件包

[root@mysql-1 ~]# rpm -qpi percona-xtrabackup-24-2.4.6-2.el7.x86_64.rpm

[root@mysql-1 ~]#rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm

2、 安装依赖包

[root@mysql-1 ~]# yum -y install perl-DBD-MySQL perl-Digest-MD5


注:如果未安装这些依赖包,则直接安装percona-xtrabackup时会报错:


3、确认安装的主要程序/脚本

[root@mysql-1 ~]# rpm -ql percona-xtrabackup-24-2.4.6-2.el7.x86_64

/usr/bin/innobackupex

/usr/bin/xbcloud

/usr/bin/xbcloud_osenv

/usr/bin/xbcrypt

/usr/bin/xbstream

/usr/bin/xtrabackup

......

......


二、使用XtraBackup执行数据库备份

【主要格式】

--host 主机名

--port 端口

--user 用户名

--password 密码

--databases= "库名"

--databases= "库1 库2"

--databases= "库.表"

--no-timestamp 不以时间戳做文件名


1、做一个完整备份

[root@mysql-1 ~]# innobackupex --user=root --password=123456 /backup/ -no-timestamp

确认备份好的文件数据:

[root@mysql-1 ~]#ls /backup/

2、做一个增量备份(基于前一步的完整备份)

随意做一些新增或更改库表的操作,比如在db1库中新建一个mytb的表:

mysql> USE db1;

mysql> CREATE TABLE mytb(id int(4), name varchar(24));

mysql> INSERT INTO tb1 VALUES

-> (1,'bon'),

-> (2,'bo'),

mysql> SELECT * FROM tb1;

+------+------+

| id | name |

+------+------+

| 1 | bob |

| 2 | bo |

+------+-----

3、 以前一次保存到/backup的完整备份为基础,做一个增量备份,保存到/incr01/

[root@mysql-1 ~]# innobackupex --user=root --password=123456 \

--incremental /incr01 --incremental-basedir=/backup/ --no-timestamp

查看备份信息

[root@mysql-1 ~]# ls /incr01/

4、对比完整备份、增量备份的大小:

[root@mysql-1 ~]# du -sh /backup/ /incr01/

142M /backup/ //完整备份的大小

3.5M /incr01/ //增量备份的大小

三、准备用于恢复的数据库目录

1、准备恢复"完整备份"

完成准备以后,最终/backup可用来重建MySQL服务器。这种情况下,

需要先做一个"--apply-log --redo-only "的准备操作,以确保数据一致性:

[root@mysql-1 ~]#innobackupex --user=root --password=123456 \

--apply-log --redo-only /backup/

2、准备恢复"增量备份"

[root@mysql-1 ~]#innobackupex --user=root --password=123456 \

--apply-log --redo-only /backup/ --incremental-dir=/incr01

3、关闭mysql服务,并将/var/lib/mysql/下的文件删除,假设数据被删除

[root@mysql-1 ~]#systemctl stop mysqld

[root@msyql-1 ~]#rm -rf /var/lib/mysql


4、恢复"完整备份+增量备份"

完成准备以后,最终仍然是/backup用来重建MySQL服务器,

但这种情况下需提前合并相关增量备份的数据

[root@mysql-1 ~]# innobackupex --user=root --password=123456 --copy-back /backup/

5、 修改/var/lib/mysql/下文件属主与属组

[root@mysql-1 ~]#chown -R mysql:mysql /var/lib/mysql

[root@mysql-1 ~]#systemctl start mysqld.service

[root@mysql-1 ~]#mysql -uroot -p123456 -e "select * from db1.tb1"

+------+------+

| id | name |

+------+------+

| 1 | bob |

| 2 | bo |

+------+------+


备份 日志 数据 增量 服务 准备 数据库 文件 大小 服务器 软件 二进制 信息 内容 命令 密码 情况 格式 程序 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 2018配资软件开发 全国打拐dna数据库的网址 英国河流变化数据库 社区普及网络安全 商户网络安全 云南游戏服务器地址云主机 深圳市红安网络技术有限公司 手机卡打电话显示服务器出错 提高网络安全对应措施 网络安全配制检测要求 邯郸c语言软件开发要多少钱 网络安全意识的总结 网络安全应急技术支撑单位证书 提升网络安全的认识及心得体会 网络安全防诈骗知识单选题 软件开发工程师需要背代码吗 电脑教学软件开发 数据库上没有有效的分析 请输入网络安全密匙路由器 湖南有哪些少儿编程平台软件开发 有效阅读软件开发 发改局计算机网络安全总结 河北省网络安全技术竞赛 河南云程网络技术有限公司 软件开发外包合同 微信是一种网络技术应用 升级win11无法连接服务器 办公室网络安全应急预案演练 数据库关系图咋看 三副本阿里ob数据库
0