注册
日常基于归档的增量恢复测试
技术分享/ 文章详情 /

日常基于归档的增量恢复测试

奥特曼打小怪兽 2024/09/06 547 0 0

1测试需求

日常工作大多数情况就是
1.全库备份 将db1库中的数据恢复到db2中
2.全库备份+添加测试数据+增量备份
3.全库备份+增量备份+添加测试数据

2测试1:

全库备份 将db1库中的数据恢复到db2中

2.1初始化源数据库名字叫db1

[dmdba@localhost dmdata]$ /dmdbms/bin/dminit PATH=/dmdata DB_NAME=db1 PORT_NUM=15236 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-07-03
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /dmdata/db1/db101.log


 log file path: /dmdata/db1/db102.log

write to dir [/dmdata/db1].
create dm database success. 2024-09-01 19:04:16

2.2初始化目标库名字叫db2

[dmdba@localhost dmdata]$ /dmdbms/bin/dminit PATH=/dmdata DB_NAME=db2 PORT_NUM=15236 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-07-03
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /dmdata/db2/db201.log


 log file path: /dmdata/db2/db202.log

write to dir [/dmdata/db2].
create dm database success. 2024-09-01 19:04:24

2.3开启源库和目标库的归档

源库
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmarch/db1, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;

目标库
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmarch/db2, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;

2.4源库创建测试数据并全备

SQL> create table test1 as select * from dba_tables;
操作已执行
已用时间: 52.276(毫秒). 执行号:64701.
SQL> backup database full to "DB_FULL1" backupset '/dmbak/bakdb1/DB_FULL1';
操作已执行
已用时间: 00:00:03.191. 执行号:64702.7

2.5恢复数据到目标库

[dmdba@localhost bin]$ ./dmrman
dmrman V8
RMAN> RESTORE DATABASE '/dmdata/db2/dm.ini' REUSE DMINI FROM BACKUPSET '/dmbak/bakdb1/DB_FULL1' rename to 'db2';
RESTORE DATABASE '/dmdata/db2/dm.ini' REUSE DMINI FROM BACKUPSET '/dmbak/bakdb1/DB_FULL1' rename to 'db2';
file dm.key not found, use default license!
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
restore successfully.
time used: 00:00:02.486
RMAN> RECOVER DATABASE '/dmdata/db2/dm.ini' FROM BACKUPSET '/dmbak/bakdb1/DB_FULL1';
RECOVER DATABASE '/dmdata/db2/dm.ini' FROM BACKUPSET '/dmbak/bakdb1/DB_FULL1';
[Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]
recover successfully!
time used: 00:00:02.462
RMAN> RECOVER DATABASE '/dmdata/db2/dm.ini' UPDATE DB_MAGIC;
RECOVER DATABASE '/dmdata/db2/dm.ini' UPDATE DB_MAGIC;
recover successfully!
time used: 00:00:01.085
RMAN>

2.6检查结果

SQL> select count(*) from test1
2   ;

行号     COUNT(*)
---------- --------------------
1          90

已用时间: 1.009(毫秒). 执行号:602.
SQL> select * from v$database;

行号     NAME CREATE_TIME         ARCH_MODE LAST_CKPT_TIME STATUS$     ROLE$       MAX_SIZE             TOTAL_SIZE           DSC_NODES   OPEN_COUNT
---------- ---- ------------------- --------- -------------- ----------- ----------- -------------------- -------------------- ----------- -----------
           STARTUP_COUNT        LAST_STARTUP_TIME
           -------------------- -------------------
1          db2  2024-09-01 19:29:46 Y         NULL           4           0           0                    13248                1           3
           1                    2024-09-01 19:30:11


已用时间: 1.167(毫秒). 执行号:603.
SQL>

3测试二

全库备份+添加测试数据+增量备份
看是否能恢复数据

3.1初始化源数据库db1

[dmdba@localhost dmdata]$ /dmdbms/bin/dminit PATH=/dmdata DB_NAME=db1 PORT_NUM=5236 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-07-03
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /dmdata/db1/db101.log


 log file path: /dmdata/db1/db102.log

write to dir [/dmdata/db1].
create dm database success. 2024-09-01 19:44:20
## 3.2初始化目标库db2
[dmdba@localhost dmdata]$ /dmdbms/bin/dminit PATH=/dmdata DB_NAME=db2 PORT_NUM=5236 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-07-03
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /dmdata/db2/db201.log


 log file path: /dmdata/db2/db202.log

write to dir [/dmdata/db2].
create dm database success. 2024-09-01 19:44:24
[dmdba@localhost dmdata]$

3.3开启源库归档日志

源库
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmarch/db1, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;

目标库
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmarch/db2, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;

3.4创建全库备份

SQL> backup database full to "DB_FULL1" backupset '/dmbak/bakdb1/DB_FULL1';
操作已执行
已用时间: 00:00:03.032. 执行号:64701.

3.5创建测试数据

SQL> create table test1 as select * from dba_tables;
操作已执行
已用时间: 45.842(毫秒). 执行号:64702.

3.6创建增量数据

SQL> BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dmbak/bakdb1/DB_FULL1' BACKUPSET '/dmbak/bakdb1/db_increment_bak';
操作已执行
已用时间: 00:00:06.705. 执行号:64703.
SQL>

3.7恢复数据

