XtraBacup备份与恢复

XtraBacup备份与恢复

一、XtraBacup简介

MySQL冷备、mysqldump、MySQL热拷贝都无法实现对数据库进行增量备份。在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况下,可以每天进行完整备份,如果每天产生的数据量较大,需要定制数据备份策略。例如每周实用完整备份,周一到周六实用增量备份。而Percona-Xtrabackup就是为了实现增量备份而出现的一款主流备份工具,XtraBacup有2个工具,分别是xtrabakup、innobakupe。

Percona-xtrabackup是 Percona公司开发的一个用于MySQL数据库物理热备的备份工具,支持MySQL、Percona server和MariaDB,开源免费,是目前较为受欢迎的主流备份工具。xtrabackup只能备份innoDB和xtraDB两种数据引擎的表,而不能备份MyISAM数据表。

二、XtraBacup优点

(1)备份速度快,物理备份可靠
(2)备份过程不会打断正在执行的事务(无需锁表)
(3)能够基于压缩等功能节约磁盘空间和流量
(4)自动备份校验
(5)还原速度快
(6)可以流传将备份传输到另外一台机器上
(7)在不增加服务器负载的情况备份数据

三、Xtrabackup备份原理

1、Xtrabackup备份流程图

(1)innobackupex启动后,会先fork一个进程,用于启动xtrabackup,然后等待xtrabackup备份ibd数据文件;
(2)xtrabackup在备份innoDB数据是,有2种线程:redo拷贝线程和ibd数据拷贝线程。xtrabackup进程开始执行后,会启动一个redo拷贝的线程,用于从最新的checkpoint点开始顺序拷贝redo.log;再启动ibd数据拷贝线程,进行拷贝ibd数据。这里是先启动redo拷贝线程的。在此阶段,innobackupex进行处于等待状态(等待文件被创建)
(3)xtrabackup拷贝完成ibd数据文件后,会通知innobackupex(通过创建文件),同时xtrabackup进入等待状态(redo线程依旧在拷贝redo.log)
(4)innobackupex收到xtrabackup通知后哦,执行FLUSH TABLES WITH READ LOCK(FTWRL),取得一致性位点,然后开始备份非InnoDB文件(如frm、MYD、MYI、CSV、opt、par等格式的文件),在拷贝非InnoDB文件的过程当中,数据库处于全局只读状态。
(5)当innobackup拷贝完所有的非InnoDB文件后,会通知xtrabackup,通知完成后,进入等待状态;
(6)xtrabackup收到innobackupex备份完成的通知后,会停止redo拷贝线程,然后通知innobackupex,redo.log文件拷贝完成;
(7)innobackupex收到redo.log备份完成后,就进行解锁操作,执行:UNLOCK TABLES;
(8)最后innbackupex和xtrabackup进程各自释放资源,写备份元数据信息等,innobackupex等xtrabackup子进程结束后退出。
2、XtraBackup的备份原理

在InnoDB内部会维护一个redo日志文件,我们也可以叫做事务日志文件(transaction log,事务日志)。事务日志会存储每一个InnoDB表数据的记录修改。当InnoDB启动时,InnoDB会检查数据文件和事务日志,并执行两个步骤:它应用已经提交的事务日志到数据文件,并将修改过但没有提交的数据进行回滚操作。 XtraBacup在启动时会记住log sequence number(LSN),并且复制所有的数据文件。复制过程需要一些时间,所以这期间如果数据文件有改动,那么将会使数据库处于一个不同的时间点。这时,XtraBacup会运行一个后台进程,用于监视事务日志,并从事务日志复制最新的修改。XtraBacup必须持续的做这个操作,是因为事务日志是会轮转重复的写入,并且事务日志可以被重用。所以XtraBacup自启动开始,就不停的将事务日志中每个数据文件的修改都记录下来。这就是XtraBacup的备份过程。

3、XtraBackup命令行工具

XtraBackup中主要包含两个命令行工具:

(1)xtrabackup:专用于备份InnoDB和XtraDB引擎的数据,不能备份其他类型的表,也不能备份数据表结构;
(2)innobackupex:这是一个perl脚本,在执行过程中会调用xtrabackup命令,这样用该命令既可以实现备份InnoDB,也可以备份MyISAM引擎的对象。

常用选项:

--host     指定主机
--user     指定用户名
--password    指定密码
--port     指定端口
--databases     指定数据库

--incremental    创建增量备份
--incremental-basedir   指定包含完全备份的目录
--incremental-dir      指定包含增量备份的目录 

--apply-log        对备份进行预处理操作             
    一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。
--redo-only      不回滚未提交事务
--copy-back     恢复备份目录

