GaussDB T 0 1级备份 类似rman

 对于使用zsql来进行备份和恢复;再进行restore恢复时,正确的姿势是直接使用增量备份进行恢复;而不是指定全备;然后再去应用增量,这也会报错。

[omm@gdb bin]$ python zctl.py -t stop
Successfully stopped instance.
[omm@gdb bin]$ python zctl.py -t start -m nomount
starting instance(nomount)
instance started
Please check log '/gdb/gaussdb/data/log/zenithstatus.log' or '/gdb/gaussdb/data/log/run/zengine.rlog' to find more fail reason.
[omm@gdb bin]$  rm -rf /gdb/gaussdb/data/data/* 
[omm@gdb bin]$  rm -rf /gdb/gaussdb/data/archive_log/* 
[omm@gdb bin]$ zsql / as sysdba

 
SQL> RESTORE DATABASE FROM '/tmp/roger_level0_02.bak';

Succeed.

SQL>  recover database;

 alter database open;
Succeed.

SQL> SQL> 

Succeed.

SQL> 
SQL> 
 

这是关于Gaussdb 100的物理差异增量备份恢复的例子;通过该测试可以窥测一些相关机制;供大家参加学习。

–开始归档

 

----归档
python zctl.py -t stop
python zctl.py -t start -m mount

alter database gauss noarchivelog;
alter database gauss archivelog;

–差异增量0 级备份(压缩)

 BACKUP DATABASE INCREMENTAL LEVEL 0  FORMAT '/tmp/roger_level0_01.bak' as compressed backupset;

–差异增量1 级备份(压缩)
  BACKUP DATABASE INCREMENTAL LEVEL 1  FORMAT '/tmp/roger_level0_02.bak' as compressed backupset;

 

–查看备份进程情况

 

SQL> select * from V$BACKUP_PROCESS; TYPE PROGRESS STAGE STATUS ERR_NO ERR_MSG TOTAL_PROC FREE_PROC ---------- ------------ ---------- ---------- ------------ ---------- ------------ ------------ backup 64 data files processing 0 4 3 1 rows fetched. SQL> select * from V$BACKUP_PROCESS; TYPE PROGRESS STAGE STATUS ERR_NO ERR_MSG TOTAL_PROC FREE_PROC ---------- ------------ ---------- ---------- ------------ ---------- ------------ ------------ backup 100 end success 0 0 0 1 rows fetched.

 

这里比较奇怪的是以为指定是备份集文件名字,其实是会创建该名称的目录,然后在目录下存放备份文件;可以看到是针对每个文件进行了备份。

—继续进行1级增量备份

 

 

+++ 恢复测试

 

[roger@mysqldb gaussdata]$ rm -rf user* [roger@mysqldb gaussdata]$ rm -rf sys* [roger@mysqldb gaussdata]$ rm -rf undo* [roger@mysqldb gaussdata]$ rm -rf temp* [roger@mysqldb gaussdata]$ zsql / as sysdba -q connected. SQL> RESTORE DATABASE FROM '/tmp/gaussdb_backup/roger_level0_01.bak'; GS-00855, restore failed, Failed to create the file /opt/gauss/gaussdata/data/cntl1, the error code was 17

提示控制文件已经存在。在nomount下,居然不能覆盖控制文件。。。。好吧,我rm掉。

 

[roger@mysqldb gaussdata]$ rm cntl* [roger@mysqldb gaussdata]$ cd data/ [roger@mysqldb data]$ ls -ltr total 30720 -rw------- 1 roger roger 10485760 Feb 14 18:09 cntl1 -rw------- 1 roger roger 10485760 Feb 14 18:09 cntl2 -rw------- 1 roger roger 10485760 Feb 14 18:09 cntl3 [roger@mysqldb data]$ rm -rf * [roger@mysqldb gaussdata]$ zengine nomount -D /opt/gauss/gaussdata & [1] 91990 [roger@mysqldb gaussdata]$ starting instance(nomount) instance started

–继续恢复测试

 

[roger@mysqldb data]$ zsql / as sysdba -q connected. SQL> restore database from '/tmp/gaussdb_backup/roger_level0_01.bak'; GS-00855, restore failed, Failed to create the file /opt/gauss/gaussdata/log1, the error code was 17 SQL>

好吧。restore 跟log居然也有关系。好吧。 重新删干净后再次运行。

 

[roger@mysqldb gaussdata]$ zsql / as sysdba -q connected.

 

RESTORE DATABASE FROM '/tmp/roger_level0_01.bak';
RESTORE DATABASE FROM '/tmp/roger_level0_02.bak';


 recover database;

 alter database open;

可以看到全备恢复成功了。

此时的全备restore的log信息如下:

 

UTC+8 2020-02-14 18:17:06.398|ZENGINE|00053|92312|INFO>[BACKUP] restore start, device:0, policy:, paral count 4, path:/tmp/gaussdb_backup/roger_level0_01.bak [knl_restore.c:1947] UTC+8 2020-02-14 18:17:06.398|ZENGINE|00053|92312|INFO>[ARCH] Already initialized [knl_archive.c:803] UTC+8 2020-02-14 18:17:06.403|ZENGINE|00000|95864|INFO>[BACKUP] parallel process 2 start [knl_bak_paral.c:996] UTC+8 2020-02-14 18:17:06.403|ZENGINE|00000|95865|INFO>[BACKUP] parallel process 3 start [knl_bak_paral.c:996] UTC+8 2020-02-14 18:17:06.403|ZENGINE|00000|95866|INFO>[BACKUP] parallel process 4 start [knl_bak_paral.c:996] UTC+8 2020-02-14 18:17:06.403|ZENGINE|00000|95863|INFO>[BACKUP] parallel process 1 start [knl_bak_paral.c:996] UTC+8 2020-02-14 18:17:06.532|ZENGINE|00053|94871532693656|INFO>[RESTORE] restore data_0_0, recent filesize 0K, section [0K, 16528K], bakcup id 1 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:17:06.634|ZENGINE|00053|94871532693656|INFO>[RESTORE] restore data_1_0, recent filesize 0K, section [0K, 16K], bakcup id 2 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:17:06.668|ZENGINE|00000|139818365449847|INFO>[RESTORE] fill datafile tail, start 16472K, end 16528K, backup id 1 [knl_bak_paral.c:763] UTC+8 2020-02-14 18:17:06.733|ZENGINE|00053|94871532693656|INFO>[RESTORE] restore data_3_0, recent filesize 0K, section [0K, 393216K], bakcup id 3 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:17:06.733|ZENGINE|00053|94871532693656|INFO>[RESTORE] restore data_3_1, recent filesize 0K, section [393216K, 531920K], bakcup id 4 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:17:06.947|ZENGINE|00053|94871532693656|INFO>[RESTORE] restore data_4_0, recent filesize 0K, section [0K, 204240K], bakcup id 5 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:17:07.261|ZENGINE|00053|94871532693656|INFO>[RESTORE] restore data_9_0, recent filesize 0K, section [0K, 16K], bakcup id 6 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:17:07.588|ZENGINE|00053|94871532693656|INFO>[RESTORE] restore data_11_0, recent filesize 0K, section [0K, 16K], bakcup id 7 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:17:07.892|ZENGINE|00053|94871532693656|INFO>[RESTORE] restore data_12_0, recent filesize 0K, section [0K, 89648K], bakcup id 8 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:17:08.586|ZENGINE|00000|139818365449849|INFO>[RESTORE] fill datafile tail, start 204192K, end 204240K, backup id 5 [knl_bak_paral.c:763] UTC+8 2020-02-14 18:17:09.043|ZENGINE|00000|95862|INFO>[RESTORE] restore datafiles finished [knl_restore.c:949] UTC+8 2020-02-14 18:17:09.043|ZENGINE|00000|95862|INFO>[BACKUP] create logfiles completed [knl_restore.c:565] UTC+8 2020-02-14 18:17:09.052|ZENGINE|00000|139818365449847|INFO>[RESTORE] start restore arch_12_0, backup id 9, log name /tmp/gaussdb_backup/roger_level0_01.bak/arch_12_0.bak [knl_bak_paral.c:673] UTC+8 2020-02-14 18:17:09.054|ZENGINE|00000|139818365449847|INFO>[ARCH] Record archive log file /opt/gauss/gaussdata/archive_log/arch_0_12.arc for log [0-12] start 0 end 1 [knl_archive.c:284] UTC+8 2020-02-14 18:17:09.146|ZENGINE|00000|95862|INFO>[RESTORE] restore logfiles finished, current backupset /tmp/gaussdb_backup/roger_level0_01.bak [knl_restore.c:964] UTC+8 2020-02-14 18:17:42.642|ZENGINE|00000|95862|INFO>[ARCH] Record archive log file /opt/gauss/gaussdata/archive_log/arch_0_13.arc for log [0-13] start 0 end 2 [knl_archive.c:284] UTC+8 2020-02-14 18:17:42.665|ZENGINE|00000|95863|INFO>[BACKUP] parallel process 1 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 18:17:42.672|ZENGINE|00000|95864|INFO>[BACKUP] parallel process 2 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 18:17:42.683|ZENGINE|00000|95865|INFO>[BACKUP] parallel process 3 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 18:17:42.685|ZENGINE|00000|95866|INFO>[BACKUP] parallel process 4 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 18:17:42.685|ZENGINE|00053|4995142158903240856|INFO>[BACKUP] restore success [knl_bak_common.c:1762]

可以看到默认情况下即会启动4个进程进行恢复操作。同时我们可以看到restore进程在完成数据文件restore之后,还自动注册了归档。 应用了archive log 到最新

+++进行数据恢复操作

 

SQL> recover database; Succeed. SQL> alter database open; Succeed. SQL> conn roger/Roger007@127.0.0.1:1611 connected. SQL> select * from test; A B ---------------------------------------- -------------------- 1 www.enmotech.com 1 www.killdb.com 100 www.modb.pro 3 rows fetched. SQL>

进一步观察此时recover的操作日志:

 

UTC+8 2020-02-14 18:21:00.863|ZENGINE|00053|92312|INFO>sucessfully alter database MOUNT [knl_database.c:1103] UTC+8 2020-02-14 18:21:00.899|ZENGINE|00053|92312|INFO>database start recovery [knl_recovery.c:1457] UTC+8 2020-02-14 18:21:00.899|ZENGINE|00053|92312|INFO>recovery from file:12,point:112,lfn:27160 [knl_recovery.c:1459] UTC+8 2020-02-14 18:21:00.899|ZENGINE|00053|92312|INFO>recovery expected least end with file:12,point:112,lfn:27160 [knl_recovery.c:1461] UTC+8 2020-02-14 18:21:01.010|ZENGINE|00053|139818365446296|INFO>[RCY] recovery real end with file:14,point:1,lfn:27247 [knl_recovery.c:1423] UTC+8 2020-02-14 18:21:01.010|ZENGINE|00053|139818365446296|INFO>[RCY] current lfn 27247, rcy point lfn 27160, consistent point 27160, lrp point lfn 27160 [knl_recovery.c:1425] UTC+8 2020-02-14 18:21:16.990|ZENGINE|00053|206158522520|INFO>start to alter database OPEN [knl_database.c:1322] UTC+8 2020-02-14 18:21:17.071|ZENGINE|00053|139818365446296|INFO>[ARCH] Start ARCH thread for ARCHIVE_DEST_1[/opt/gauss/gaussdata/archive_log] [knl_archive.c:881] UTC+8 2020-02-14 18:21:17.071|ZENGINE|00053|15214422880117942424|INFO>The last shutdown is inconsistent [knl_database.c:1379] UTC+8 2020-02-14 18:21:17.071|ZENGINE|00053|92312|INFO>database start recovery [knl_recovery.c:1457] UTC+8 2020-02-14 18:21:17.071|ZENGINE|00053|92312|INFO>recovery from file:13,point:750,lfn:27247 [knl_recovery.c:1459] UTC+8 2020-02-14 18:21:17.071|ZENGINE|00053|92312|INFO>recovery expected least end with file:13,point:750,lfn:27247 [knl_recovery.c:1461] UTC+8 2020-02-14 18:21:17.082|ZENGINE|00053|139818365446296|INFO>[RCY] recovery real end with file:14,point:1,lfn:27247 [knl_recovery.c:1423] UTC+8 2020-02-14 18:21:17.082|ZENGINE|00053|139818365446296|INFO>[RCY] current lfn 27247, rcy point lfn 27247, consistent point 27247, lrp point lfn 27247 [knl_recovery.c:1425] UTC+8 2020-02-14 18:21:17.148|ZENGINE|00053|139822660413592|INFO>no valid standby configuration [knl_lns.c:1727] UTC+8 2020-02-14 18:21:17.152|ZENGINE|00053|92312|INFO>[DB] sse42 available 1 [knl_database.c:1440] UTC+8 2020-02-14 18:21:17.152|ZENGINE|00053|92312|INFO>sucessfully alter database OPEN [knl_database.c:1441] UTC+8 2020-02-14 18:21:17.300|ZENGINE|00000|92000|INFO>rollback thread closed [knl_tran.c:1203] UTC+8 2020-02-14 18:21:17.304|ZENGINE|00000|91999|INFO>rollback thread closed [knl_tran.c:1203] UTC+8 2020-02-14 18:21:17.924|ZENGINE|00054|99048|INFO>load index parts: load index parts, uid: 0, tid: 278, iid: 0, index partcnt: 4032 [knl_dc_part.c:993] UTC+8 2020-02-14 18:21:17.926|ZENGINE|00054|99048|INFO>load index parts: load index parts, uid: 0, tid: 302, iid: 0, index partcnt: 4032 [knl_dc_part.c:993] UTC+8 2020-02-14 18:21:17.928|ZENGINE|00054|99048|INFO>load index parts: load index parts, uid: 0, tid: 274, iid: 0, index partcnt: 4032 [knl_dc_part.c:993] UTC+8 2020-02-14 18:21:17.933|ZENGINE|00054|99048|INFO>load index parts: load index parts, uid: 0, tid: 276, iid: 0, index partcnt: 4032 [knl_dc_part.c:993]

可以看到recover的起点:lfn:27160;recover的终点:lfn 27247

++++ 第二次恢复测试

 

删掉所有数据文件,redo文件,控制文件以及归档文件。 [roger@mysqldb gaussdata]$ rm -rf log4 log3 log2 log5 log6 log1 [roger@mysqldb gaussdata]$ rm -rf sys* [roger@mysqldb gaussdata]$ rm -rf undo [roger@mysqldb gaussdata]$ rm -rf temp* [roger@mysqldb gaussdata]$ cd data/ [roger@mysqldb data]$ ls -ltr total 30720 -rw------- 1 roger roger 10485760 Feb 14 18:51 cntl1 -rw------- 1 roger roger 10485760 Feb 14 18:51 cntl2 -rw------- 1 roger roger 10485760 Feb 14 18:51 cntl3 [roger@mysqldb data]$ rm -rf * [roger@mysqldb gaussdata]$ cd archive_log/ [roger@mysqldb archive_log]$ ls -ltr total 1335616 -rw------- 1 roger roger 133393920 Feb 14 12:55 arch_0_1.arc -rw------- 1 roger roger 133582848 Feb 14 12:55 arch_0_2.arc -rw------- 1 roger roger 133707776 Feb 14 12:55 arch_0_3.arc -rw------- 1 roger roger 133812736 Feb 14 12:56 arch_0_4.arc -rw------- 1 roger roger 132929536 Feb 14 16:32 arch_0_5.arc -rw------- 1 roger roger 134062592 Feb 14 16:32 arch_0_6.arc -rw------- 1 roger roger 132893184 Feb 14 16:32 arch_0_7.arc -rw------- 1 roger roger 134105088 Feb 14 16:39 arch_0_8.arc -rw------- 1 roger roger 134017536 Feb 14 16:48 arch_0_9.arc -rw------- 1 roger roger 134163456 Feb 14 16:48 arch_0_10.arc -rw------- 1 roger roger 30539264 Feb 14 17:53 arch_0_11.arc -rw------- 1 roger roger 57344 Feb 14 17:58 arch_0_12.arc -rw------- 1 roger roger 384000 Feb 14 18:06 arch_0_13.arc [roger@mysqldb archive_log]$ rm -rf * [roger@mysqldb archive_log]$ ls [roger@mysqldb archive_log]$ cd .. [roger@mysqldb gaussdata]$ ls -ltr total 5083144 drwx------ 2 roger roger 42 Feb 13 16:23 dbs -rw------- 1 roger roger 0 Feb 13 16:23 zengine.lck drwx------ 5 roger roger 87 Feb 13 16:39 log drwx------ 2 roger roger 4096 Feb 13 21:50 trc -rw------- 1 roger roger 134217728 Feb 14 16:48 log3_bak -rw------- 1 roger roger 134217728 Feb 14 16:48 log4_bak -rw------- 1 roger roger 134217728 Feb 14 17:53 log5_bak -rw------- 1 roger roger 134217728 Feb 14 17:58 log6_bak -rw------- 1 roger roger 134217728 Feb 14 18:06 log1_bak -rw------- 1 roger roger 134217728 Feb 14 18:06 log2_bak drwx------ 2 roger roger 85 Feb 14 18:12 protect -rw------- 1 roger roger 104857600 Feb 14 18:17 user5 -rw------- 1 roger roger 1073741824 Feb 14 18:17 user2 -rw------- 1 roger roger 1073741824 Feb 14 18:17 user3 -rw------- 1 roger roger 1073741824 Feb 14 18:17 user4 drwx------ 2 roger roger 62 Feb 14 18:20 cfg -rw------- 1 roger roger 1073741824 Feb 14 18:26 user1 drwx------ 2 roger roger 6 Feb 14 18:57 data drwx------ 2 roger roger 6 Feb 14 18:57 archive_log [roger@mysqldb gaussdata]$ rm -rf user* [roger@mysqldb gaussdata]$ rm -rf log* [roger@mysqldb gaussdata]$ ls -ltr total 4 drwx------ 2 roger roger 42 Feb 13 16:23 dbs -rw------- 1 roger roger 0 Feb 13 16:23 zengine.lck drwx------ 2 roger roger 4096 Feb 13 21:50 trc drwx------ 2 roger roger 85 Feb 14 18:12 protect drwx------ 2 roger roger 62 Feb 14 18:20 cfg drwx------ 2 roger roger 6 Feb 14 18:57 data drwx------ 2 roger roger 6 Feb 14 18:57 archive_log [roger@mysqldb gaussdata]$ mkdir log

–启动实例到nomount

 

[roger@mysqldb gaussdata]$ zengine nomount -D /opt/gauss/gaussdata & [1] 127423 [roger@mysqldb gaussdata]$ starting instance(nomount) instance started [roger@mysqldb gaussdata]$ [roger@mysqldb gaussdata]$ zsql / as sysdba -q connected.

–进行restore & recover

 

 rm -rf /gdb/gaussdb/data/data/*                 */
 rm -rf /gdb/gaussdb/data/archive_log/*                */

