使用RMAN進行資料遷移
使用RMAN進行資料遷移
1.檢視SCN,然後備份資料庫
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
sql 'alter system archive log current';
backup database tag 'db0' include current controlfile plus archivelog;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
}
備份的檔案249G,備份用時20分鐘
2.將備份傳輸至目標伺服器 (53分鐘)
3.在目標伺服器還原
先在$ORACLE_HOME/dbs下建立檔案 initmvbox.ora
裡面只有一行
db_name=mvbox
將資料庫啟動至nomount
restore spfile to '/xxxx/spfilemvbox.ora' from '/xxxx/2015_06_11/o1_mf_nnsnf_DB0_bqky8s7r_.bkp';
還原控制檔案
shutdown abort;
startup mount;
restore controlfile from '/xxxx/2015_06_11/o1_mf_ncnnf_DB0_bqky8pq9_.bkp';
sql 'alter database mount';
掛載備份
catalog start with '/xxxx/2015_06_11';
還原資料庫
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
restore database;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
}
還原資料庫用時 30分鐘
4.在目標伺服器進行資料庫恢復(業務實際停機時間)
首先,業務停機
然後檢視當前的SCN
select to_char(CURRENT_SCN) from v$database;
備份歸檔日誌
sql 'alter system archive log current';
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
backup archivelog all tag 'arch0';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
}
因為在遷移之前,清空過歸檔日誌,所以歸檔日誌只是從備份開始到現在的這段時間
日誌量不大,10分鐘以內就可以完成 備份和傳輸
清空歸檔日誌的命令(delete noprompt archivelog all;)
掛載歸檔日誌
catalog start with '/xxxx/2015_06_11';
進行不完全恢復,
set until scn xxx
這個數字就是備份歸檔日誌之前檢視的SCN
run{
shutdown immediate;
startup mount;
set until scn 79377202898;
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
recover database;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
}
恢復用時11分鐘(應用歸檔日誌從10:40至14:39,4個小時)
alter database open resetlogs;
遷移完成.
比對MySQL的不完全恢復
可以發現
MySQL先恢復,再應用binlog,最後還原
他恢復的時間比較短,主要的時間是應用binlog(每恢復一小時的binlog需要15分鐘),最後的還原不需要時間(直接改datadir..)
而Oracle,先還原再恢復
還原的時間比較長(30分鐘),而恢復的時間比較短(每推進一小時的資料需要2到3分鐘)
所以,在備份的伺服器,保持一個最近還原的備份很重要..最起碼會節省30分鐘的還原時間..
1.檢視SCN,然後備份資料庫
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
sql 'alter system archive log current';
backup database tag 'db0' include current controlfile plus archivelog;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
}
備份的檔案249G,備份用時20分鐘
2.將備份傳輸至目標伺服器 (53分鐘)
3.在目標伺服器還原
先在$ORACLE_HOME/dbs下建立檔案 initmvbox.ora
裡面只有一行
db_name=mvbox
將資料庫啟動至nomount
restore spfile to '/xxxx/spfilemvbox.ora' from '/xxxx/2015_06_11/o1_mf_nnsnf_DB0_bqky8s7r_.bkp';
還原控制檔案
shutdown abort;
startup mount;
restore controlfile from '/xxxx/2015_06_11/o1_mf_ncnnf_DB0_bqky8pq9_.bkp';
sql 'alter database mount';
掛載備份
catalog start with '/xxxx/2015_06_11';
還原資料庫
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
restore database;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
}
還原資料庫用時 30分鐘
4.在目標伺服器進行資料庫恢復(業務實際停機時間)
首先,業務停機
然後檢視當前的SCN
select to_char(CURRENT_SCN) from v$database;
sql 'alter system archive log current';
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
backup archivelog all tag 'arch0';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
}
因為在遷移之前,清空過歸檔日誌,所以歸檔日誌只是從備份開始到現在的這段時間
日誌量不大,10分鐘以內就可以完成 備份和傳輸
清空歸檔日誌的命令(delete noprompt archivelog all;)
掛載歸檔日誌
catalog start with '/xxxx/2015_06_11';
進行不完全恢復,
set until scn xxx
這個數字就是備份歸檔日誌之前檢視的SCN
run{
shutdown immediate;
startup mount;
set until scn 79377202898;
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
recover database;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
}
恢復用時11分鐘(應用歸檔日誌從10:40至14:39,4個小時)
alter database open resetlogs;
遷移完成.
比對MySQL的不完全恢復
可以發現
MySQL先恢復,再應用binlog,最後還原
他恢復的時間比較短,主要的時間是應用binlog(每恢復一小時的binlog需要15分鐘),最後的還原不需要時間(直接改datadir..)
而Oracle,先還原再恢復
還原的時間比較長(30分鐘),而恢復的時間比較短(每推進一小時的資料需要2到3分鐘)
所以,在備份的伺服器,保持一個最近還原的備份很重要..最起碼會節省30分鐘的還原時間..
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1696223/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用RMAN進行Oracle資料庫遷移Oracle資料庫
- rman進行跨平臺資料遷移
- 【遷移】使用rman遷移資料庫資料庫
- 使用RMAN執行oracle ASM資料遷移OracleASM
- 應用RMAN Transportable Database進行資料庫跨平臺遷移Database資料庫
- 利用RMAN Convert database特性進行跨平臺遷移資料Database
- 今天晚上進行資料遷移
- 使用RMAN完成跨平臺資料遷移
- 使用RMAN遷移資料庫到異機資料庫
- 海量資料處理_使用外部表進行資料遷移
- 用rman遷移資料庫資料庫
- 使用dbeaver 用csv 檔案進行資料遷移
- 按使用者進行資料庫邏輯遷移資料庫
- Oracle 利用RMAN 完成資料遷移Oracle
- 用python進行資料庫資料遷移Python資料庫
- 【資料遷移】RMAN遷移資料庫到ASM(三)遷移onlinelog等到ASM資料庫ASM
- 模擬利用MV進行資料遷移
- 【資料遷移】RMAN遷移資料庫到ASM(一)建立ASM磁碟組資料庫ASM
- Oracle資料庫遷移之一:RMANOracle資料庫
- RMAN遷移資料庫(rac or single)資料庫
- 使用RMAN遷移檔案系統資料庫到ASM資料庫ASM
- 使用impdp,expdp資料泵進入海量資料遷移
- 使用RMAN進行資料庫複製資料庫
- 【資料遷移】RMAN遷移資料庫到ASM(二)切換資料檔案到ASM資料庫ASM
- 利用RMAN跨平臺遷移資料庫資料庫
- 【資料遷移】使用傳輸表空間遷移資料
- 資料庫上雲實踐:使用Ora2pg進行資料庫遷移資料庫
- 使用 Lotus Quickr Content Integrator 向 Lotus Quickr 中進行資料遷移UI
- 【RMAN】Oracle11g使用rman遷移升級資料庫(win_to_linux)Oracle資料庫Linux
- 使用RMAN進行快速Dataguard資料庫建立資料庫
- 使用資料庫冷備份方式進行資料庫遷移,資料庫檔案遷移到不同的目錄資料庫
- Oracle使用RMAN從Windows遷移資料到LinuxOracleWindowsLinux
- 使用RMAN遷移單庫到RAC
- 使用vplex的mirror功能對儲存層LUN進行資料的遷移
- 透過rman全庫備份遷移資料庫資料庫
- 用 RMAN 備份異機恢復 遷移資料
- 使用RMAN簡單遷移表空間
- 使用RMAN對資料庫進行異機還原資料庫