使用innobackupex备份时,其会调用xtrabackup备份所有的InnoDB表,复制所有关于表结构定义的相关文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相关文件,同时还会备份触发器和数据库配置信息相关的文件,这些文件会被保存到一个以时间命名的目录当中。在备份的同时,innobackupex还会在备份目录中创建如下文件:

(1)xtrabackup_checkpoints -- 备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息:
每个InnoDB页(通常为16k大小)都会包含一个日志序列号,即LSN,LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的。
(2)xtrabackup_binlog_info  --  mysql服务器当前正在使用的二进制日志文件及备份这一刻位置二进制日志时间的位置。
(3)xtrabackup_binlog_pos_innodb  --  二进制日志文件及用于InnoDB或XtraDB表的二进制日志文件的当前position。
(4)xtrabackup_binary  --  备份中用到的xtrabackup的可执行文件;
(5)backup-my.cnf  --  备份命令用到的配置选项信息:
在使用innobackupex进行备份时,还可以使用--no-timestamp选项来阻止命令自动创建一个以时间命名的目录:如此一来,innobackupex命令将会创建一个BACKUP-DIR目录来存储备份数据。

如果要使用一个最小权限的用户进行备份,则可基于如下命令创建此类用户:如果要使用一个最小权限的用户进行备份,则可基于如下命令创建此类用户:

# 创建用户
mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY '123456';
# 回收此用户所有权限
mysql> REVOKE ALL PRIVILEGES,GRANT OPTION FROM 'bkpuser';
# 授权刷新、锁定表、用户查看服务器状态
mysql> GRANT RELOAD,LOCK TABLES,RELICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
# 刷新授权表
mysql> FLUSH PRIVILEGES;

注意:备份时需启动MySQL,恢复时需关闭MySQL,清空mysql数据目录且不能重新初始化,恢复数据后应该立即进行一次完全备份。

四、XtraBackup安装

下载地址:

https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/

可以选择rpm包方式安装,也可以下载源码包编译安装,这里直接采用rpm包的方式进行安装。

[root@192 ~]# yum install -y percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
[root@192 ~]# rpm -qa |grep xtrabackup
percona-xtrabackup-24-2.4.9-1.el7.x86_64

五、XtraBackup完全备份与恢复

命令行语法格式:

备份:
innobackupex --user=DBUSER --password=DBUSERPASS --defaults-file=/etc/my.cnf /path/to/BACKUP-DIR/

恢复:
innobackupex --apply-log /backups/2018-07-30_11-04-55/
innobackupex --copy-back --defaults-file=/etc/my.cnf  /backups/2018-07-30_11-04-55/
1、准备(prepare)一个完全备份

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或者已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处于不一致状态。"准备"的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使用得数据文件处于一致性状态。

innobackupex命令的–apply-log选项可用于实现上述功能,如下面的命令:

# innobackupex --apply-log /path/to/BACKUP-DIR
如果执行正确,其最后输出的几行信息通常如下:

120407 09:01:04 innobackupex: completed OK!

在实现"准备"的过程中,innobackupex通常还可以使用–user-memory选项来指定其可以使用的内存的大小,默认为100M。如果有足够的内存空间可用,可以多划分一些内存给prepare的过程,以提高其完成备份的速度。

2、从一个完全备份中恢复数据

注意:恢复不用启动MySQL

innobackupex命令的–copy-back选项用于恢复操作,其通过复制所有数据相关的文件至mysql服务器DATADIR目录中来执行恢复过程。innobackupex通过backup-my.cnf来获取DATADIR目录的相关信息。

# innobackupex --copy-back /path/to/BACKUP-DIR

当数据恢复至DATADIR目录以后,还需要确保所有的数据文件的属主和属组均为正确的用户,如mysql,否则,在启动mysqld之前还需要事先修改数据文件的属主和属组。如:

# chown -R mysql.mysql /mydata/data/
3、实战练习
(1)准备测试环境

测试环境准备 创建一个测试数据库,并创建一张表输入几行数据:

mysql> create database test2;
Query OK, 1 row affected (0.00 sec)

mysql> use test2;
Database changed
mysql> create table yy(id int,name varchar(20));
Query OK, 0 rows affected (0.08 sec)

mysql> insert into yy values(1,'tomcat1');
Query OK, 1 row affected (0.00 sec)

mysql> insert into yy values(2,'tomcat2');
Query OK, 1 row affected (0.00 sec)
(2)全量备份
[root@192 ~]# innobackupex --user=root --password=1234 --host=127.0.0.1 /backups/
200628 16:31:18 innobackupex: Starting the backup operation

IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex
           prints "completed OK!".

200628 16:31:18  version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;host=127.0.0.1' as 'root'  (using password: YES).
200628 16:31:18  version_check Connected to MySQL server

# 省略部分输出信息

200628 16:31:21 [00] Writing /backups/2020-06-28_16-31-18/backup-my.cnf
200628 16:31:21 [00]        ...done
200628 16:31:21 [00] Writing /backups/2020-06-28_16-31-18/xtrabackup_info
200628 16:31:21 [00]        ...done
xtrabackup: Transaction log of lsn (2637610) to (2637619) was copied.
200628 16:31:21 completed OK!
(3)查看完全备份文件
[root@192 ~]# ll /backups/
总用量 0
drwxr-x---. 6 root root 206 6月  28 16:31 2020-06-28_16-31-18
[root@192 ~]# ll /backups/2020-06-28_16-31-18/
总用量 12336
-rw-r-----. 1 root root      424 6月  28 16:31 backup-my.cnf
-rw-r-----. 1 root root      425 6月  28 16:31 ib_buffer_pool
-rw-r-----. 1 root root 12582912 6月  28 16:31 ibdata1
drwxr-x---. 2 root root     4096 6月  28 16:31 mysql
drwxr-x---. 2 root root     8192 6月  28 16:31 performance_schema
drwxr-x---. 2 root root     8192 6月  28 16:31 sys
drwxr-x---. 2 root root       48 6月  28 16:31 test2
-rw-r-----. 1 root root      113 6月  28 16:31 xtrabackup_checkpoints
-rw-r-----. 1 root root      435 6月  28 16:31 xtrabackup_info
-rw-r-----. 1 root root     2560 6月  28 16:31 xtrabackup_logfile
(4)模拟完全恢复
1)完全备份
[root@192 ~]# innobackupex --user=root --password=1234 /backups/
200628 20:43:32 innobackupex: Starting the backup operation

IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex
           prints "completed OK!".

# 省略部分输出信息

200628 20:43:34 [00] Writing /backups/2020-06-28_20-43-32/xtrabackup_info
200628 20:43:34 [00]        ...done
xtrabackup: Transaction log of lsn (2630081) to (2630090) was copied.
200628 20:43:34 completed OK!
2)删除数据库目录下的所有文件
[root@192 ~]# rm -rf /var/lib/mysql/*
3)准备恢复
[root@192 ~]# innobackupex --apply-log --redo-only /backups/2020-06-28_20-43-32
200628 20:48:37 innobackupex: Starting the apply-log operation

IMPORTANT: 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 = 1
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 2630099
InnoDB: Number of pools: 1
200628 20:48:39 completed OK!
4)完全恢复
[root@192 ~]# innobackupex --user=root --password=1234 --copy-back /backups/2020-06-28_20-43-32
200628 20:52:55 innobackupex: Starting the copy-back operation

IMPORTANT: Please check that the copy-back run completes successfully.
           At the end of a successful copy-back run innobackupex
           prints "completed OK!".

# 省略部分输出信息

200628 20:52:56 [01] Copying ./ib_buffer_pool to /var/lib/mysql/ib_buffer_pool
200628 20:52:56 [01]        ...done
200628 20:52:56 [01] Copying ./xtrabackup_info to /var/lib/mysql/xtrabackup_info
200628 20:52:56 [01]        ...done
200628 20:52:56 completed OK!
5)更改mysql目录属性
[root@192 ~]# chown -R mysql.mysql /var/lib/mysql/
6)启动mysql
[root@192 ~]# mysql -uroot -p -e "show databases;"
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

# 如果发生以上错误,查看mysql进程的pid,结束mysql,再启动mysql即可。

[root@192 ~]# ps -aux | grep mysql
mysql     77011  0.1  9.0 1319504 169428 ?      Sl   19:28   0:07 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root      77053  0.0  0.0 135604  1820 pts/3    S+   19:30   0:00 mysql -uroot -p
root      77193  0.0  0.1 135604  1880 pts/2    S+   19:37   0:00 mysql -uroot -p
root      80486  0.0  0.0 112724   988 pts/4    S+   20:56   0:00 grep --color=auto mysql
[root@192 ~]# kill -9 77011
[root@192 ~]# systemctl start mysqld
[root@192 ~]# ps -aux | grep mysql
root      77053  0.0  0.0 135604  1820 pts/3    S+   19:30   0:00 mysql -uroot -p
root      77193  0.0  0.1 135604  1880 pts/2    S+   19:37   0:00 mysql -uroot -p
mysql     80514 30.8  9.0 1122096 168328 ?      Sl   20:57   0:01 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root      80558  0.0  0.0 112724   988 pts/4    S+   20:57   0:00 grep --color=auto mysql
7)查看数据是否恢复
[root@192 ~]# mysql -uroot -p -e "show databases;"
Enter password: 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