SQL> restore database from '/tmp/gaussdb_backup/roger_level0_01.bak'; Succeed. SQL> recover database; Succeed. SQL> alter database open; Succeed. SQL> SQL> conn roger/Roger007@127.0.0.1:1611 connected. SQL> select * from test; A B ---------------------------------------- -------------------- 1 www.enmotech.com 1 www.killdb.com 2 rows fetched. ----丢失了最新的一条数据。

—如下是相关日志

 

TC+8 2020-02-14 18:58:54.292|ZENGINE|00053|127593|INFO>[BACKUP] restore start, device:0, policy:, paral count 4, path:/tmp/gaussdb_backup/roger_level0_01.bak [knl_restore.c:1947] UTC+8 2020-02-14 18:58:54.292|ZENGINE|00053|127593|INFO>[ARCH] Initialization complete [knl_archive.c:824] UTC+8 2020-02-14 18:58:54.304|ZENGINE|00000|127988|INFO>[BACKUP] parallel process 1 start [knl_bak_paral.c:996] UTC+8 2020-02-14 18:58:54.316|ZENGINE|00000|127989|INFO>[BACKUP] parallel process 2 start [knl_bak_paral.c:996] UTC+8 2020-02-14 18:58:54.316|ZENGINE|00000|127990|INFO>[BACKUP] parallel process 3 start [knl_bak_paral.c:996] UTC+8 2020-02-14 18:58:54.316|ZENGINE|00000|127991|INFO>[BACKUP] parallel process 4 start [knl_bak_paral.c:996] UTC+8 2020-02-14 18:58:54.420|ZENGINE|00053|93849330512489|INFO>[RESTORE] restore data_0_0, recent filesize 0K, section [0K, 16528K], bakcup id 1 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:58:54.520|ZENGINE|00053|93849330512489|INFO>[RESTORE] restore data_1_0, recent filesize 0K, section [0K, 16K], bakcup id 2 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:58:54.576|ZENGINE|00000|139693811430388|INFO>[RESTORE] fill datafile tail, start 16472K, end 16528K, backup id 1 [knl_bak_paral.c:763] UTC+8 2020-02-14 18:58:54.621|ZENGINE|00053|93849330512489|INFO>[RESTORE] restore data_3_0, recent filesize 0K, section [0K, 393216K], bakcup id 3 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:58:54.621|ZENGINE|00053|93849330512489|INFO>[RESTORE] restore data_3_1, recent filesize 0K, section [393216K, 531920K], bakcup id 4 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:58:54.843|ZENGINE|00053|93849330512489|INFO>[RESTORE] restore data_4_0, recent filesize 0K, section [0K, 204240K], bakcup id 5 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:58:55.156|ZENGINE|00053|93849330512489|INFO>[RESTORE] restore data_9_0, recent filesize 0K, section [0K, 16K], bakcup id 6 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:58:55.477|ZENGINE|00053|93849330512489|INFO>[RESTORE] restore data_11_0, recent filesize 0K, section [0K, 16K], bakcup id 7 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:58:55.806|ZENGINE|00053|93849330512489|INFO>[RESTORE] restore data_12_0, recent filesize 0K, section [0K, 89648K], bakcup id 8 [knl_bak_paral.c:374] UTC+8 2020-02-14 18:58:57.431|ZENGINE|00000|139693811430390|INFO>[RESTORE] fill datafile tail, start 204192K, end 204240K, backup id 5 [knl_bak_paral.c:763] UTC+8 2020-02-14 18:58:58.019|ZENGINE|00000|127987|INFO>[RESTORE] restore datafiles finished [knl_restore.c:949] UTC+8 2020-02-14 18:58:58.019|ZENGINE|00000|127987|INFO>[BACKUP] create logfiles completed [knl_restore.c:565] UTC+8 2020-02-14 18:58:58.031|ZENGINE|00000|139693811430388|INFO>[RESTORE] start restore arch_12_0, backup id 9, log name /tmp/gaussdb_backup/roger_level0_01.bak/arch_12_0.bak [knl_bak_paral.c:673] UTC+8 2020-02-14 18:58:58.031|ZENGINE|00000|139693811430388|INFO>[BACKUP] Create /opt/gauss/gaussdata/archive_log/arch_0_12.arc [knl_restore.c:362] UTC+8 2020-02-14 18:58:58.035|ZENGINE|00000|139693811430388|INFO>[ARCH] Record archive log file /opt/gauss/gaussdata/archive_log/arch_0_12.arc for log [0-12] start 0 end 1 [knl_archive.c:284] UTC+8 2020-02-14 18:58:58.122|ZENGINE|00000|127987|INFO>[RESTORE] restore logfiles finished, current backupset /tmp/gaussdb_backup/roger_level0_01.bak [knl_restore.c:964] UTC+8 2020-02-14 18:59:19.783|ZENGINE|00000|127988|INFO>[BACKUP] parallel process 1 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 18:59:19.785|ZENGINE|00000|127989|INFO>[BACKUP] parallel process 2 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 18:59:19.792|ZENGINE|00000|127990|INFO>[BACKUP] parallel process 3 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 18:59:19.802|ZENGINE|00000|127991|INFO>[BACKUP] parallel process 4 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 18:59:19.804|ZENGINE|00053|4995142158903276137|INFO>[BACKUP] restore success [knl_bak_common.c:1762] UTC+8 2020-02-14 18:59:40.516|ZENGINE|00053|7162257363678917225|INFO>[BACKUP] restore start, device:0, policy:, paral count 4, path:/tmp/gaussdb_backup/roger_level1_01.bak [knl_restore.c:1947] ....... UTC+8 2020-02-14 18:59:46.691|ZENGINE|00053|206158557801|INFO>start to alter database MOUNT [knl_database.c:1047] UTC+8 2020-02-14 18:59:46.745|ZENGINE|00053|127593|INFO>[ARCH] Already initialized [knl_archive.c:803] UTC+8 2020-02-14 18:59:46.745|ZENGINE|00053|127593|INFO>sucessfully alter database MOUNT [knl_database.c:1103] UTC+8 2020-02-14 18:59:46.762|ZENGINE|00053|127593|INFO>database start recovery [knl_recovery.c:1457] UTC+8 2020-02-14 18:59:46.762|ZENGINE|00053|127593|INFO>recovery from file:12,point:112,lfn:27160 [knl_recovery.c:1459] UTC+8 2020-02-14 18:59:46.762|ZENGINE|00053|127593|INFO>recovery expected least end with file:12,point:112,lfn:27160 [knl_recovery.c:1461] UTC+8 2020-02-14 18:59:46.807|ZENGINE|00053|139693811429993|INFO>[RCY] recovery real end with file:13,point:1,lfn:27160 [knl_recovery.c:1423] UTC+8 2020-02-14 18:59:46.807|ZENGINE|00053|139693811429993|INFO>[RCY] current lfn 27160, rcy point lfn 27160, consistent point 27160, lrp point lfn 27160 [knl_recovery.c:1425] UTC+8 2020-02-14 19:00:06.205|ZENGINE|00053|206158557801|INFO>start to alter database OPEN [knl_database.c:1322] UTC+8 2020-02-14 19:00:06.286|ZENGINE|00053|139693811429993|INFO>[ARCH] Start ARCH thread for ARCHIVE_DEST_1[/opt/gauss/gaussdata/archive_log] [knl_archive.c:881] UTC+8 2020-02-14 19:00:06.286|ZENGINE|00053|8527087606868079209|INFO>The last shutdown is inconsistent [knl_database.c:1379] UTC+8 2020-02-14 19:00:06.286|ZENGINE|00053|127593|INFO>database start recovery [knl_recovery.c:1457] UTC+8 2020-02-14 19:00:06.286|ZENGINE|00053|127593|INFO>recovery from file:12,point:112,lfn:27160 [knl_recovery.c:1459] UTC+8 2020-02-14 19:00:06.286|ZENGINE|00053|127593|INFO>recovery expected least end with file:12,point:112,lfn:27160 [knl_recovery.c:1461] UTC+8 2020-02-14 19:00:06.296|ZENGINE|00053|139693811429993|INFO>[RCY] recovery real end with file:13,point:1,lfn:27160 [knl_recovery.c:1423] UTC+8 2020-02-14 19:00:06.296|ZENGINE|00053|139693811429993|INFO>[RCY] current lfn 27160, rcy point lfn 27160, consistent point 27160, lrp point lfn 27160 [knl_recovery.c:1425] UTC+8 2020-02-14 19:00:06.386|ZENGINE|00053|139693811429993|INFO>no valid standby configuration [knl_lns.c:1727] UTC+8 2020-02-14 19:00:06.388|ZENGINE|00053|127593|INFO>[DB] sse42 available 1 [knl_database.c:1440] UTC+8 2020-02-14 19:00:06.388|ZENGINE|00053|127593|INFO>sucessfully alter database OPEN [knl_database.c:1441] UTC+8 2020-02-14 19:00:06.495|ZENGINE|00000|127432|INFO>rollback thread closed [knl_tran.c:1203] UTC+8 2020-02-14 19:00:06.495|ZENGINE|00000|127433|INFO>rollback thread closed [knl_tran.c:1203] UTC+8 2020-02-14 19:00:06.897|ZENGINE|00054|128941|INFO>load index parts: load index parts, uid: 0, tid: 278, iid: 0, index partcnt: 4032 [knl_dc_part.c:993]

