xtrabackup全量、增量备份恢复mysql数据库
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,一. 全量备份恢复:查看原表内容:MariaDB [(none)]> select * from testdb.students;+----+------------+------+--------+
千家信息网最后更新 2025年11月14日xtrabackup全量、增量备份恢复mysql数据库
一. 全量备份恢复:
- 查看原表内容:
MariaDB [(none)]> select * from testdb.students;+----+------------+------+--------+| id | name | age | gender |+----+------------+------+--------+| 1 | zhangsan | 15 | f || 2 | lisi | 15 | m || 3 | wanger | 25 | m || 4 | liuwu | 24 | f || 5 | wangermazi | 28 | f |+----+------------+------+--------+5 rows in set (0.00 sec)1. 备份:
[root@jenkins ~]# innobackupex --user=lxk --host=localhost --password=lxkpass /tmp180916 11:56:18 innobackupex: Starting the backup operationIMPORTANT: Please check that the backup run completes successfully. At the end of a successful backup run innobackupex prints "completed OK!".......中间省略......180916 11:56:22 Executing UNLOCK TABLES180916 11:56:22 All tables unlocked180916 11:56:22 Backup created in directory '/tmp/2018-09-16_11-56-18'180916 11:56:22 [00] Writing backup-my.cnf180916 11:56:22 [00] ...done180916 11:56:22 [00] Writing xtrabackup_info180916 11:56:22 [00] ...donextrabackup: Transaction log of lsn (1602080) to (1602080) was copied.180916 11:56:23 completed OK![root@jenkins ~]# cat /tmp/2018-09-16_11-56-18/xtrabackup_checkpoints backup_type = full-backuped #备份类型:全量备份from_lsn = 0 #起始lsnto_lsn = 1602080 #结束lsnlast_lsn = 1602080 #总共多少个lsncompact = 0recover_binlog_info = 0[root@jenkins ~]# cat /tmp/2018-09-16_11-56-18/xtrabackup_info uuid = 7a05430c-b964-11e8-889e-000c29080758name = tool_name = innobackupex #备份工具名称tool_command = --user=lxk --host=localhost --password=... /tmp #备份时使用的命令tool_version = 2.3.6 #工具版本ibbackup_version = 2.3.6server_version = 5.5.60-MariaDBstart_time = 2018-09-16 11:56:18 #备份开始时间end_time = 2018-09-16 11:56:22 #备份结束时间lock_time = 0binlog_pos = innodb_from_lsn = 0innodb_to_lsn = 1602080partial = Nincremental = Nformat = filecompact = N compressed = N #是否启用压缩encrypted = N #是否加密2. 准备(apply)备份
[root@jenkins ~]# innobackupex --apply-log /tmp/2018-09-16_11-56-18/180916 12:06:16 innobackupex: Starting the apply-log operationIMPORTANT: Please check that the apply-log run completes successfully. At the end of a successful apply-log run innobackupex prints "completed OK!".......中间省略......xtrabackup: starting shutdown with innodb_fast_shutdown = 1InnoDB: FTS optimize thread exiting.InnoDB: Starting shutdown...InnoDB: Shutdown completed; log sequence number 1602582180916 12:06:19 completed OK! #此处显示completed OK即表示完成3. 恢复备份:
(1)停止mysql服务
(2)删库
[root@jenkins ~]# rm -rf /var/lib/mysql/*(3) 通过全量备份恢复数据
[root@jenkins ~]# innobackupex --copy-back /tmp/2018-09-16_11-56-18/180916 12:11:19 innobackupex: Starting the copy-back operationIMPORTANT: Please check that the copy-back run completes successfully. At the end of a successful copy-back run innobackupex prints "completed OK!".innobackupex version 2.3.6 based on MySQL server 5.6.24 Linux (x86_64) (revision id: )180916 12:11:19 [01] Copying ib_logfile0 to /var/lib/mysql/ib_logfile0180916 12:11:19 [01] ...done.....中间省略.....180916 12:11:20 [01] ...done180916 12:11:20 [01] Copying ./xtrabackup_info to /var/lib/mysql/xtrabackup_info180916 12:11:20 [01] ...done180916 12:11:20 [01] Copying ./test/db.opt to /var/lib/mysql/test/db.opt180916 12:11:20 [01] ...done180916 12:11:20 completed OK! #显示completed OK即为完成(4) 修改恢复后文件的属主,属组为mysql
[root@jenkins ~]# ls /var/lib/mysql -ltotal 28692-rw-r----- 1 root root 18874368 Sep 16 12:11 ibdata1-rw-r----- 1 root root 5242880 Sep 16 12:11 ib_logfile0-rw-r----- 1 root root 5242880 Sep 16 12:11 ib_logfile1drwx------ 2 root root 4096 Sep 16 12:11 mysqldrwx------ 2 root root 4096 Sep 16 12:11 performance_schemadrwx------ 2 root root 4096 Sep 16 12:11 testdrwx------ 2 root root 4096 Sep 16 12:11 testdb-rw-r----- 1 root root 437 Sep 16 12:11 xtrabackup_info[root@jenkins ~]# chown -R mysql.mysql /var/lib/mysql/*[root@jenkins ~]# ll /var/lib/mysql/total 28692-rw-r----- 1 mysql mysql 18874368 Sep 16 12:11 ibdata1-rw-r----- 1 mysql mysql 5242880 Sep 16 12:11 ib_logfile0-rw-r----- 1 mysql mysql 5242880 Sep 16 12:11 ib_logfile1drwx------ 2 mysql mysql 4096 Sep 16 12:11 mysqldrwx------ 2 mysql mysql 4096 Sep 16 12:11 performance_schemadrwx------ 2 mysql mysql 4096 Sep 16 12:11 testdrwx------ 2 mysql mysql 4096 Sep 16 12:11 testdb-rw-r----- 1 mysql mysql 437 Sep 16 12:11 xtrabackup_info(5) 启动MySQL并查看
[root@jenkins ~]# systemctl start mariadb[root@jenkins ~]# mysqlWelcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 2Server version: 5.5.60-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> select * from testdb.students; #恢复完成+----+------------+------+--------+| id | name | age | gender |+----+------------+------+--------+| 1 | zhangsan | 15 | f || 2 | lisi | 15 | m || 3 | wanger | 25 | m || 4 | liuwu | 24 | f || 5 | wangermazi | 28 | f |+----+------------+------+--------+5 rows in set (0.00 sec)二. 增量备份及恢复:
1. 全量备份:
[root@jenkins ~]# innobackupex --user=lxk --host=localhost --password=lxkpass /tmp/180916 12:17:01 innobackupex: Starting the backup operationIMPORTANT: Please check that the backup run completes successfully. At the end of a successful backup run innobackupex prints "completed OK!"......中间省略.....180916 12:17:03 Executing UNLOCK TABLES180916 12:17:03 All tables unlocked180916 12:17:03 Backup created in directory '/tmp//2018-09-16_12-17-01'180916 12:17:03 [00] Writing backup-my.cnf180916 12:17:03 [00] ...done180916 12:17:03 [00] Writing xtrabackup_info180916 12:17:03 [00] ...donextrabackup: Transaction log of lsn (1602592) to (1602592) was copied.180916 12:17:03 completed OK!2. 修改数据库,进行第一次增量备份
- 在testdb.students中添加一条数据:
MariaDB [testdb]> insert into students values (6,'xiaoming',20,'f');Query OK, 1 row affected (0.00 sec)MariaDB [testdb]> select * from students;+----+------------+------+--------+| id | name | age | gender |+----+------------+------+--------+| 1 | zhangsan | 15 | f || 2 | lisi | 15 | m || 3 | wanger | 25 | m || 4 | liuwu | 24 | f || 5 | wangermazi | 28 | f || 6 | xiaoming | 20 | f |+----+------------+------+--------+6 rows in set (0.00 sec)- 增量备份:
[root@jenkins ~]# innobackupex --incremental /tmp --incremental-basedir=/tmp/2018-09-16_12-17-01/180916 12:23:28 innobackupex: Starting the backup operationIMPORTANT: Please check that the backup run completes successfully. At the end of a successful backup run innobackupex prints "completed OK!"......中间省略.....180916 12:23:30 [00] ...donextrabackup: Transaction log of lsn (1602735) to (1602735) was copied.180916 12:23:30 completed OK!3. 添加一条数据,进行第二次增量备份:
- 增加一条数据
MariaDB [testdb]> insert into students values (8,'daming',20,'m');Query OK, 1 row affected (0.00 sec)- 第二次增量备份(若此时--incremental-basedir指的是第一次全量备份路径,则为差异备份):
[root@jenkins ~]# innobackupex --incremental /tmp --incremental-basedir=/tmp/2018-09-16_12-23-28/180916 12:29:08 innobackupex: Starting the backup operationIMPORTANT: Please check that the backup run completes successfully. At the end of a successful backup run innobackupex prints "completed OK!"......中间省略.....180916 12:29:10 [00] Writing xtrabackup_info180916 12:29:10 [00] ...donextrabackup: Transaction log of lsn (1603615) to (1603615) was copied.180916 12:29:10 completed OK!4. 恢复数据:
(1) 准备(prepare)数据:
- 需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行"重放"。"重放"之后,所有的备份数据将合并到完全备份上。
- 基于所有的备份将未提交的事务进行"回滚"
(2)准备全量备份文件
[root@jenkins tmp]# innobackupex --apply-log --redo-only 2018-09-16_12-17-01180916 12:34:06 innobackupex: Starting the apply-log operationIMPORTANT: Please check that the apply-log run completes successfully. At the end of a successful apply-log run innobackupex prints "completed OK!"......中间省略.....InnoDB: Starting shutdown...InnoDB: Shutdown completed; log sequence number 1602592180916 12:34:06 completed OK!(3) 准备第一次增量备份文件:
- 注: --incremental-dir所指的目录必须为绝对路径
[root@jenkins 2018-09-16_12-17-01]# innobackupex --apply-log --redo-only ./ --incremental-dir=/tmp/2018-09-16_12-23-28180916 12:38:17 innobackupex: Starting the apply-log operationIMPORTANT: Please check that the apply-log run completes successfully. At the end of a successful apply-log run innobackupex prints "completed OK!"......中间省略.....180916 12:38:18 [00] Copying /tmp/2018-09-16_12-23-28/xtrabackup_info to ./xtrabackup_info180916 12:38:18 [00] ...done180916 12:38:18 completed OK!(4) 准备第二次增量备份文件:
[root@jenkins 2018-09-16_12-17-01]# innobackupex --apply-log --redo-only ./ --incremental-dir=/tmp/2018-09-16_12-29-08/180916 12:42:56 innobackupex: Starting the apply-log operationIMPORTANT: Please check that the apply-log run completes successfully. At the end of a successful apply-log run innobackupex prints "completed OK!"......中间省略.....180916 12:42:57 [01] ...done180916 12:42:57 [00] Copying /tmp/2018-09-16_12-29-08//xtrabackup_info to ./xtrabackup_info180916 12:42:57 [00] ...done180916 12:42:57 completed OK!(5) 执行回滚操作
[root@jenkins tmp]# innobackupex --apply-log /tmp/2018-09-16_12-17-01180916 12:46:15 innobackupex: Starting the apply-log operationIMPORTANT: Please check that the apply-log run completes successfully. At the end of a successful apply-log run innobackupex prints "completed OK!"......中间省略.....xtrabackup: starting shutdown with innodb_fast_shutdown = 1InnoDB: FTS optimize thread exiting.InnoDB: Starting shutdown...InnoDB: Shutdown completed; log sequence number 1604128180916 12:46:18 completed OK!(6) 关闭MySQL并删除/var/lib/mysql/下所有文件
(7) 恢复数据:
[root@jenkins tmp]# innobackupex --copy-back 2018-09-16_12-17-01/180916 12:48:39 innobackupex: Starting the copy-back operationIMPORTANT: Please check that the copy-back run completes successfully. At the end of a successful copy-back run innobackupex prints "completed OK!"......中间省略.....180916 12:48:40 [01] Copying ./test/db.opt to /var/lib/mysql/test/db.opt180916 12:48:40 [01] ...done180916 12:48:40 completed OK!(8) 修改/var/lib/mysql/下文件的属主、属组并启动数据库并查看
[root@jenkins mysql]# chown -R mysql.mysql /var/lib/mysql/*[root@jenkins mysql]# lltotal 28692-rw-r----- 1 mysql mysql 18874368 Sep 16 12:48 ibdata1-rw-r----- 1 mysql mysql 5242880 Sep 16 12:48 ib_logfile0-rw-r----- 1 mysql mysql 5242880 Sep 16 12:48 ib_logfile1drwx------ 2 mysql mysql 4096 Sep 16 12:48 mysqldrwx------ 2 mysql mysql 4096 Sep 16 12:48 performance_schemadrwx------ 2 mysql mysql 4096 Sep 16 12:48 testdrwx------ 2 mysql mysql 4096 Sep 16 12:48 testdb-rw-r----- 1 mysql mysql 462 Sep 16 12:48 xtrabackup_info[root@jenkins mysql]# systemctl start mariadb[root@jenkins mysql]# mysqlWelcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 2Server version: 5.5.60-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> select * from testdb.students; #恢复完成+----+------------+------+--------+| id | name | age | gender |+----+------------+------+--------+| 1 | zhangsan | 15 | f || 2 | lisi | 15 | m || 3 | wanger | 25 | m || 4 | liuwu | 24 | f || 5 | wangermazi | 28 | f || 6 | xiaoming | 20 | f || 8 | daming | 20 | m |+----+------------+------+--------+7 rows in set (0.00 sec)三. xtrabackup备份目录下文件解读
在备份的同时,innobackupex还会在备份目录中创建如下文件:
- xtrabackup_checkpoints
backup_type = full-backuped 本次备份类型 = 全量备份from_lsn = 0 起始日志序列号to_lsn = 258476374114 结束日志序列号last_lsn = 258476374114 compact = 0 是否压缩recover_binlog_info = 0 复制恢复时binlog信息其中包括:备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;
- 每个InnoDB页(通常为16k大小)都会包含一个日志序列号,即LSN。LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的。
- xtrabackup_binlog_info
- mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。
[root@dev-core 11.27]# cat xtrabackup_binlog_info mysql-bin.001102 379212660 ac7a95b5-6507-11e8-b052-702084fbc6aa:1-6694,e755a417-6507-11e8-b054-702084fbc7b6:1-38396411- xtrabackup_binlog_pos_innodb -- 二进制日志文件及用于InnoDB或XtraDB表的二进制日志文件的当前position。
- xtrabackup_binary -- 备份中用到的xtrabackup的可执行文件;
- backup-my.cnf -- 备份命令用到的配置选项信息;
另外在使用innobackupex进行备份时,还可以使用--no-timestamp选项来阻止命令自动创建一个以时间命名的目录;如此一来,innobackupex命令将会创建一个BACKUP-DIR目录来存储备份数据。
备份
数据
文件
增量
日志
目录
准备
二进制
命令
序列
序列号
数据库
信息
时间
第一次
类型
加一
事务
工具
版本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
违反国家网络安全法案例
无线网络技术题库
暗黑破坏神怎么看服务器玩家
网络安全法主体对象分类
计算机网络技术能报一建么
抖音人民海军网络安全
涉密软件开发资质条件
青少年不遵守网络安全的事例
舆情监测及大数据库
公司单位网络安全检查自查报告
联想gpu服务器
定制平台软件开发
网络安全守护你图片
软件开发授权开发模板
无线网络安全密码忘记
腾讯云轻量服务器怎么过户
数据库除商
批量创建一个数据库
浪潮服务器出现不了raid
计算机网络技术毕业课题
servlet连接数据库语句
天龙八部架设需要什么服务器
网络技术基础试题及答案
达梦数据库生成sql文件
鼎新erp系统软件开发商
华为浏览器网络安全设置
落实网络安全责任工作方案
自启管理华为手机服务器
成都正火软件开发公司
抚顺本地软件开发