六、XtraBacup增量备份与恢复

1、XtraBacup的增量备份原理

使用innobackupex进行增量备份,每个InnoDB的页面都会包含一个LSN信息,每当相关的数据发生改变,相关的页面的LSN就会自动增长。这正是InnoDB表可以进行增量备份的基础,即innobackupex通过备份上次完全备份之后发生改变的页面来实现。

在进行增量备份时,首先要进行一次全量备份,第一次增量备份是基于全备的,之后的增量备份都是基于上一次的增量备份的,以此类推。

要实现第一次增量备份,可以使用下面的命令进行:

基于全量备份的增量备份与恢复
做一次增量备份(基于当前最新的全量备份)
innobackupex --user=root --password=root --defaults-file=/etc/my.cnf --incremental /backups/ --incremental-basedir=/backups/2018-07-30_11-01-37
1. 准备基于全量
innobackupex --user=root --password=root --defaults-file=/etc/my.cnf --apply-log --redo-only /backups/2018-07-30_11-01-37
2. 准备基于增量
innobackupex --user=root --password=root --defaults-file=/etc/my.cnf --apply-log --redo-only /backups/2018-07-30_11-01-37 --incremental-dir=/backups/2018-07-30_13-51-47/
3. 恢复
innobackupex --copy-back --defaults-file=/etc/my.cnf /opt/2017-01-05_11-04-55/
解释:
1. 2018-07-30_11-01-37指的是完全备份所在的目录。
2. 2018-07-30_13-51-47指定是第一次基于2018-07-30_11-01-37增量备份的目录,其他类似以此类推,即如果有多次增量备份。每一次都要执行如上操作。

需要注意的是,增量备份仅能应用于InnoDB或XtraDB表,对于MyISAM表而言,执行增量备份时其实进行的是完全备份。

“准备”(prepare)增量备份与整理完全备份有着一些不同,尤其要注意的是:

(1)需要在每个备份 (包括完全和各个增量备份)上,将已经提交的事务进行"重放"。"重放"之后,所有的备份数据将合并到完全备份上。
(2)基于所有的备份将未提交的事务进行"回滚"
2、实战练习
(1)完全备份
[root@192 ~]# innobackupex --user=root --password=1234 --host=127.0.0.1 /backups/

[root@192 ~]# ll /backups/
总用量 0
drwxr-x---. 8 root root 262 6月  28 18:17 2020-06-28_18-17-57
(2)增量备份
1)准备测试环境
mysql> use student;
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> create table grade(id int);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into grade values(1),(2),(3);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from grade;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)
2)增量备份
[root@192 ~]# innobackupex --user=root --password=1234 --host=127.0.0.1 --incremental /backups/ --incremental-basedir=/backups/2020-06-28_18-17-57

[root@192 ~]# ll /backups/
总用量 4
drwxr-x---. 8 root root  262 6月  28 18:17 2020-06-28_18-17-57
drwxr-x---. 8 root root 4096 6月  28 18:18 2020-06-28_18-18-38
(3)查看备份数据
# 查看全量备份的xtrabackup_checkpoints
[root@192 ~]# cat /backups/2020-06-28_18-17-57/xtrabackup_checkpoints 
backup_type = full-backuped		#备份类型为全量备份
from_lsn = 0					#lsn从0开始
to_lsn = 2644619				#lsn到2644619结束
last_lsn = 2644628
compact = 0
recover_binlog_info = 0

# 查看增量备份的xtrabackup_checkpoints
[root@192 ~]# cat /backups/2020-06-28_18-18-38/xtrabackup_checkpoints 
backup_type = incremental		#备份类型为增量备份
from_lsn = 2644619				#lsn从2644619开始
to_lsn = 2644628				#lsn到2644628结束
last_lsn = 2644628
compact = 0
recover_binlog_info = 0
(4)数据恢复
1)模拟mysql故障,删除数据目录所有数据
[root@192 ~]# systemctl stop mysqld
[root@192 ~]# rm -rf /var/lib/mysql/*
2)合并全备数据目录,确保数据的一致性
[root@192 ~]# innobackupex --apply-log --redo-only /backups/2020-06-28_18-17-57

# 省略部分输出信息

xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 2644637
InnoDB: Number of pools: 1
200628 20:08:23 completed OK!
3)将增量备份数据合并到全备数据目录当中
[root@192 ~]# innobackupex --apply-log --redo-only /backups/2020-06-28_18-17-57 --incremental-dir=/backups/2020-06-28_18-18-38

# 省略部分输出信息

200628 20:10:14 [01] Copying /backups/2020-06-28_18-18-38/2020-06-28_17-43-27/db.opt to ./2020-06-28_17-43-27/db.opt
200628 20:10:14 [01]        ...done
200628 20:10:14 [01] Copying /backups/2020-06-28_18-18-38/2020-06-28_17-44-04/db.opt to ./2020-06-28_17-44-04/db.opt
200628 20:10:14 [01]        ...done
200628 20:10:14 [00] Copying /backups/2020-06-28_18-18-38//xtrabackup_info to ./xtrabackup_info
200628 20:10:14 [00]        ...done
200628 20:10:14 completed OK!
4)查看数据备份类型
[root@192 ~]# cat /backups/2020-06-28_18-17-57/xtrabackup_checkpoints 
backup_type = log-applied			#查看到数据备份类型是增加
from_lsn = 0						#lsn从0开始
to_lsn = 2644619					#lsn结束号为最新的lsn
last_lsn = 2644628
compact = 0
recover_binlog_info = 0
5)恢复数据
[root@192 ~]# innobackupex --copy-back /backups/2020-06-28_18-17-57

# 省略部分输出信息

200628 20:14:39 [01] Copying ./ib_buffer_pool to /var/lib/mysql/ib_buffer_pool
200628 20:14:39 [01]        ...done
200628 20:14:39 [01] Copying ./xtrabackup_info to /var/lib/mysql/xtrabackup_info
200628 20:14:39 [01]        ...done
200628 20:14:39 completed OK!
6)查看数据库目录
[root@192 ~]# ll /var/lib/mysql
总用量 12324
drwxr-x---. 2 root root       20 6月  28 20:14 2020-06-28_17-43-27
drwxr-x---. 2 root root       20 6月  28 20:14 2020-06-28_17-44-04
-rw-r-----. 1 root root      425 6月  28 20:14 ib_buffer_pool
-rw-r-----. 1 root root 12582912 6月  28 20:14 ibdata1
drwxr-x---. 2 root root     4096 6月  28 20:14 mysql
drwxr-x---. 2 root root     8192 6月  28 20:14 performance_schema
drwxr-x---. 2 root root       84 6月  28 20:14 student
drwxr-x---. 2 root root     8192 6月  28 20:14 sys
-rw-r-----. 1 root root      507 6月  28 20:14 xtrabackup_info
7)更改数据的属主属组
[root@192 ~]# chown -R mysql.mysql /var/lib/mysql/
[root@192 ~]# ll /var/lib/mysql
总用量 12324
drwxr-x---. 2 mysql mysql       20 6月  28 20:14 2020-06-28_17-43-27
drwxr-x---. 2 mysql mysql       20 6月  28 20:14 2020-06-28_17-44-04
-rw-r-----. 1 mysql mysql      425 6月  28 20:14 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 6月  28 20:14 ibdata1
drwxr-x---. 2 mysql mysql     4096 6月  28 20:14 mysql
drwxr-x---. 2 mysql mysql     8192 6月  28 20:14 performance_schema
drwxr-x---. 2 mysql mysql       84 6月  28 20:14 student
drwxr-x---. 2 mysql mysql     8192 6月  28 20:14 sys
-rw-r-----. 1 mysql mysql      507 6月  28 20:14 xtrabackup_info
8)启动mysql
[root@192 ~]# systemctl start mysqld
[root@192 ~]# ps -aux | grep mysqld
mysql     83275  4.0  9.0 1122096 168576 ?      Sl   20:18   0:02 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root      83320  0.0  0.0 112724   988 pts/1    S+   20:19   0:00 grep --color=auto mysqld
9)查看数据是否恢复
[root@192 ~]# mysql -uroot -p -e "show databases;"
Enter password: 
+------------------------------+
| Database                     |
+------------------------------+
| information_schema           |
| mysql                        |
| performance_schema           |
| student                      |
| sys                          |
+------------------------------+
10)总结
(1)增量备份需要使用参数--incremental指定需要备份到哪个目录,使用incremental-dir指定全备目录;
(2)进行数据备份时,需要使用参数--apply-log redo-only先合并全备数据目录数据,确保全备数据目录数据的一致性;
(3)再将增量备份数据使用参数--incremental-dir合并到全备数据当中;
(4)最后通过最后的全备数据进行恢复数据,注意,如果有多个增量备份,需要逐一合并到全备数据当中,再进行恢复。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值