因业务测试需要恢复上周2的备份,我们停库通过dmrman工具进行数据库的恢复,记录下整个过程:
1、查看dmrman的备份片信息
#####show backupset 查看备份片的备份信息
RMAN> show backupset '/dm8/bak/disql_inc_0902';
show backupset '/dm8/bak/disql_inc_0902';
<backupset [DEVICE TYPE:DISK, BACKUP_PATH: /dm8/bak/disql_inc_0902] info start ..........>
<DB INFO>
system path: /dm8/dmdbms/data/DAMENG
pmnt_magic: 66103018
src_db_magic: 1668977152
db_magic: 1668977152
dsc node: 1
sys mode: 0
page check: 0
rlog encrypt: 0
external cipher[id/name]: 0/
external hash[id/name]: 0/
length in char: 0
use new hash: 1
page size: 8KB
extent size: 16
case sensitive: 1
log page size: 512B
unicode_flag/charset: 0
data version: 0x7000C
sys version: V8
enable policy: 0
archive flag: 1
blank_pad_mode: 0
crc_check: TRUE
page_enc_slice_size: 4096
<META INFO>
backupset sig: BA
backupset version: 0x400A
database name: DAMENG
backup name: DB_INCREMENT_20210902_123757_787093
backupset description:
n_magic: 0xC3F4B30
parent n_magic: 0xFFFFFFFF
meta file size : 82432
compressed level: 0
encrypt type: 0
parallel num: 1
backup range: database
mpp_timestamp: 1630557477
with_huge: FALSE
backupset_type: NORMAL
mpp_flag: FALSE
backup level: online
backup type: increment
cumulative: FALSE
without log: FALSE
end_lsn: 39815
max_trxid: 39801
base begin_lsn: 39418
base end_lsn: 39806
base n_magic: 0x2BE4F94C
base name: SQL_BAK_FULL_0902
base backupset: /dm8/bak/sql_fu_0902
backup time: 2021-09-02 12:38:00
min exec ver: 0x08010101
min dct ver: 4
pkg size: 0x02000000
<EP INFO>
EP[0]:
begin_pkg_seq: 5506
begin_lsn: 39815
end_pkg_seq: 5506
end_lsn: 39815
<FILE INFO>
backupset directory: /dm8/bak/disql_inc_0902
backupset name: disql_inc_0902
backup data file num: 5
backup piece num: 1
backup huge file num: 0
<backup_piece_list>
$file_seq |$size(KB) |$pos_desc |$content_type
0 |3119 |disql_inc_0902.bak |DATA
<data_file_list>
$file_seq |$group_id |$group_name |$file_id |$file_path |$mirror_path |$file_len |$copy_num |$size_flag
1 |0 |SYSTEM |0 |/dm8/dmdbms/data/DAMENG/SYSTEM.DBF| |24117248 |0 |0
2 |1 |ROLL |0 |/dm8/dmdbms/data/DAMENG/ROLL.DBF | |134217728 |0 |0
3 |4 |MAIN |0 |/dm8/dmdbms/data/DAMENG/MAIN.DBF | |134217728 |0 |0
4 |5 |DMHR |0 |/dm8/dmdbms/data/DAMENG/DMHR.DBF | |134217728 |0 |0
5 |6 |XHH |0 |/dm8/dmdbms/data/DAMENG/xhh01.dbf| |104857600 |0 |0
<arch_file_list>
$file_seq |$dsc_seq |$file_len |$begin_seqno |$begin_lsn |$end_seqno |$end_lsn
<huge_file_list>
$group_id |$schema_id|$table_id |$column_id|$file_id |$file_len |$path
<backupset [DEVICE TYPE:DISK, BACKUP_PATH: /dm8/bak/disql_inc_0902] info end .>
show backupsets successfully.
time used: 21.184(ms)
2、执行数据库的还原和恢复
#####restore 指定恢复的备份片
RMAN> restore database '/dm8/dmdbms/data/DAMENG/dm.ini' from backupset '/dm8/bak/disql_inc_0902';
restore database '/dm8/dmdbms/data/DAMENG/dm.ini' from backupset '/dm8/bak/disql_inc_0902';
[Percent:0.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
restore successfully.
time used: 418.037(ms)
RMAN>
#####recover 还原恢复库
RMAN> recover database '/dm8/dmdbms/data/DAMENG/dm.ini' update db_magic;
recover database '/dm8/dmdbms/data/DAMENG/dm.ini' update db_magic;
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[39815], file_lsn[39815]
recover successfully!
time used: 00:00:01.016
RMAN>
#####恢复还原后对数据库进行验证,略
备注:update db_magic时,会更新库的魔数。如未进行db_magic更新,启动数据库的时候会报下列异常“[FATAL] database P0000007185 T0000000000000007185 Instance DMSERVER startup failed, execute 'recover database ... update db_magic' in dmrman.”