千家信息网

基于percona xtrabackup 2.4.14的增量备份恢复还原mysql 5.6是怎么样的

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这期内容当中小编将会给大家带来有关基于percona xtrabackup 2.4.14的增量备份恢复还原mysql 5.6是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大
千家信息网最后更新 2025年01月23日基于percona xtrabackup 2.4.14的增量备份恢复还原mysql 5.6是怎么样的

这期内容当中小编将会给大家带来有关基于percona xtrabackup 2.4.14的增量备份恢复还原mysql 5.6是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

使用percona xtrabackup 2.4.14备份工具备份mysql 5.6并进行恢复

https://mp.weixin.qq.com/s?__biz=MzIwMjU2MjI1OQ==&mid=2247484161&idx=1&sn=4c4d0f4a6f134505fa38c5cfbabc4989&chksm=96dd8cbda1aa05aba6b21505aecaa21bfeef16fb351ee77a3dd8f0b450dae092d6d2ecc6c867&token=274104940&lang=zh_CN#rd

由于生产系统数据库是持续有业务变更操作,于是引入这篇文章,具体见下:

1,数据库的数据

mysql> use zxydb;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select * from t_go;

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

| a | b |

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

| 1 | 1 |

| 2 | 2 |

| 3 | 3 |

| 5 | 5 |

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

4 rows in set (0.00 sec)

2,首次全量备份

[root@standbygtid back_full_dir]# mkdir -p /backfup_full_dir

3, 首次全量备份后变更数据库

mysql> use zxydb;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> insert into t_go select 8,8;

