oracle資料庫rman異地恢複

來源:互聯網
上載者:User

標籤:http   io   os   ar   使用   for   sp   檔案   資料   

自己想做兩組rac之間的data guard,由於datafile,controlfile,甚至是archivelog都是存放在asm上的,直接複製資料有點不現實,asm磁碟總歸都是要用的,所以想從a庫做rman全備份,然後把備份檔案拷貝到b庫上做rman恢複,初衷就是這麼簡單,結果卻遇到了n多的折騰,無法實現,下面是我自己經過無數次測試得到的方法。

oracle版本:11.2.0.0

第一組RAC A PS:前面的hostname,冒號後面是instancename
rac1:orcl1
rac2:orcl2
rac3:orcl3

第二組RAC B
rac8:orcl1
rac9:orcl2

我已經建立好了兩組rac,並且在上面分別建立了orcl資料庫,我在A組rac的資料庫裡做了一些操作,我希望這些建立的表資料什麼的在RAC B上也同樣出現,我現在要做的就是在rac1上使用rman做資料庫全備份然後把備份檔案拷貝到rac8上,然後做rman恢複,使得rac8是rac1上oracle資料庫的一個拷貝

1、rac1做rman全備份

登入到rac1上,使用rman全備份資料庫,如下:
[[email protected] ~]$ rman target /
RMAN> backup database format ‘/u01/app/oracle/backup/orcl01.dbf’;
備份成功了會告訴我:
資料檔案備份檔案為/u01/app/oracle/backup/orcl01.dbf’
controlfile,spfile備份檔案為/u01/app/oracle/backup/c-1351646173-20130822-00
注意:我這邊加了format參數備份成我指定的檔案路徑和名稱,原因就是在異地恢複的時候,rman讀取備份檔案的目錄和需要和備份時的目錄一致,如果這邊不使用format,備份到預設的asm磁碟上,則備份檔案想要複製到異地的asm磁碟上有一定的難度,比如我遇到的問題就是預設備份到asm上的檔案名稱參數很長無法複製到異地的asm磁碟上

2、從rac1上拷貝備份檔案到rac8

需要拷貝的檔案如上:
資料檔案備份檔案為/u01/app/oracle/backup/orcl01.dbf’
controlfile,spfile備份檔案為/u01/app/oracle/backup/c-1351646173-20130822-00
拷貝到rac8上之後仍然放在相同的路徑下,設定具有相同的許可權,一般是oracle:oinstall許可權

3、rac8上做rman恢複

我們這邊只需要恢複controlfile和datafile。

按理來說備份恢複應該使用一樣的spfile,但是我們看到A組(www.111cn.net)rac是3個節點,B組rac是2個節點,我這裡還要說的是這兩組rac server的配置是有差異的,spfile中定義了節點的資訊,還定義了相關的初始化資訊,A組RAC的這些資訊在B組上並不適用的,所以我這裡只恢複controlfile和datafile。

網上看到說異地rman恢複需要設定異地的dbid為本地的值,折騰了好久,發現這個是不需要的,dbid已經定義在controlfile當中,只要恢複了controlfile,dbid自然是相同的了。

恢複controlfile需要資料庫置於nomount狀態
[[email protected] ~]$ uniread sqlplus ‘/ as sysdba’
SQL> shutdown immediate;
SQL> shutdown nomount;
[[email protected] ~]$ uniread rman target /
RMAN> restore controlfile from ‘/u01/app/oracle/backup/c-1351646173-20130822-00′;
完了會告訴你恢複成功

恢複資料檔案需要資料庫置於mount狀態
[[email protected] ~]$ uniread sqlplus ‘/ as sysdba’
SQL> shutdown immediate;
SQL> shutdown mount;
注意:啟動到mount的狀態可能需要加參數resetlogs
[[email protected] ~]$ uniread rman target /
RMAN> list backup of database;
可以看到備份檔案資訊
RMAN> restore database;
RMAN> recover database;
這樣就恢複結束了

4、rac8上啟動oracle到open狀態

單獨講這個是有意義的,恢複之後,因為rac8上的資料字典等資訊已經改變,所有他會報錯ORA-39700: database must be opened with UPGRADE option
那我們就需要啟動到升級模式了
SQL> startup UPGRADE;
報錯:ORA-39701: database must be mounted EXCLUSIVE for UPGRADE or DOWNGRADE
這個報錯的解決方案是要禁掉叢集參數
SQL> STARTUP NOMOUNT;
SQL> ALTER SYSTEM SET CLUSTER_DATABASE=FALSE scope=spfile ;
SQL> SHUTDOWN IMMEDIATE;
SQL> startup UPGRADE;
這樣就啟動成功了,再有就是記得把叢集參數開啟。
from:http://www.111cn.net/database/Oracle/50477.htm

oracle資料庫rman異地恢複

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.