還原數(shù)據(jù)到實(shí)例
1 背景
DM1 有數(shù)據(jù)衙传,有歸檔 吟吝。
DM2 無(wú)數(shù)據(jù)指蚁,一個(gè)新實(shí)例菩佑。
將DM1的最新的數(shù)據(jù)還原到DM2上做開(kāi)發(fā)測(cè)試使用。
數(shù)據(jù)庫(kù)還原需DM2處于脫機(jī)狀態(tài)凝化。
2 還原恢復(fù)數(shù)據(jù)
2.1 和2.2 兩種方式還原恢復(fù)
2.1 復(fù)制歸檔還原
2.1.1 數(shù)據(jù)復(fù)制
(1)復(fù)制DM1全量備份文件 dbbak_full_01 到DM2機(jī)器 /dm/dmbakup 下
(2)復(fù)制DM1全部歸檔或執(zhí)行全備后的歸檔文件到DM2的歸檔目錄/data/dmarch/dm 下
2.1.2 還原恢復(fù)步驟
在DM2進(jìn)入dmrman命令行界面執(zhí)行還原稍坯,2 和3步驟任選其一,3步驟中3.1和3.2任選其一缘圈,兩者都執(zhí)行也可劣光,不過(guò)會(huì)進(jìn)行覆蓋。
1 還原全量備份
restore database '/data/dm_data/dm/dm.ini' from backupset '/dm/dmbakup/dbbak_full_9';
2 恢復(fù)數(shù)據(jù)庫(kù)到最新?tīng)顟B(tài)(若不知道歸檔中最新lsn是多少糟把,可以取一個(gè)很大的值就行绢涡,范圍為1~9223372036854775807)
recover database '/data/dm_data/dm/dm.ini' with archivedir '/data/dmarch/dm' until lsn 132213132232;
3 或者恢復(fù)數(shù)據(jù)庫(kù)到某個(gè)狀態(tài)(某個(gè)lsn或某個(gè)時(shí)間)
3.1 基于時(shí)間點(diǎn)恢復(fù)
recover database '/data/dm_data/dm/dm.ini' with archivedir '/data/dmarch/dm' UNTIL TIME '2020-03-25 17:55:11';
3.2 基于lsn恢復(fù)
recover database '/data/dm_data/dm/dm.ini' with archivedir '/data/dmarch/dm' UNTIL LSN 268138;
recover database '/data/dm_data/dm/dm.ini' with archivedir '/data/dmarch/dm' UNTIL LSN 268138;
3.3 恢復(fù)DB_MAGIC
recover database '/data/dm_data/dm/dm.ini' update db_magic;
4 啟動(dòng)數(shù)據(jù)庫(kù)查詢數(shù)據(jù)。
2.2使用歸檔備份還原
DM1操作
1 DM1 執(zhí)行全備
backup database full to "dbbak_full_9" backupset '/dm/dmbakup/dbbak_full_2';
#查詢lsn
select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;
#插入一些數(shù)據(jù)后執(zhí)行歸檔備份命令
insert into mm values(12),(13);
commit;
#查詢lsn
select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;
2 DM1執(zhí)行歸檔備份
#歸檔備份一部分日志
backup ARCHIVELOG LSN between 231241 and 231276 BACKUPSET '/dm/dmbakup/lsnbak_01';
#或者從某個(gè)lsn開(kāi)始備份歸檔 (自由選擇)
backup ARCHIVELOG FROM LSN 231221 BACKUPSET '/dm/dmbakup/lsnbak_01';
DM2 還原恢復(fù)操作
1 復(fù)制數(shù)據(jù)到DM2
復(fù)制DM1全量備份文件 dbbak_full_02 和 lsnbak_01 到DM2機(jī)器 /dm/dmbakup 下
2 還原數(shù)據(jù)庫(kù)
還原全量備份
restore database '/data/dm_data/dm/dm.ini' from backupset '/dm/dmbakup/dbbak_full_2';
#還原歸檔
restore ARCHIVELOG FROM backupset '/dm/dmbakup/lsnbak_01' to database '/data/dm_data/dm/dm.ini' overwrite 2;
#恢復(fù)數(shù)據(jù)庫(kù)(可參考上面步驟2.1.2里第2步和第3步恢復(fù)操作)
recover database '/data/dm_data/dm/dm.ini' with archivedir '/data/dmarch/dm' until lsn 132213132232;
#恢復(fù)DB_MAGIC;
recover database '/data/dm_data/dm/dm.ini' update db_magic;