日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

在oracle备份数据库,Oracle在A机器上备份了数据库,到B机器上恢复时,怎么进行下去?...

發(fā)布時間:2025/4/5 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在oracle备份数据库,Oracle在A机器上备份了数据库,到B机器上恢复时,怎么进行下去?... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近幾天自己寫了個關(guān)于RMAN異機恢復的筆記希望對你有幫助

不對的地方還望指正

1,在源數(shù)據(jù)庫做一次全備(包含控制文件,歸檔日志文件)

rman>run {

>allocate channel d1 type disk;

>allocate channel d2 type disk;

>backup full database format 'f:\orcl2data.bak'

>tag='full' include current controlfile;

>sql 'alter system archive log current';

>backup archivelog all format 'f:\orcl2log.bak' delete all input;

>release channel d2;

>release channel d1;

}

2, 在源數(shù)據(jù)庫上創(chuàng)建pfile文件,并拷貝至目標機器上任何位置

sql>create pfile=f:\orcl2pfile.ora from spfile;

3,windowx在CMD窗口輸入(linux可取消此步驟)

oradim -new -sid reportvi

set ORACLE_SIDD=reportvi

sqlplus / as sysdba

--使用保存的pfile文件啟動到numount狀態(tài)

sql>startup nomount pfile='xxxx'

sql>EXIT

--將剛才備份的f:\orcl2data.bak、f:\orcl2log.bak拷貝至目標機器上XXXXX路徑

rman target/

--恢復控制文件

rman>restore controlfile from 'YYYY';

--恢復控制文件之后就可以加載恢復目錄了

rman>catalog start with 'XXXXXX'

rman>list bakcup

--刪除狀態(tài)為expired 防止恢復數(shù)據(jù)文件的時候找到多個無效的備份

rman>delete expired backup

--再重新加載恢復目錄

rman>catalog start with 'XXXXXX'

RMAN> run{

>allocate channel d1 type disk;

>set newname for datafile 1 to 'F:\report_data\reportvi\SYSTEM01.DBF';

>set newname for datafile 2 to 'f:\report_date\reportvi\UNDOTBS01.DBF';

>set newname for datafile 3 to 'f:\report_date\reportvi\SYSAUX01.DBF';

>set newname for datafile 4 to 'f:\report_date\reportvi\USERS01.DBF';

>restore database;

>switch datafile all;

>recover database;

>release channel d1;

}

這里的datafile 1,2,3,4對應的數(shù)據(jù)文件名稱一定要和源庫上的對應

比如datafile 1對應的system01 恢復的時候絕對不能恢復成sysaux01

run{

allocate channel d1 type disk;

set newname for datafile 1 to 'F:\report_data\reportvi\SYSTEM01.DBF';

set newname for datafile 2 to 'f:\report_date\reportvi\UNDOTBS01.DBF';

set newname for datafile 3 to 'f:\report_date\reportvi\SYSAUX01.DBF';

set newname for datafile 4 to 'f:\report_date\reportvi\USERS01.DBF';

restore database;

switch datafile all;

recover database;

release channel d1;

}

--在執(zhí)行recover database的時候會報如下錯誤 是因為沒有源數(shù)據(jù)庫的redo文件導致

啟動 recover 于 22-3月 -13

使用通道 ORA_DISK_1

正在開始介質(zhì)的恢復

無法找到存檔日志

存檔日志線程 =1 序列=144

MAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: recover 命令 (在 03/22/2013 14:14:54 上) 失敗

RMAN-06054: 介質(zhì)恢復正請求未知的日志: 線程 1 seq 144 lowscn 3022894

如果要做到與源庫的數(shù)據(jù)一致,就把源庫關(guān)閉拷貝3個redo文件到目標數(shù)據(jù)庫目錄下

sql>alter databse open;

ORA-01589: 要打開數(shù)據(jù)庫則必須使用 RESETLOGS 或 NORESETLOGS 選項

--剛剛做過恢復必須使用resetlogs 選項打開數(shù)據(jù)庫

sql>alter database open resetlog;

alter database open resetlogs

*

第 1 行出現(xiàn)錯誤:

ORA-00344: 無法重新創(chuàng)建聯(lián)機日志

'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL2\REDO01.LOG'

ORA-27040: 文件創(chuàng)建錯誤, 無法創(chuàng)建文件

OSD-04002: 無法打開文件

O/S-Error: (OS 3) 系統(tǒng)找不到指定的路徑。

SQL> alter database rename file 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL2\REDO01.LOG' to 'F:\oracle\product\10.2.0\oradata\orcl2\redo01.log';

數(shù)據(jù)庫已更改。

SQL> alter database rename file 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL2\REDO02.LOG' to 'F:\oracle\product\10.2.0\oradata\orcl2\redo02.log';

數(shù)據(jù)庫已更改。

SQL> alter database rename file 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL2\REDO03.LOG' to 'F:\oracle\product\10.2.0\oradata\orcl2\redo03.log';

數(shù)據(jù)庫已更改。

SQL> alter database open resetlogs;

數(shù)據(jù)庫已更改。

總結(jié)

以上是生活随笔為你收集整理的在oracle备份数据库,Oracle在A机器上备份了数据库,到B机器上恢复时,怎么进行下去?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。