單例項備份集恢復到RAC
//********************************************************************
1、恢復為單例項普通檔案系統
1)rman 備份原資料庫(在mount狀態下做)
RMAN> run{
CONFIGURE DEFAULT DEVICE TYPE TO 'disk';
CONFIGURE CONTROLFILE AUTOBACKUP ON;
backup format='/tmp/database_%d_%s.bak' database plus archivelog;
}
******************************************************************//
control_files,db_create_file_dest,db_recovery_file_dest(如果啟用flashback),log_archive_dest,各DUMP檔案,audit_file_dest
引數先設好)
audit_file_dest='/oracle/ora10g/admin/ORCL/adump'
background_dump_dest='/oracle/ora10g/admin/ORCL/bdump'
core_dump_dest='/oracle/ora10g/admin/ORCL/cdump'
user_dump_dest='/oracle/ora10g/admin/ORCL/udump'
#control files路徑也可以直接設為'+DATA',但考慮到恢復控制檔案時資料庫處於nomount狀態,ASM自動建立的目錄不會按資料庫名建立,
#會自動建立為DB_UNKNOWN,看起來不太一致,實際不影響使用。此時需手動建立asm目錄(使用asmcmd)。
control_files='+DATA/ORCL/CONTROLFILE/control01.ctl','+DATA/ORCL/CONTROLFILE/control02.ctl','+DATA/ORCL/CONTROLFILE/control03.ctl'
db_create_file_dest='+DATA'
db_name='ORCL'
db_recovery_file_dest='+RECOVERY'
//**********************************************************************************
3)將備份集複製到節點1
RMAN > restore CONTROLFILE from '/install_file/o1_mf_s_728857237_684gdrg2_.bkp';
RMAN > catalog backuppiece "/install_file/database_ORCL_8424.bak";
RMAN > run {
allocate channel d1 device type disk format '/install_file/database_%d_%s.bak';
restore database;
recover database until cancel using backup CONTROLFILE;--如果在MOUNT下備份的則不要恢復。
alter database open resetlogs;
release channel d1;
}
至此單例項普通檔案系統完成並開啟
***********************************************************************************//
對於大資料庫最好能使用NFS直接掛原庫檔案,避免多次傳遞檔案,很耗時。
NFS配置方法:
AIX:
Server端:
#smit mknfs
#smit mknfsexp --指定需要共享的nfs 本地檔案系統路徑
#showmount -e --檢視本地nfs共享是否成功
Client端:
#showmount -e serverIP --檢視遠端nfs共享是否成功
#smit mknfsmnt --掛載共享的nfs檔案系統 --需要編輯伺服器和客戶端的/etc/hosts檔案,做好ip與主機名的一一對應關心。
在192.168.70.50伺服器停止資料庫服務
2、轉換為單例項ASM系統
1)將CONTROL FILE轉到ASM
RMAN> restore CONTROLFILE from '/oracle/oradata/oradata/ORCL/control01.ctl';
--[sql> alter database backup CONTROLFILE to '+DATA/ORCL/CONTROLFILE/control02.ctl';]
有些作業系統會遭遇RMAN + NFS 的 bug,造成不能還原,解決的方法是在初始化引數里加:
event='10298 trace name context forever,level 32'
2)將資料檔案,聯機事務日誌檔案轉到ASM
RMAN> ALTER DATABASE MOUNT;
RMAN> backup as copy database format '+DATA';
RMAN> switch database to copy;
SQL> alter database rename file '/ora10g/oracle/oradata/ORCL/redo01.log' to '+DATA';
SQL> alter database rename file '/ora10g/oracle/oradata/ORCL/redo02.log' to '+DATA';
SQL> alter database rename file '/ora10g/oracle/oradata/ORCL/redo03.log' to '+DATA';
SQL> recover database;
SQL> alter database open RESETLOGS;
3)將臨時表空間轉到ASM,其實就是刪掉重建。
SQL> select tablespace_name,file_name from dba_temp_files;
SQL> alter tablespace temp add tempfile '+DATA';
SQL> alter database tempfile '/oracle/oradata/oradata/ORCL/temp01.dbf' drop;
//*****************************************************************
4)將聯機事務日誌檔案轉到ASM
SQL> select * from v$logfile;
SQL> select group#,status from v$log;
SQL> alter database add logfile group 4 size 100m;
SQL> alter database add logfile group 5 size 100m;
SQL> alter database add logfile group 6 size 100m;
SQL> alter system switch logfile;
--alter system checkpoint;
SQL> alter database drop logfile group 1;
SQL> alter database drop logfile group 2;
SQL> alter database drop logfile group 3;
********************************************************************//
5)將spfile轉到ASM,注意修改PFILE
SQL> create spfile='+DATA' from pfile;
$ cp SPFILEORCL.ORA SPFILEORCL.ORA.bak --備份原來的pfile
$ echo "SPFILE="+data/orcl/parameterfile/spfile.270.729184569"" > /oracle10g/product/db/dbs/initORCL.ora
3、轉換為RAC系統
1)修改相關引數,併為例項2建立獨立的undo,redo檔案
SQL> select * from v$option where parameter like 'Real%';
SQL> show parameter cluster
SQL> alter system set cluster_database=true scope=spfile;
SQL> alter system set cluster_database_instances=2 scope=spfile;
SQL> alter system set instance_number=1 scope=spfile sid='ORCL1';
SQL> alter system set instance_number=2 scope=spfile sid='ORCL2';
SQL> alter system set thread=1 scope=spfile sid='ORCL1';
SQL> alter system set thread=2 scope=spfile sid='ORCL2';
SQL> create undo tablespace undotbs2 datafile '+DATA' size 16m;
SQL> alter system set undo_tablespace='undotbs1' scope=spfile sid='ORCL1';
SQL> alter system set undo_tablespace='undotbs2' scope=spfile sid='ORCL2';
SQL> alter database add logfile thread 2 group 4 '+DATA' size 10m;
SQL> alter database add logfile thread 2 group 5 '+DATA' size 10m;
SQL> alter database add logfile thread 2 group 6 '+DATA' size 10m;
SQL> alter database enable thread 2;
2)在2個節點上分別建初始化引數檔案initORCL1.ora 和 initORCL2.ora,檔案內容很簡單為SPFILE="+data/orcl/parameterfile/spfile.270.729184569",這個和initORCL.ora一樣。
shutdown immediate,關閉資料庫,分別startup ORCL1、ORCL2例項。
3)檢查2個例項
SQL> select instance_number,instance_name,host_name from v$instance;
SQL> select instance_number,instance_name,host_name from gv$instance;
4)現在已經是叢集的資料庫了,整個恢復工作基本完成。
5)建立金鑰檔案
rac1$ orapwd file=$ORACLE_HOME/dbs/orapwORCL1 password=infowms2010
rac2$ orapwd file=$ORACLE_HOME/dbs/orapwORCL2 password=infowms2010
6)不過這時候透過crs_stat -t檢視的時候,還看不到新建立的ORCL資料庫資訊,這是正常的,因為手動恢復資料庫,其配置資訊並沒有維護到crs中,需要手動處理,操作如下:
$ srvctl add database -d ORCL -o $ORACLE_HOME -n ORCL -p +data/orcl/parameterfile/spfile.270.729184569
$ srvctl add instance -d ORCL -i ORCL1 -n wasdb01
$ srvctl add instance -d ORCL -i ORCL2 -n wasdb02
7)上述3條命令分別配置了資料庫和兩個例項,此時3項服務剛剛配置完成,crs中尚未同步其狀態,因此需要執行一下srvctl start database,然後再透過crs_stat即可檢視正確的狀態了:
$ srvctl start database -d ORCL
8)剩下的比如修改監聽、配置網路服務名等操作
分別在rac的兩臺節點上,新增下列內容到tnsnames.ora中
WASAPP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.70.38)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.70.40)(PORT = 1521))
(LOAD_BALANCE = yes)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = WASAPP)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
9)修改客戶端配置
所有連線到rac資料庫的應用都需要在應用伺服器上新增到上面的內容tnsnames.ora中。
並在應用伺服器的hosts檔案中新增下列內容:
192.168.70.37 wasdb01
192.168.70.38 wasdb01-vip
192.168.70.39 wasdb02
192.168.70.40 wasdb02-vip
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/73920/viewspace-1038154/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 單例項備份恢復成RAC單例
- 【RAC】將單例項備份集恢復為rac資料庫單例資料庫
- 【RAC】將RAC備份集恢復為單例項資料庫單例資料庫
- 將RAC備份集恢復為單例項資料庫單例資料庫
- rac恢復到單例項單例
- RAC asm恢復到單例項ASM單例
- 從nub備份恢復(同平臺)恢復RAC至單例項單例
- rac到單例項的rman恢復單例
- rac asm 恢復到 單例項 1ASM單例
- rac asm 恢復到 單例項 2ASM單例
- RMAN異機恢復:RAC到單例項單例
- RAC恢復到單例項節點上單例
- 恢復rac db(raw)到單例項下單例
- 單例項環境利用備份恢復RAC資料庫(四)單例資料庫
- 單例項環境利用備份恢復RAC資料庫(三)單例資料庫
- 單例項環境利用備份恢復RAC資料庫(二)單例資料庫
- 單例項環境利用備份恢復RAC資料庫(一)單例資料庫
- 單例項恢復至RAC單例
- RAC從帶庫到單例項的恢復單例
- 恢復RAC資料庫到單例項(ASM)資料庫單例ASM
- 10g rac asm 恢復到 單例項(二)ASM單例
- 10g rac asm 恢復到 單例項(一)ASM單例
- 一次dataguard備份恢復到單例項的故障記錄單例
- RAC資料庫恢復到單例項資料庫資料庫單例
- MySQL增量備份與恢復例項MySql
- RMAN例項備份與恢復詳解
- Oracle 11.2.0.4 從單例項,使用RMAN 異機恢復到RACOracle單例
- Oracle RAC備份與恢復Oracle
- RAC 資料庫恢復到單例項下並且基於時間點恢復資料庫單例
- 【kingsql分享】將RAC資料庫異機恢復到單例項(Ⅰ)SQL資料庫單例
- 單例項恢復RAC資料庫步驟(三)單例資料庫
- 單例項恢復RAC資料庫步驟(二)單例資料庫
- 單例項恢復RAC資料庫步驟(一)單例資料庫
- 詳解叢集級備份恢復:物理細粒度備份恢復
- Oracle 11G 備份與恢復 使用RMAN建立備份集舉例Oracle
- 記錄一次Oracle 11.2.0.4 RAC異地恢復到單例項Oracle單例
- oracle 11C rman 恢復到單例項Oracle單例
- 資料庫的備份與恢復分析及例項資料庫