Query OK, 1 row affected (0.01 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> commit;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from t_go;

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

| a | b |

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

| 1 | 1 |

| 2 | 2 |

| 3 | 3 |

| 5 | 5 |

| 8 | 8 |

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

5 rows in set (0.00 sec)

4,基于首次全量备份进行第1次增量备份

--获取全量备份时的日志文件的最后的LSN

[root@standbygtid back_full_dir]# cd /backup_full_dir/

[root@standbygtid backup_full_dir]# more xtrabackup_checkpoints

backup_type = full-prepared

from_lsn = 0

to_lsn = 28517559

last_lsn = 28517559

compact = 0

recover_binlog_info = 0

[root@standbygtid backup_full_dir]#

--构建增量备份的目录

[root@standbygtid backup_full_dir]# mkdir -p /backup_incre_dir

--incremental选项后跟的值为存储增量备份的目录

--incremental-basedir选项后跟的为构建增量备份的基准备份(就是说,这个是前者备份的的基础)

[root@standbygtid backup_full_dir]# innobackupex --defaults-file=/usr/my.cnf -uroot -psystem --incremental /backup_incre_dir --incremental-basedir=/backup_full_dir

5,继续进行数据库变更

mysql> insert into zxydb.t_go select 10,10;

Query OK, 1 row affected (0.02 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> commit;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from zxydb.t_go;

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

| a | b |

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

| 1 | 1 |

| 2 | 2 |

| 3 | 3 |

| 5 | 5 |

| 8 | 8 |

| 10 | 10 |

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

6 rows in set (0.00 sec)

6,基于上述第一次增量备份为基准,进行第二次增量备份

--同上理,获取上次备份的最后的日志文件的LSN

[root@standbygtid backup_full_dir]# cd /backup_incre_dir/

[root@standbygtid backup_incre_dir]# ll

总用量 4

drwxr-x--- 7 root root 4096 11月 4 17:53 2019-11-04_17-53-05

[root@standbygtid backup_incre_dir]# cd 2019-11-04_17-53-05/

[root@standbygtid 2019-11-04_17-53-05]# ll

总用量 156

-rw-r----- 1 root root 418 11月 4 17:53 backup-my.cnf

drwxr-x--- 2 root root 4096 11月 4 17:53 completedb

-rw-r----- 1 root root 114688 11月 4 17:53 ibdata1.delta

-rw-r----- 1 root root 44 11月 4 17:53 ibdata1.meta

drwxr-x--- 2 root root 4096 11月 4 17:53 mysql

drwxr-x--- 2 root root 4096 11月 4 17:53 performance_schema

drwxr-x--- 2 root root 4096 11月 4 17:53 test

-rw-r----- 1 root root 18 11月 4 17:53 xtrabackup_binlog_info

-rw-r----- 1 root root 120 11月 4 17:53 xtrabackup_checkpoints

-rw-r----- 1 root root 579 11月 4 17:53 xtrabackup_info

-rw-r----- 1 root root 2560 11月 4 17:53 xtrabackup_logfile

drwxr-x--- 2 root root 4096 11月 4 17:53 zxydb

[root@standbygtid 2019-11-04_17-53-05]# more xtrabackup_checkpoints

backup_type = incremental

from_lsn = 28517559

to_lsn = 28518260

last_lsn = 28518260

compact = 0

recover_binlog_info = 0

[root@standbygtid 2019-11-04_17-53-05]#

[root@standbygtid 2019-11-04_17-53-05]# innobackupex --defaults-file=/usr/my.cnf -uroot -psystem --incremental /backup_incre_dir --incremental-basedir=/backup_incre_dir/2019-11-04_17-53-05

7,可见 第2次增量备份是基于第1次增量备份

[root@standbygtid backup_incre_dir]# pwd

/backup_incre_dir

[root@standbygtid backup_incre_dir]# ll

总用量 12

drwxr-x--- 7 root root 4096 11月 4 17:53 2019-11-04_17-53-05

drwxr-x--- 7 root root 4096 11月 4 17:59 2019-11-04_17-59-40

[root@standbygtid backup_incre_dir]# cd 2019-11-04_17-59-40

[root@standbygtid 2019-11-04_17-59-40]# ll

总用量 140

-rw-r----- 1 root root 418 11月 4 17:59 backup-my.cnf

drwxr-x--- 2 root root 4096 11月 4 17:59 completedb

-rw-r----- 1 root root 98304 11月 4 17:59 ibdata1.delta

-rw-r----- 1 root root 44 11月 4 17:59 ibdata1.meta

drwxr-x--- 2 root root 4096 11月 4 17:59 mysql

drwxr-x--- 2 root root 4096 11月 4 17:59 performance_schema

drwxr-x--- 2 root root 4096 11月 4 17:59 test

-rw-r----- 1 root root 18 11月 4 17:59 xtrabackup_binlog_info

-rw-r----- 1 root root 120 11月 4 17:59 xtrabackup_checkpoints

-rw-r----- 1 root root 600 11月 4 17:59 xtrabackup_info

-rw-r----- 1 root root 2560 11月 4 17:59 xtrabackup_logfile

drwxr-x--- 2 root root 4096 11月 4 17:59 zxydb

[root@standbygtid 2019-11-04_17-59-40]#

从下可知,第1次增量备份和第2次增量备份的数据就连上了,因为日志文件的LSN是连接上了

[root@standbygtid 2019-11-04_17-59-40]# more xtrabackup_checkpoints

backup_type = incremental

from_lsn = 28518260 --这个就是上次备份最后的LSN

to_lsn = 28518547

last_lsn = 28518547

compact = 0

recover_binlog_info = 0

[root@standbygtid 2019-11-04_17-59-40]#

8,下来测试下 数据库损坏了,看可否基于上述的增量备份把数据完整的还原恢复出来

--数据库正在运行,直接把数据文件目录中内容全部删除掉

[root@standbygtid 2019-11-04_17-59-40]# cd /var/lib/mysql

[root@standbygtid mysql]# ll

总用量 188500

-rw-rw---- 1 mysql mysql 56 11月 4 15:53 auto.cnf

-rw-rw---- 1 mysql mysql 143 11月 4 15:53 binlog.000001

-rw-rw---- 1 mysql mysql 143 11月 4 17:42 binlog.000002

-rw-rw---- 1 mysql mysql 143 11月 4 17:43 binlog.000003

-rw-rw---- 1 mysql mysql 558 11月 4 17:56 binlog.000004

-rw-rw---- 1 mysql mysql 64 11月 4 17:45 binlog.index

drwxr-x--- 2 mysql mysql 4096 11月 4 15:53 completedb

-rw-r----- 1 mysql mysql 79691776 11月 4 17:56 ibdata1

-rw-r----- 1 mysql mysql 50331648 11月 4 17:56 ib_logfile0

-rw-r----- 1 mysql mysql 50331648 11月 4 15:53 ib_logfile1

-rw-r----- 1 mysql mysql 12582912 11月 4 15:53 ibtmp1

drwxr-x--- 2 mysql mysql 4096 11月 4 15:53 mysql

srwxrwxrwx 1 mysql mysql 0 11月 4 17:45 mysql.sock

-rw------- 1 mysql mysql 649 11月 4 17:45 nohup.out

drwxr-x--- 2 mysql mysql 4096 11月 4 15:53 performance_schema

-rw-r----- 1 mysql mysql 19245 11月 4 17:45 standbygtid.err

-rw-rw---- 1 mysql mysql 5 11月 4 17:45 standbygtid.pid

drwxr-x--- 2 mysql mysql 4096 11月 4 15:53 test

drwxr-x--- 2 mysql mysql 4096 11月 4 15:53 xtrabackup_backupfiles

-rw-r----- 1 mysql mysql 23 11月 4 15:53 xtrabackup_binlog_pos_innodb

-rw-r----- 1 mysql mysql 544 11月 4 15:53 xtrabackup_info

drwxr-x--- 2 mysql mysql 4096 11月 4 15:53 zxydb

[root@standbygtid mysql]# rm -rf *

9,首先进行全量恢复,但注意须添加选项参数

--apply-log 只前滚已经提交的事务,并不回滚那些未提交的事务(注:因为这个时侯数据库是处于一个中间状态,可能有提交也有不提交了的事务)

[root@standbygtid mysql]# innobackupex --defaults--file=/usr/my.cnf -uroot --psystem --apply-log --redo-only /backup_full_dir

10,再次进行第一次增量备份的恢复

选项参数同上,

--read-only 后跟值为 全量备份目录

--incremental-dir后跟 第一次增量备份目录

[root@standbygtid mysql]# innobackupex --defaults--file=/usr/my.cnf -uroot --psystem --apply-log --redo-only /backup_full_dir --incremental-dir=/backup_incre_dir/2019-11-04_17-53-05

11,继续进行第2次增量备份的恢复

[root@standbygtid mysql]# innobackupex --defaults--file=/usr/my.cnf -uroot --psystem --apply-log --redo-only /backup_full_dir --incremental-dir=/backup_incre_dir/2019-11-04_17-59-40

12,最后进行整个数据库的恢复

最后一次整个数据库的恢复,不用上述的选项参数 --read-only,表明 回滚未提交的事务

[root@standbygtid mysql]# innobackupex --defaults--file=/usr/my.cnf -uroot --psystem --apply-log /backup_full_dir

13,关闭数据库

14,物理复制已经已经恢复完毕全量备库目录的内容到 数据库的数据目录/var/lib/mysql

[root@standbygtid backup_full_dir]# pwd

/backup_full_dir

[root@standbygtid backup_full_dir]#

[root@standbygtid backup_full_dir]# cp -Rf * /var/lib/mysql

[root@standbygtid backup_full_dir]# chown -Rf mysql:mysql /var/lib/mysql

---清除数据文件目录/var/lib/mysql中的与xtrabackup相关的一些临时文件

[root@standbygtid backup_full_dir]# cd /var/lib/mysql

[root@standbygtid mysql]# rm -rf xtrabackup_*

[root@standbygtid mysql]# nohup mysqld_safe --user=mysql&

15,可见基于增量备份的数据库恢复正常

mysql> select * from zxydb.t_go;

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

| a | b |

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

| 1 | 1 |

| 2 | 2 |

| 3 | 3 |

| 5 | 5 |

| 8 | 8 |

| 10 | 10 |

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

6 rows in set (0.00 sec)

上述就是小编为大家分享的基于percona xtrabackup 2.4.14的增量备份恢复还原mysql 5.6是怎么样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

备份 数据 增量 数据库 目录 文件 用量 事务 内容 后跟 参数 就是 日志 第一次 基准 篇文章 分析 不用 专业 业务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器的智能监控管理包括 app开发九零部落软件开发 税务网络安全宣传小组 泉州地区软件开发公司 华为服务器进入pe后鼠标动不了 电力系统网络安全管理 方舟服务器管理器验证失败 河北税控盘安全接入服务器地址 联想服务器租用 网络安全宣传品海报 app软件开发办公需求 魔兽世界官网查询服务器 山东常用软件开发参考价 奶昔7影像数据库错误 计算机网络安全受损的危害 印度统计年鉴数据库 软件开发能进腾讯吗 网络安全工程师教程美甲 网络安全怎么看待 无线网络技术考点 数据库文件或附属文件有缺失 数据库安全指的是什么 公司网络安全的治理机制是什么 第六届网络安全等级保护技术大会 中文综述期刊在哪个数据库查 住建局网络安全会议记录 网络技术对幼儿园管理影响 greenplum数据库怎么用 war修改数据库连接 数据库类型是按照
0