標籤: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異地恢複