RMAN> restore database '/dmdata/db2/dm.ini' from backupset '/dmbak/bakdb1/db_increment_bak' with backupdir '/dmbak/bakdb1/DB_FULL1';
restore database '/dmdata/db2/dm.ini' from backupset '/dmbak/bakdb1/db_increment_bak' with backupdir '/dmbak/bakdb1/DB_FULL1';
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
restore successfully.
time used: 00:00:02.528
RMAN> recover database '/dmdata/db2/dm.ini' from backupset '/dmbak/bakdb1/db_increment_bak';
recover database '/dmdata/db2/dm.ini' from backupset '/dmbak/bakdb1/db_increment_bak';
[Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]
recover successfully!
time used: 00:00:02.467
RMAN> recover database '/dmdata/db2/dm.ini' update db_magic;
recover database '/dmdata/db2/dm.ini' update db_magic;
recover successfully!
time used: 00:00:01.053

3.8结果验证

SQL> select count(*) from test1;

行号     COUNT(*)
---------- --------------------
1          90

已用时间: 1.112(毫秒). 执行号:601.
SQL> select * from v$databases;
select * from v$databases;
第1 行附近出现错误[-2106]:无效的表或视图名[V$DATABASES].
已用时间: 0.499(毫秒). 执行号:0.
SQL> select * from v$database;

行号     NAME CREATE_TIME         ARCH_MODE LAST_CKPT_TIME STATUS$     ROLE$       MAX_SIZE             TOTAL_SIZE           DSC_NODES   OPEN_COUNT
---------- ---- ------------------- --------- -------------- ----------- ----------- -------------------- -------------------- ----------- -----------
           STARTUP_COUNT        LAST_STARTUP_TIME
           -------------------- -------------------
1          db1  2024-09-01 20:19:26 Y         NULL           4           0           0                    13248                1           3
           1                    2024-09-01 20:19:52


已用时间: 1.046(毫秒). 执行号:602.
SQL>

4测试三

全库备份+增量备份+添加测试数据
看是否能恢复测试数据

4.1初始化源数据库db1

[dmdba@localhost dmdata]$ /dmdbms/bin/dminit PATH=/dmdata DB_NAME=db1 PORT_NUM=5236 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-07-03
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /dmdata/db1/db101.log


 log file path: /dmdata/db1/db102.log

write to dir [/dmdata/db1].
create dm database success. 2024-09-01 20:33:45

4.2初始化目标库db2

[dmdba@localhost dmdata]$ /dmdbms/bin/dminit PATH=/dmdata DB_NAME=db2 PORT_NUM=5236 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-07-03
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /dmdata/db2/db201.log


 log file path: /dmdata/db2/db202.log

write to dir [/dmdata/db2].
create dm database success. 2024-09-01 20:33:51

4.3开启源库归档日志

源库
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmarch/db1, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;

目标库
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmarch/db2, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;

4.4创建全库备份

backup database full to "DB_FULL1" backupset '/dmbak/bakdb1/DB_FULL1';

4.5创建测试数据1

SQL> create table test1 as select * from dba_tables;
操作已执行
已用时间: 52.046(毫秒). 执行号:602.
SQL>

4.6创建增量备份

SQL> BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dmbak/bakdb1/DB_FULL1' BACKUPSET '/dmbak/bakdb1/db_increment_bak';
操作已执行
已用时间: 00:00:07.551. 执行号:603.
SQL>

4.7创建测试数据2

SQL>  create table test2 as select * from dba_tables;
操作已执行
已用时间: 42.264(毫秒). 执行号:604.
SQL>

4.8恢复数据2

因为测试的两个库都在同一个机器上所以没有拷贝归档到目标主机的步骤
RMAN> restore database '/dmdata/db2/dm.ini' from backupset '/dmbak/bakdb1/db_increment_bak' with backupdir '/dmbak/bakdb1/DB_FULL1';
restore database '/dmdata/db2/dm.ini' from backupset '/dmbak/bakdb1/db_increment_bak' with backupdir '/dmbak/bakdb1/DB_FULL1';
file dm.key not found, use default license!
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
restore successfully.
time used: 00:00:02.670
RMAN> RECOVER DATABASE '/dmdata/db2/dm.ini' WITH ARCHIVEDIR '/dmarch/db1';
RECOVER DATABASE '/dmdata/db2/dm.ini' WITH ARCHIVEDIR '/dmarch/db1';
[Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]
recover successfully!
time used: 448.247(ms)
RMAN> recover database '/dmdata/db2/dm.ini' update db_magic;
recover database '/dmdata/db2/dm.ini' update db_magic;
recover successfully!
time used: 00:00:01.062

4.9结果验证


SQL> select count(*) from test1;

行号     COUNT(*)
---------- --------------------
1          90

已用时间: 2.124(毫秒). 执行号:601.
SQL> select count(*) from test2;

行号     COUNT(*)
---------- --------------------
1          91

已用时间: 1.310(毫秒). 执行号:602.
SQL> select * from v$database;

行号     NAME CREATE_TIME         ARCH_MODE LAST_CKPT_TIME STATUS$     ROLE$       MAX_SIZE             TOTAL_SIZE           DSC_NODES   OPEN_COUNT
---------- ---- ------------------- --------- -------------- ----------- ----------- -------------------- -------------------- ----------- -----------
           STARTUP_COUNT        LAST_STARTUP_TIME
           -------------------- -------------------
1          db1  2024-09-01 22:25:25 Y         NULL           4           0           0                    13248                1           4
           1                    2024-09-01 22:26:39


已用时间: 1.542(毫秒). 执行号:603.
SQL>

符合预期 这次恢复没有指定rename 所以名字还是原库的

https://eco.dameng.com/

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服