我们可以看到此时恢复到的点居然是:onsistent point 27160 这比之前归档存在的情况下恢复的点要小的多;缺乏严格的校验机制。因此最后一条增量数据丢失。

++++ 最后一次恢复测试

–删掉所有文件(数据文件/temp/controlfile/redo log)

 

[roger@mysqldb gaussdata]$ rm -rf user* [roger@mysqldb gaussdata]$ rm -rf temp* [roger@mysqldb gaussdata]$ rm -rf sys* [roger@mysqldb gaussdata]$ rm -rf log1 log2 log3 log4 log5 log6 [roger@mysqldb gaussdata]$ rm -rf archive_log/* [roger@mysqldb gaussdata]$ rm -rf data/cntl* [roger@mysqldb gaussdata]$ rm -rf undo [roger@mysqldb gaussdata]$ ls -ltr total 4 drwx------ 2 roger roger 42 Feb 13 16:23 dbs -rw------- 1 roger roger 0 Feb 13 16:23 zengine.lck drwx------ 2 roger roger 4096 Feb 13 21:50 trc drwx------ 5 roger roger 64 Feb 14 18:58 log drwx------ 2 roger roger 62 Feb 14 18:59 cfg drwx------ 2 roger roger 85 Feb 14 19:18 protect drwx------ 2 roger roger 6 Feb 14 19:58 archive_log drwx------ 2 roger roger 6 Feb 14 19:58 data

–启动实例到nomount

 

[roger@mysqldb gaussdata]$ zengine nomount -D /opt/gauss/gaussdata & [1] 44946 [roger@mysqldb gaussdata]$ starting instance(nomount) instance started

–开始全库restore

 

[roger@mysqldb gaussdata]$ zsql / as sysdba -q connected. SQL> restore database from '/tmp/gaussdb_backup/roger_level0_01.bak'; Succeed. SQL>

此时的日志信息如下所示:

 

UTC+8 2020-02-14 20:01:18.882|ZENGINE|00000|45522|INFO>agent thread started, tid:139927433565952, close:0 [srv_agent.c:359] UTC+8 2020-02-14 20:01:18.882|ZENGINE|00053|45522|INFO>[LOG] file '/opt/gauss/gaussdata/log/audit/zengine.aud' is added [cm_log.c:641] UTC+8 2020-02-14 20:01:26.671|ZENGINE|00053|45522|INFO>[BACKUP] restore start, device:0, policy:, paral count 4, path:/tmp/gaussdb_backup/roger_level0_01.bak [knl_restore.c:1947] UTC+8 2020-02-14 20:01:26.671|ZENGINE|00053|45522|INFO>[ARCH] Initialization complete [knl_archive.c:824] UTC+8 2020-02-14 20:01:26.687|ZENGINE|00000|45608|INFO>[BACKUP] parallel process 4 start [knl_bak_paral.c:996] UTC+8 2020-02-14 20:01:26.698|ZENGINE|00000|45605|INFO>[BACKUP] parallel process 1 start [knl_bak_paral.c:996] UTC+8 2020-02-14 20:01:26.698|ZENGINE|00000|45606|INFO>[BACKUP] parallel process 2 start [knl_bak_paral.c:996] UTC+8 2020-02-14 20:01:26.698|ZENGINE|00000|45607|INFO>[BACKUP] parallel process 3 start [knl_bak_paral.c:996] UTC+8 2020-02-14 20:01:26.818|ZENGINE|00053|93948114678226|INFO>[RESTORE] restore data_0_0, recent filesize 0K, section [0K, 16528K], bakcup id 1 [knl_bak_paral.c:374] UTC+8 2020-02-14 20:01:26.919|ZENGINE|00053|93948114678226|INFO>[RESTORE] restore data_1_0, recent filesize 0K, section [0K, 16K], bakcup id 2 [knl_bak_paral.c:374] UTC+8 2020-02-14 20:01:26.982|ZENGINE|00000|139925739581989|INFO>[RESTORE] fill datafile tail, start 16472K, end 16528K, backup id 1 [knl_bak_paral.c:763] UTC+8 2020-02-14 20:01:27.019|ZENGINE|00053|93948114678226|INFO>[RESTORE] restore data_3_0, recent filesize 0K, section [0K, 393216K], bakcup id 3 [knl_bak_paral.c:374] UTC+8 2020-02-14 20:01:27.019|ZENGINE|00053|93948114678226|INFO>[RESTORE] restore data_3_1, recent filesize 0K, section [393216K, 531920K], bakcup id 4 [knl_bak_paral.c:374] UTC+8 2020-02-14 20:01:27.216|ZENGINE|00053|93948114678226|INFO>[RESTORE] restore data_4_0, recent filesize 0K, section [0K, 204240K], bakcup id 5 [knl_bak_paral.c:374] UTC+8 2020-02-14 20:01:27.541|ZENGINE|00053|93948114678226|INFO>[RESTORE] restore data_9_0, recent filesize 0K, section [0K, 16K], bakcup id 6 [knl_bak_paral.c:374] UTC+8 2020-02-14 20:01:27.859|ZENGINE|00053|93948114678226|INFO>[RESTORE] restore data_11_0, recent filesize 0K, section [0K, 16K], bakcup id 7 [knl_bak_paral.c:374] UTC+8 2020-02-14 20:01:28.167|ZENGINE|00053|93948114678226|INFO>[RESTORE] restore data_12_0, recent filesize 0K, section [0K, 89648K], bakcup id 8 [knl_bak_paral.c:374] UTC+8 2020-02-14 20:01:29.895|ZENGINE|00000|139925739581991|INFO>[RESTORE] fill datafile tail, start 204192K, end 204240K, backup id 5 [knl_bak_paral.c:763] UTC+8 2020-02-14 20:01:30.504|ZENGINE|00000|45604|INFO>[RESTORE] restore datafiles finished [knl_restore.c:949] UTC+8 2020-02-14 20:01:30.504|ZENGINE|00000|45604|INFO>[BACKUP] create logfiles completed [knl_restore.c:565] UTC+8 2020-02-14 20:01:30.515|ZENGINE|00000|139925739581989|INFO>[RESTORE] start restore arch_12_0, backup id 9, log name /tmp/gaussdb_backup/roger_level0_01.bak/arch_12_0.bak [knl_bak_paral.c:673] UTC+8 2020-02-14 20:01:30.515|ZENGINE|00000|139925739581989|INFO>[BACKUP] Create /opt/gauss/gaussdata/archive_log/arch_0_12.arc [knl_restore.c:362] UTC+8 2020-02-14 20:01:30.534|ZENGINE|00000|139925739581989|INFO>[ARCH] Record archive log file /opt/gauss/gaussdata/archive_log/arch_0_12.arc for log [0-12] start 0 end 1 [knl_archive.c:284] UTC+8 2020-02-14 20:01:30.610|ZENGINE|00000|45604|INFO>[RESTORE] restore logfiles finished, current backupset /tmp/gaussdb_backup/roger_level0_01.bak [knl_restore.c:964] UTC+8 2020-02-14 20:02:06.663|ZENGINE|00000|45605|INFO>[BACKUP] parallel process 1 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 20:02:06.673|ZENGINE|00000|45606|INFO>[BACKUP] parallel process 2 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 20:02:06.682|ZENGINE|00000|45607|INFO>[BACKUP] parallel process 3 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 20:02:06.693|ZENGINE|00000|45608|INFO>[BACKUP] parallel process 4 stop [knl_bak_paral.c:1022] UTC+8 2020-02-14 20:02:06.693|ZENGINE|00053|4995142158903194066|INFO>[BACKUP] restore success [knl_bak_common.c:1762]

–开始recover

 

SQL> recover database; Succeed.

此时日志信息如下:

 

UTC+8 2020-02-14 20:03:47.309|ZENGINE|00053|206158475730|INFO>start to alter database MOUNT [knl_database.c:1047] UTC+8 2020-02-14 20:03:47.386|ZENGINE|00053|45522|INFO>[ARCH] Already initialized [knl_archive.c:803] UTC+8 2020-02-14 20:03:47.386|ZENGINE|00053|45522|INFO>sucessfully alter database MOUNT [knl_database.c:1103] UTC+8 2020-02-14 20:03:47.445|ZENGINE|00053|45522|INFO>database start recovery [knl_recovery.c:1457] UTC+8 2020-02-14 20:03:47.445|ZENGINE|00053|45522|INFO>recovery from file:12,point:112,lfn:27160 [knl_recovery.c:1459] UTC+8 2020-02-14 20:03:47.445|ZENGINE|00053|45522|INFO>recovery expected least end with file:12,point:112,lfn:27160 [knl_recovery.c:1461] UTC+8 2020-02-14 20:03:47.491|ZENGINE|00053|139925739581906|INFO>[RCY] recovery real end with file:13,point:1,lfn:27160 [knl_recovery.c:1423] UTC+8 2020-02-14 20:03:47.491|ZENGINE|00053|139925739581906|INFO>[RCY] current lfn 27160, rcy point lfn 27160, consistent point 27160, lrp point lfn 27160 [knl_recovery.c:1425]

可以看到recover操作会自动将数据库mount。

 

--dump controlfile SQL> alter system dump ctrlfile; Succeed. Elapsed: 0.014 sec

此时控制文件dump信息如下:

 

[roger@mysqldb trc]$ cat ctrl_page.trc information of page 0-1 lsn: 0 pcn: 0 size: 16384 type: ctrl next_ext: 1023-0 core information: version: 1-0-1-0 startup times: 4 dbid times: 773766796 database name: ROGER init time: 2020-02-13 16:50:50 scn: 388345312780289 table$ entry: 2 ix_table$1 entry: 34 ix_table$2 entry: 42 column$ entry: 10 ix_column$ entry: 50 index$ entry: 18 ix_index$1 entry: 58 ix_index$2 entry: 66 user$_entry: 26 ix_user$1 entry: 74 ix_user$2 entry: 82 rcy point: 0-12-112-27160 lrp point: 0-12-112-27160 raft flush point: scn(0)-lfn(0)-raft_index(0) ckpt_id: 308 dw_start: 4 dw_end: 4 lsn: 8775411 lfn: 27160 build completed: 1 log count: 6 log hwm: 6 log first: 0 log last: 0 archive mode: 1 archive logs: 0-0-0-0-0-0-0-0-0-0 db_role: 0 protect mode: 0 space count: 7 device count: 13 page size: 8192 undo segments: 32 reset logs: 0-0-0 archived_start: 0 archived_end: 1 logic replication mode: 0 shutdown consistency: 0 open inconsistency: 0 consistent lfn: 27160 storage information: logfiles information: id name size hwm seq block_size flg type status forward backward #0 /opt/gauss/gaussdata/log1 134217728 0 0 512 0 1 3 0 0 #1 /opt/gauss/gaussdata/log2 134217728 0 0 512 0 1 1 0 0 #2 /opt/gauss/gaussdata/log3 134217728 0 0 512 0 1 1 0 0 #3 /opt/gauss/gaussdata/log4 134217728 0 0 512 0 1 1 0 0 #4 /opt/gauss/gaussdata/log5 134217728 0 0 512 0 1 1 0 0 #5 /opt/gauss/gaussdata/log6 134217728 0 0 512 0 1 1 0 0 spaces information: id spaceid used name flg block_size extent_size file_hwm org_scn files #0 0 1 SYSTEM 1 8192 8 1 6762045441 0 #1 1 1 TEMP 1 8192 16 2 9270042625 1, 2 #2 2 1 UNDO 1 8192 1 1 10840301569 3 #3 3 1 USERS 9 8192 8 5 16813305857 4, 5, 6, 7, 8 #4 4 1 TEMP2 9 8192 8 2 106346856449 9, 10 #5 5 1 TEMP2_UNDO 1 8192 1 1 108784082945 11 #6 6 1 SYSAUX 1 8192 8 1 110029156353 12 datafiles information: id dfileid used name size block_size flg type auto_extend_size auto_extend_maxsize archive log information: id recid dest_id rst_id asn stamp blocks block_size first last name #0 1 0 0 12 635025690515372 112 512 387183961239553 388346659434497 /opt/gauss/gaussdata/archive_log/arch_0_12.arc

—再次重复前面的步骤进行恢复;并使用strace跟踪

 

[roger@mysqldb gaussdata]$ zengine nomount -D /opt/gauss/gaussdata & [1] 59647 [roger@mysqldb gaussdata]$ starting instance(nomount) instance started [roger@mysqldb gaussdata]$ [roger@mysqldb gaussdata]$ zsql / as sysdba -q connected. SQL> restore database from '/tmp/gaussdb_backup/roger_level0_01.bak'; Succeed. SQL> recover database; Succeed. SQL> alter database open; Succeed. SQL> [roger@mysqldb roger_level1_01.bak]$ strace -fr -F -o /tmp/gauss_recover.log -p 59647 Process 59647 attached with 17 threads Process 61870 attached Process 61871 attached Process 61872 attached Process 61873 attached Process 61874 attached Process 62876 attached Process 62916 attached Process 62915 attached ^CProcess 59647 detached Process 59648 detached Process 59649 detached Process 59650 detached Process 59651 detached Process 59652 detached Process 59653 detached Process 59654 detached Process 59655 detached Process 59658 detached Process 59659 detached Process 59660 detached Process 59661 detached Process 59662 detached Process 59888 detached Process 62876 detached [root@mysqldb tmp]# cat /tmp/gauss_recover.log |grep 'open' 59888 0.000236 open("/tmp/gaussdb_backup/roger_level0_01.bak/backupset", O_RDWR|O_SYNC) = 17 59888 0.000049 open("/opt/gauss/gaussdata/cfg/zengine.ini", O_RDONLY) = 18 59888 0.000062 open("/opt/gauss/gaussdata/cfg/zengine.ini_bak", O_RDWR|O_CREAT|O_TRUNC, 0600) = 19 59888 0.000074 open("/opt/gauss/gaussdata/cfg/zengine.ini_tmp", O_RDWR|O_CREAT|O_TRUNC|O_SYNC, 0600) = 18 59888 0.000044 open("/tmp/gaussdb_backup/roger_level0_01.bak/ctrl_0_0.bak", O_RDWR|O_SYNC) = 17 61870 0.000701 open("/opt/gauss/gaussdata/cfg/zengine.ini", O_RDONLY) = 18 61870 0.000610 open("/opt/gauss/gaussdata/cfg/zengine.ini_bak", O_RDWR|O_CREAT|O_TRUNC, 0600 <unfinished ...> 61870 0.000321 <... open resumed> ) = 19 61870 0.000038 open("/opt/gauss/gaussdata/cfg/zengine.ini_tmp", O_RDWR|O_CREAT|O_TRUNC|O_SYNC, 0600) = 18 61870 0.000046 open("/opt/gauss/gaussdata/data/cntl1", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 18 61870 0.000053 open("/opt/gauss/gaussdata/data/cntl2", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 19 61870 0.000044 open("/opt/gauss/gaussdata/data/cntl3", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 20 61870 0.000453 open("/opt/gauss/gaussdata/system", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 17 61870 0.000174 open("/opt/gauss/gaussdata/temp1_01", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 18 61870 0.000288 open("/opt/gauss/gaussdata/temp1_02", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 19 61870 0.000362 open("/opt/gauss/gaussdata/undo", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 20 61870 0.000314 open("/opt/gauss/gaussdata/user1", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 21 61870 0.000046 open("/opt/gauss/gaussdata/user2", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 22 61870 0.000032 open("/opt/gauss/gaussdata/user3", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 23 61870 0.000039 open("/opt/gauss/gaussdata/user4", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 24 61870 0.000025 open("/opt/gauss/gaussdata/user5", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 25 61870 0.000024 open("/opt/gauss/gaussdata/temp2_01", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 26 61870 0.000025 open("/opt/gauss/gaussdata/temp2_02", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 27 61870 0.000026 open("/opt/gauss/gaussdata/temp2_undo", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 28 61870 0.000044 open("/opt/gauss/gaussdata/sysaux", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 29 59888 0.000007 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_SYSTEM_0_0.bak", O_RDWR|O_SYNC <unfinished ...> 59888 0.000007 <... open resumed> ) = 30 61871 0.005724 open("/opt/gauss/gaussdata/system", O_RDWR|O_SYNC <unfinished ...> 61871 0.000268 <... open resumed> ) = 31 59888 0.000036 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_TEMP_1_0.bak", O_RDWR|O_SYNC) = 32 61872 0.000275 open("/opt/gauss/gaussdata/temp1_01", O_RDWR|O_SYNC <unfinished ...> 61872 0.000046 <... open resumed> ) = 33 59888 0.000058 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_UNDO_3_0.bak", O_RDWR|O_SYNC <unfinished ...> 59888 0.000040 <... open resumed> ) = 32 61872 0.000004 open("/opt/gauss/gaussdata/undo", O_RDWR|O_SYNC <unfinished ...> 61872 0.000705 <... open resumed> ) = 33 59888 0.000051 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_UNDO_3_1.bak", O_RDWR|O_SYNC) = 34 61873 0.001613 open("/opt/gauss/gaussdata/undo", O_RDWR|O_SYNC <unfinished ...> 61873 0.000354 <... open resumed> ) = 35 59888 0.000035 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_USERS_4_0.bak", O_RDWR|O_SYNC <unfinished ...> 59888 0.000053 <... open resumed> ) = 30 59888 0.000033 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_TEMP2_9_0.bak", O_RDWR|O_SYNC) = 31 61871 0.000476 open("/opt/gauss/gaussdata/temp2_01", O_RDWR|O_SYNC) = 36 61874 0.009655 open("/opt/gauss/gaussdata/user1", O_RDWR|O_SYNC <unfinished ...> 61874 0.000268 <... open resumed> ) = 31 59888 0.000045 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_TEMP2_UNDO_11_0.bak", O_RDWR|O_SYNC) = 36 61871 0.000040 open("/opt/gauss/gaussdata/temp2_undo", O_RDWR|O_SYNC) = 37 59888 0.000064 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_SYSAUX_12_0.bak", O_RDWR|O_SYNC) = 36 61871 0.007274 open("/opt/gauss/gaussdata/sysaux", O_RDWR|O_SYNC <unfinished ...> 61871 0.000811 <... open resumed> ) = 37 61870 0.000046 open("/opt/gauss/gaussdata/log1", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 30 61870 0.000052 open("/opt/gauss/gaussdata/log2", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 30 61870 0.000030 open("/opt/gauss/gaussdata/log3", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 30 61870 0.000024 open("/opt/gauss/gaussdata/log4", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 30 61870 0.000046 open("/opt/gauss/gaussdata/log5", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 30 61870 0.000025 open("/opt/gauss/gaussdata/log6", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 30 59888 0.000006 open("/tmp/gaussdb_backup/roger_level0_01.bak/arch_12_0.bak", O_RDWR|O_SYNC <unfinished ...> 59888 0.000008 <... open resumed> ) = 30 61871 0.000037 open("/opt/gauss/gaussdata/archive_log/arch_0_12.arc", O_RDWR|O_CREAT|O_EXCL|O_TRUNC|O_SYNC, 0600) = 31 61871 0.000036 open("/opt/gauss/gaussdata/data/cntl1", O_RDWR|O_SYNC) = 32 61871 0.000143 open("/opt/gauss/gaussdata/data/cntl2", O_RDWR|O_SYNC) = 33 61871 0.000024 open("/opt/gauss/gaussdata/data/cntl3", O_RDWR|O_SYNC) = 34 61871 0.000007 open("/opt/gauss/gaussdata/system", O_RDWR|O_SYNC) = 30 61872 0.000008 open("/opt/gauss/gaussdata/temp1_01", O_RDWR|O_SYNC) = 31 61873 0.000023 open("/opt/gauss/gaussdata/temp1_02", O_RDWR|O_SYNC <unfinished ...> 61873 0.015932 <... open resumed> ) = 35 61874 0.000069 open("/opt/gauss/gaussdata/undo", O_RDWR|O_SYNC) = 36 61872 0.000145 open("/opt/gauss/gaussdata/user1", O_RDWR|O_SYNC <unfinished ...> 61872 0.000746 <... open resumed> ) = 31 61873 0.000295 open("/opt/gauss/gaussdata/user2", O_RDWR|O_SYNC <unfinished ...> 61873 0.000058 <... open resumed> ) = 35 61871 0.000154 open("/opt/gauss/gaussdata/user3", O_RDWR|O_SYNC <unfinished ...> 61871 0.000042 <... open resumed> ) = 30 61874 0.000047 open("/opt/gauss/gaussdata/user4", O_RDWR|O_SYNC) = 36 61872 0.000066 open("/opt/gauss/gaussdata/user5", O_RDWR|O_SYNC) = 31 61872 0.000082 open("/opt/gauss/gaussdata/temp2_01", O_RDWR|O_SYNC <unfinished ...> 61872 0.000040 <... open resumed> ) = 31 61873 0.000123 open("/opt/gauss/gaussdata/temp2_02", O_RDWR|O_SYNC <unfinished ...> 61871 0.000084 open("/opt/gauss/gaussdata/temp2_undo", O_RDWR|O_SYNC <unfinished ...> 61873 0.001027 <... open resumed> ) = 30 61871 0.000030 <... open resumed> ) = 35 61872 0.000126 open("/opt/gauss/gaussdata/sysaux", O_RDWR|O_SYNC <unfinished ...> 61872 0.000046 <... open resumed> ) = 31 61871 0.000003 open("/opt/gauss/gaussdata/log1", O_RDWR|O_SYNC) = 30 61872 0.000004 open("/opt/gauss/gaussdata/log2", O_RDWR|O_SYNC <unfinished ...> 61872 0.000036 <... open resumed> ) = 31 61873 0.000031 open("/opt/gauss/gaussdata/log3", O_RDWR|O_SYNC <unfinished ...> 61873 0.000079 <... open resumed> ) = 35 61874 0.000051 open("/opt/gauss/gaussdata/log4", O_RDWR|O_SYNC <unfinished ...> 61874 0.000038 <... open resumed> ) = 36 61874 0.000169 open("/opt/gauss/gaussdata/log5", O_RDWR|O_SYNC <unfinished ...> 61871 0.000025 open("/opt/gauss/gaussdata/log6", O_RDWR|O_SYNC <unfinished ...> 61874 0.000098 <... open resumed> ) = 36 61871 0.000010 <... open resumed> ) = 30 61870 0.000129 open("/opt/gauss/gaussdata/log1", O_RDWR|O_SYNC) = 30 59888 0.000075 open("/opt/gauss/gaussdata/data/cntl1", O_RDONLY) = 17 59888 0.000047 open("/opt/gauss/gaussdata/data/cntl1", O_RDWR|O_SYNC <unfinished ...> 59888 0.000026 <... open resumed> ) = 17 59888 0.002681 open("/opt/gauss/gaussdata/data/cntl2", O_RDWR|O_SYNC <unfinished ...> 59888 0.000420 <... open resumed> ) = 17 59888 0.000415 open("/opt/gauss/gaussdata/data/cntl3", O_RDWR|O_SYNC) = 17 59888 0.000441 open("/opt/gauss/gaussdata/data/cntl2", O_RDWR|O_SYNC <unfinished ...> 59888 0.000207 <... open resumed> ) = 17 59888 0.000470 open("/opt/gauss/gaussdata/data/cntl3", O_RDWR|O_SYNC <unfinished ...> 59888 0.000189 <... open resumed> ) = 17 59888 0.000445 open("/opt/gauss/gaussdata/log1", O_RDWR|O_SYNC <unfinished ...> 59888 0.000224 <... open resumed> ) = 17 59888 0.000235 open("/opt/gauss/gaussdata/log2", O_RDWR|O_SYNC) = 18 59888 0.000430 open("/opt/gauss/gaussdata/log3", O_RDWR|O_SYNC) = 19 59888 0.000428 open("/opt/gauss/gaussdata/log4", O_RDWR|O_SYNC) = 20 59888 0.000466 open("/opt/gauss/gaussdata/log5", O_RDWR|O_SYNC) = 21 59888 0.000232 open("/opt/gauss/gaussdata/log6", O_RDWR|O_SYNC) = 22 59888 0.000046 open("/opt/gauss/gaussdata/system", O_RDWR|O_SYNC) = 23 59888 0.000370 open("/opt/gauss/gaussdata/data/cntl1", O_RDWR|O_SYNC) = 24 59888 0.000818 open("/opt/gauss/gaussdata/data/cntl2", O_RDWR|O_SYNC) = 25 59888 0.000243 open("/opt/gauss/gaussdata/data/cntl3", O_RDWR|O_SYNC) = 26 59888 0.000407 open("/opt/gauss/gaussdata/temp1_01", O_RDWR) = 27 59888 0.000036 open("/opt/gauss/gaussdata/temp1_02", O_RDWR) = 28 59888 0.001069 open("/opt/gauss/gaussdata/undo", O_RDWR|O_SYNC) = 29 59888 0.000492 open("/opt/gauss/gaussdata/user1", O_RDWR|O_SYNC) = 30 59888 0.000604 open("/opt/gauss/gaussdata/user2", O_RDWR|O_SYNC) = 31 59888 0.001332 open("/opt/gauss/gaussdata/user3", O_RDWR|O_SYNC <unfinished ...> 59888 0.000041 <... open resumed> ) = 32 59888 0.000023 open("/opt/gauss/gaussdata/user4", O_RDWR|O_SYNC) = 33 59888 0.000036 open("/opt/gauss/gaussdata/user5", O_RDWR|O_SYNC) = 34 59888 0.000433 open("/opt/gauss/gaussdata/temp2_01", O_RDWR|O_SYNC) = 35 59888 0.000240 open("/opt/gauss/gaussdata/temp2_02", O_RDWR|O_SYNC) = 36 59888 0.000039 open("/opt/gauss/gaussdata/temp2_undo", O_RDWR|O_SYNC) = 37 59888 0.000532 open("/opt/gauss/gaussdata/sysaux", O_RDWR|O_SYNC <unfinished ...> 59888 0.000027 <... open resumed> ) = 38 59888 0.000035 open("/opt/gauss/gaussdata/archive_log/arch_0_12.arc", O_RDWR|O_SYNC <unfinished ...> 59888 0.000022 <... open resumed> ) = 39 59888 0.000027 open("/opt/gauss/gaussdata/log1", O_RDWR|O_SYNC) = 40 59888 0.000351 open("/opt/gauss/gaussdata/log1", O_RDWR|O_SYNC) = 39 59888 0.000062 recvfrom(15, "\0\0\1\0\0\0\0\0\23\0\0\0alter database openo", 32, 0, NULL, NULL) = 32 59888 0.000294 open("/opt/gauss/gaussdata/archive_log/arch_0_12.arc", O_RDWR|O_SYNC) = 39 59888 0.000026 open("/opt/gauss/gaussdata/log1", O_RDWR|O_SYNC) = 40 59653 0.000017 open("/opt/gauss/gaussdata/system", O_RDWR|O_SYNC <unfinished ...> 59653 0.000009 <... open resumed> ) = 39 59662 0.000143 open("/opt/gauss/gaussdata/system", O_RDWR|O_SYNC) = 40 62916 0.000106 open("/opt/gauss/gaussdata/system", O_RDWR|O_SYNC <unfinished ...> 62916 0.000294 <... open resumed> ) = 41 62916 0.002062 open("/opt/gauss/gaussdata/undo", O_RDWR|O_SYNC <unfinished ...> 62915 0.000409 open("/opt/gauss/gaussdata/undo", O_RDWR|O_SYNC) = 42 62916 0.000762 <... open resumed> ) = 43 62915 0.000365 open("/opt/gauss/gaussdata/system", O_RDWR|O_SYNC) = 44 62915 0.000053 open("/opt/gauss/gaussdata/sysaux", O_RDWR|O_SYNC) = 45 62916 0.000694 open("/opt/gauss/gaussdata/sysaux", O_RDWR|O_SYNC <unfinished ...> 62916 0.000835 <... open resumed> ) = 46 62916 0.000038 open("/sys/devices/system/cpu/cpu0/topology/thread_siblings", O_RDONLY) = 47 62916 0.000040 open("/sys/devices/system/cpu/cpu0/topology/core_siblings", O_RDONLY) = 47 62916 0.000033 open("/proc/stat", O_RDONLY) = 47 62916 0.000109 open("/proc/vmstat", O_RDONLY) = 47 62916 0.000028 open("/proc/meminfo", O_RDONLY) = 47 62916 0.000035 open("/proc/loadavg", O_RDONLY) = 47 62916 0.009910 openat(AT_FDCWD, "/opt/gauss/gaussdata/log/longsql", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC <unfinished ...> 62916 0.000243 <... openat resumed> ) = -1 ENOENT (No such file or directory) [root@mysqldb tmp]# [root@mysqldb tmp]# [root@mysqldb tmp]# cat /tmp/gauss_recover.log |grep 'roger_level1_01'

我们发现这里根本没有去读过增量备份集。这是为什么呢 ? 那么只有一种解释;从日志来看。

gaussdb这里默认从0级别备份中去恢复了控制文件;而该控制文件肯定没有注册最新的增量信息,因此导致后面的增量无法应用。

由此可见应该是gaussdb在restore时默认是使用0级备份去进行恢复数据文件和控制文件;而不会寻找最新的控制文件备份。
测试了几次,strace跟踪发现根本就不会读最新的备份集合;应该是控制文件惹的祸。 0级备份的控制文件中信息是比较旧的。按理说不该应该出现这种情况,可能是测试不对。改天再测一下。

备注:

若数据库可以恢复到CONSISTENT POINT,则可以保证数据一致性,ALTER DATABASE OPEN RESETLOGS可成功执行;
否则,数据库已经不能保证数据一致性了,此时只能ALTER DATABASE OPEN FORCE IGNORE LOGS强行启动。

+++++ ==那么正确的恢复方法应该是什么呢 ? ==+++++++++++++

[roger@mysqldb gaussdata]$ rm -rf user*
[roger@mysqldb gaussdata]$ rm -rf temp*
[roger@mysqldb gaussdata]$ rm -rf sys*
[roger@mysqldb gaussdata]$ rm -rf undo*
[roger@mysqldb gaussdata]$ rm -rf log1 log2 log3 log4 log5 log6
[roger@mysqldb gaussdata]$ rm -rf data/cntl*
[roger@mysqldb gaussdata]$ rm -rf archive_log/*

 rm -rf /gdb/gaussdb/data/data/*                
 rm -rf /gdb/gaussdb/data/archive_log/*                


[roger@mysqldb gaussdata]$ ls -ltr
total 4
drwx------ 2 roger roger 42 Feb 13 16:23 dbs
-rw------- 1 roger roger 0 Feb 13 16:23 zengine.lck
drwx------ 2 roger roger 4096 Feb 13 21:50 trc
drwx------ 5 roger roger 64 Feb 14 18:58 log
drwx------ 2 roger roger 62 Feb 15 11:11 cfg
drwx------ 2 roger roger 85 Feb 15 20:10 protect
drwx------ 2 roger roger 6 Feb 16 13:23 data
drwx------ 2 roger roger 6 Feb 16 13:23 archive_log

–restore(直接指定增量备份备份集;而不是指定全备的备份集)
[roger@mysqldb gaussdata]$ zengine nomount -D /opt/gauss/gaussdata &
[1] 127251
[roger@mysqldb gaussdata]$ starting instance(nomount)
instance started

[roger@mysqldb gaussdata]$
[roger@mysqldb gaussdata]$ zsql / as sysdba -q

connected.

SQL> restore database from ‘/tmp/gaussdb_backup/roger_level1_01.bak’;

Succeed.

SQL> recover database;

Succeed.

SQL> alter database open;

Succeed.

SQL> select * from roger.test;

A B


1 www.enmotech.com
1 www.killdb.com
100 www.modb.pro

3 rows fetched.

可以看到可以恢复出最新的数据。我们可以看到restore时直接使用增量备集时可以恢复到最新时间点的数据的。

那么这种情况下,gaussdb会自动去从0级全备中先恢复文件;然后再应用增量吗 ?我们先来看下此时的日志:
UTC+8 2020-02-16 13:28:53.494|ZENGINE|00000|127251|INFO>instance started
UTC+8 2020-02-16 13:28:53.496|ZENGINE|00000|127266|INFO>job master thread started [srv_job.c:638]
UTC+8 2020-02-16 13:29:50.222|ZENGINE|00000|128028|INFO>agent thread started, tid:139651462735616, close:0 [srv_agent.c:359]
UTC+8 2020-02-16 13:29:50.222|ZENGINE|00053|128028|INFO>[LOG] file ‘/opt/gauss/gaussdata/log/audit/zengine.aud’ is added [cm_log.c:641]
UTC+8 2020-02-16 13:29:56.323|ZENGINE|00053|128028|INFO>[BACKUP] restore start, device:0, policy:, paral count 4, path:/tmp/gaussdb_backup/roger_level1_01.bak [knl_restore.c:1947]
UTC+8 2020-02-16 13:29:56.323|ZENGINE|00053|128028|INFO>[ARCH] Initialization complete [knl_archive.c:824]
UTC+8 2020-02-16 13:29:56.331|ZENGINE|00000|128107|INFO>[BACKUP] parallel process 1 start [knl_bak_paral.c:996]
UTC+8 2020-02-16 13:29:56.331|ZENGINE|00000|128108|INFO>[BACKUP] parallel process 2 start [knl_bak_paral.c:996]
UTC+8 2020-02-16 13:29:56.333|ZENGINE|00000|128109|INFO>[BACKUP] parallel process 3 start [knl_bak_paral.c:996]
UTC+8 2020-02-16 13:29:56.333|ZENGINE|00000|128110|INFO>[BACKUP] parallel process 4 start [knl_bak_paral.c:996]
UTC+8 2020-02-16 13:29:56.409|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_0_0, recent filesize 0K, section [0K, 16528K], bakcup id 1 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:56.509|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_1_0, recent filesize 0K, section [0K, 16K], bakcup id 2 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:56.566|ZENGINE|00000|139650861757547|INFO>[RESTORE] fill datafile tail, start 16472K, end 16528K, backup id 1 [knl_bak_paral.c:763]
UTC+8 2020-02-16 13:29:56.609|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_3_0, recent filesize 0K, section [0K, 393216K], bakcup id 3 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:56.611|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_3_1, recent filesize 0K, section [393216K, 531920K], bakcup id 4 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:56.830|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_4_0, recent filesize 0K, section [0K, 204240K], bakcup id 5 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:57.155|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_9_0, recent filesize 0K, section [0K, 16K], bakcup id 6 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:57.472|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_11_0, recent filesize 0K, section [0K, 16K], bakcup id 7 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:57.803|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_12_0, recent filesize 0K, section [0K, 89648K], bakcup id 8 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:58.836|ZENGINE|00000|139650861757549|INFO>[RESTORE] fill datafile tail, start 204192K, end 204240K, backup id 5 [knl_bak_paral.c:763]
UTC+8 2020-02-16 13:29:59.549|ZENGINE|00000|128106|INFO>[RESTORE] restore datafiles finished [knl_restore.c:949]
UTC+8 2020-02-16 13:29:59.635|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_0_0, recent filesize 16528K, section [0K, 16528K], bakcup id 1 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:59.736|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_1_0, recent filesize 16K, section [0K, 16K], bakcup id 2 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:59.736|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_3_0, recent filesize 531920K, section [0K, 393216K], bakcup id 3 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:59.837|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_3_1, recent filesize 531920K, section [393216K, 531920K], bakcup id 4 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:59.837|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_4_0, recent filesize 204240K, section [0K, 204240K], bakcup id 5 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:59.938|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_9_0, recent filesize 16K, section [0K, 16K], bakcup id 6 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:29:59.938|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_11_0, recent filesize 16K, section [0K, 16K], bakcup id 7 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:30:00.039|ZENGINE|00053|94592359855132|INFO>[RESTORE] restore data_12_0, recent filesize 89648K, section [0K, 90032K], bakcup id 8 [knl_bak_paral.c:374]
UTC+8 2020-02-16 13:30:00.062|ZENGINE|00000|139650861757548|INFO>[RESTORE] fill datafile tail, start 89984K, end 90032K, backup id 8 [knl_bak_paral.c:763]
UTC+8 2020-02-16 13:30:00.140|ZENGINE|00000|128106|INFO>[RESTORE] restore datafiles finished [knl_restore.c:949]
UTC+8 2020-02-16 13:30:00.146|ZENGINE|00000|128106|INFO>[BACKUP] create logfiles completed [knl_restore.c:565]
UTC+8 2020-02-16 13:30:00.157|ZENGINE|00000|139650861757547|INFO>[RESTORE] start restore arch_13_0, backup id 9, log name /tmp/gaussdb_backup/roger_level1_01.bak/arch_13_0.bak [knl_bak_paral.c:673]
UTC+8 2020-02-16 13:30:00.160|ZENGINE|00000|139650861757547|INFO>[BACKUP] Create /opt/gauss/gaussdata/archive_log/arch_0_13.arc [knl_restore.c:362]
UTC+8 2020-02-16 13:30:00.172|ZENGINE|00000|139650861757547|INFO>[ARCH] Record archive log file /opt/gauss/gaussdata/archive_log/arch_0_13.arc for log [0-13] start 0 end 1 [knl_archive.c:284]
UTC+8 2020-02-16 13:30:00.250|ZENGINE|00000|128106|INFO>[RESTORE] restore logfiles finished, current backupset /tmp/gaussdb_backup/roger_level1_01.bak [knl_restore.c:964]
UTC+8 2020-02-16 13:30:25.853|ZENGINE|00000|128107|INFO>[BACKUP] parallel process 1 stop [knl_bak_paral.c:1022]
UTC+8 2020-02-16 13:30:25.855|ZENGINE|00000|128108|INFO>[BACKUP] parallel process 2 stop [knl_bak_paral.c:1022]
UTC+8 2020-02-16 13:30:25.864|ZENGINE|00000|128109|INFO>[BACKUP] parallel process 3 stop [knl_bak_paral.c:1022]
UTC+8 2020-02-16 13:30:25.875|ZENGINE|00000|128110|INFO>[BACKUP] parallel process 4 stop [knl_bak_paral.c:1022]
UTC+8 2020-02-16 13:30:25.877|ZENGINE|00053|4995142158903276572|INFO>[BACKUP] restore success [knl_bak_common.c:1762]
UTC+8 2020-02-16 13:30:43.488|ZENGINE|00053|206158558236|INFO>start to alter database MOUNT [knl_database.c:1047]
UTC+8 2020-02-16 13:30:43.522|ZENGINE|00053|128028|INFO>[ARCH] Already initialized [knl_archive.c:803]
UTC+8 2020-02-16 13:30:43.524|ZENGINE|00053|128028|INFO>sucessfully alter database MOUNT [knl_database.c:1103]
UTC+8 2020-02-16 13:30:43.557|ZENGINE|00053|128028|INFO>database start recovery [knl_recovery.c:1457]
UTC+8 2020-02-16 13:30:43.557|ZENGINE|00053|128028|INFO>recovery from file:13,point:750,lfn:27247 [knl_recovery.c:1459]
UTC+8 2020-02-16 13:30:43.557|ZENGINE|00053|128028|INFO>recovery expected least end with file:13,point:750,lfn:27247 [knl_recovery.c:1461]
UTC+8 2020-02-16 13:30:43.593|ZENGINE|00053|139650861757468|INFO>[RCY] recovery real end with file:14,point:1,lfn:27247 [knl_recovery.c:1423]
UTC+8 2020-02-16 13:30:43.595|ZENGINE|00053|139650861757468|INFO>[RCY] current lfn 27247, rcy point lfn 27247, consistent point 27247, lrp point lfn 27247 [knl_recovery.c:1425]
UTC+8 2020-02-16 13:31:40.820|ZENGINE|00053|206158558236|INFO>start to alter database OPEN [knl_database.c:1322]
UTC+8 2020-02-16 13:31:40.944|ZENGINE|00053|139650861757468|INFO>[ARCH] Start ARCH thread for ARCHIVE_DEST_1[/opt/gauss/gaussdata/archive_log] [knl_archive.c:881]
UTC+8 2020-02-16 13:31:40.946|ZENGINE|00053|2581544450367026204|INFO>The last shutdown is inconsistent [knl_database.c:1379]
UTC+8 2020-02-16 13:31:40.946|ZENGINE|00053|128028|INFO>database start recovery [knl_recovery.c:1457]
UTC+8 2020-02-16 13:31:40.946|ZENGINE|00053|128028|INFO>recovery from file:13,point:750,lfn:27247 [knl_recovery.c:1459]
UTC+8 2020-02-16 13:31:40.946|ZENGINE|00053|128028|INFO>recovery expected least end with file:13,point:750,lfn:27247 [knl_recovery.c:1461]
UTC+8 2020-02-16 13:31:40.957|ZENGINE|00053|139650861757468|INFO>[RCY] recovery real end with file:14,point:1,lfn:27247 [knl_recovery.c:1423]
UTC+8 2020-02-16 13:31:40.957|ZENGINE|00053|139650861757468|INFO>[RCY] current lfn 27247, rcy point lfn 27247, consistent point 27247, lrp point lfn 27247 [knl_recovery.c:1425]
UTC+8 2020-02-16 13:31:41.061|ZENGINE|00053|139650861757468|INFO>no valid standby configuration [knl_lns.c:1727]
UTC+8 2020-02-16 13:31:41.066|ZENGINE|00053|128028|INFO>[DB] sse42 available 1 [knl_database.c:1440]
UTC+8 2020-02-16 13:31:41.066|ZENGINE|00053|128028|INFO>sucessfully alter database OPEN [knl_database.c:1441]
UTC+8 2020-02-16 13:31:41.125|ZENGINE|00000|127260|INFO>rollback thread closed [knl_tran.c:1203]
UTC+8 2020-02-16 13:31:41.125|ZENGINE|00000|127261|INFO>rollback thread closed [knl_tran.c:1203]
UTC+8 2020-02-16 13:31:41.653|ZENGINE|00054|129476|INFO>load index parts: load index parts, uid: 0, tid: 278, iid: 0, index partcnt: 4032 [knl_dc_part.c:993]
UTC+8 2020-02-16 13:31:41.658|ZENGINE|00054|129476|INFO>load index parts: load index parts, uid: 0, tid: 302, iid: 0, index partcnt: 4032 [knl_dc_part.c:993]

可以看到日志中并没有记录有过去访问0级备份的信息。还好我再restore时开启了strace跟踪;下面看trace log:

[root@mysqldb bin]# strace -fr -F -o /tmp/strace_rec.log -p 127251
Process 127251 attached with 16 threads
Process 128028 attached
Process 128106 attached
Process 128107 attached
Process 128108 attached
Process 128109 attached
Process 128110 attached
Process 129475 attached
Process 129476 attached
Process 129477 attached
Process 129478 attached
Process 129479 attached
^CProcess 127251 detached
Process 127252 detached
Process 127253 detached
Process 127254 detached
Process 127255 detached
Process 127256 detached
Process 127257 detached
Process 127258 detached
Process 127259 detached
Process 127262 detached
Process 127263 detached
Process 127264 detached
Process 127265 detached
Process 127266 detached
Process 128028 detached
Process 129475 detached

[root@mysqldb tmp]# cat strace_rec.log |grep ‘roger_level0’
128028 0.000045 open("/tmp/gaussdb_backup/roger_level0_01.bak/backupset", O_RDWR|O_SYNC <unfinished …>
128028 0.000023 open("/tmp/gaussdb_backup/roger_level0_01.bak/ctrl_0_0.bak", O_RDWR|O_SYNC) = 17
128028 0.000004 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_SYSTEM_0_0.bak", O_RDWR|O_SYNC) = 30
128028 0.000018 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_TEMP_1_0.bak", O_RDWR|O_SYNC) = 32
128028 0.000021 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_UNDO_3_0.bak", O_RDWR|O_SYNC) = 30
128028 0.000029 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_UNDO_3_1.bak", O_RDWR|O_SYNC <unfinished …>
128028 0.000005 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_USERS_4_0.bak", O_RDWR|O_SYNC <unfinished …>
128028 0.000005 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_TEMP2_9_0.bak", O_RDWR|O_SYNC <unfinished …>
128028 0.000007 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_TEMP2_UNDO_11_0.bak", O_RDWR|O_SYNC) = 36
128028 0.000004 open("/tmp/gaussdb_backup/roger_level0_01.bak/data_SYSAUX_12_0.bak", O_RDWR|O_SYNC <unfinished …>
[root@mysqldb tmp]#

不难看出;确实会去寻找0级备份;然后再应用增量。这也验证了前面的分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值