使用RMAN進行異機恢復

今天參考了DAVE(鏈接:http://blog.csdn.net/tianlesoftware/article/details/5749932)的筆記,也做了一次異機恢復實驗,中間遇到了一些問題,特記錄:

遇到的問題:

                  1、在備份時未採用DAVE的腳本,在複製數據庫的時候,導致出現RMAN-06023 : no backup or copy of datafile found to restore,遇到這種情況是由於:在做RMAN 異機恢復的時候,先備份的數據文件,然後備份的控制文件,但在備份控制文件時沒有切當前歸檔,所以備份的控制文件不是最新的,我的解決辦法是,重新備份了一下控制文件,然後再恢復,就能找到了。

                 2、不細心,輔助庫的不目錄建的不全,不能生成數據文件。

                 3、中間還自作聰明,想從10.2.01直接複製到11.2.01,在複製過程中無報錯,在打開數據庫時,提示需要升級。

步驟:

目標庫信息:
ORACLE_BASE: /oracle/app/oracle
ORACLE_HOME: /oracle/app/oracle/product/10.2.0/db_2
ORACLE_SID:orcl
IP: 192.168.1.222
輔助庫信息:
ORACLE_BASE: /oracle/app/oracle
ORACLE_HOME: /oracle/app/oracle/product/10.2.0/db_1
ORACLE_SID:tony
IP: 192.168.1.220


我們以實例名相同的爲例,實例名不同也一樣,在pfile裏修改對應參數就可以了。
步驟如下:
(1)構建輔助數據庫目錄結構
(2)創建pfile,並複製到輔助數據庫,修改相關內容
(3)創建輔助實例口令文件
(4)RMAN 備份源庫
(5)添加配置監聽
(6)將源庫備份文件拷貝到輔助庫相同位置
(7)用pfile文件,將輔助數據庫啓動到nomount 狀態
(8)執行RMAN duplicate命令複製數據庫
(9)創建spfile文件
(10)在磁帶上恢復備份
(11)使用DBNEWID程序生成新的DBID

1、輔助庫
mkdir -p /oracle/app/oracle/admin/tony/{a,b,c,u,dp}dump
mkdir -p /oracle/app/oracle/oradata/tony/

2、目標庫
createp pfile='/oracle/backup/inittony.ora' from pfile

scp /oracle/backup/inittony.ora 192.168.58.220:$ORACLE_HOME/dbs/

orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=54525952
orcl.__streams_pool_size=0
*.audit_file_dest='/oracle/app/oracle/admin/tony/adump'
*.background_dump_dest='/oracle/app/oracle/admin/tony/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/oracle/app/oracle/oradata/tony/control01.ctl','/oracle/app/oracle/oradata/tony/control02.ctl','/oracle/app/oracle/oradata/tony/control03.ctl'#Restore Controlfile
*.core_dump_dest='/oracle/app/oracle/admin/tony/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest='/oracle/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=6341787648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.log_archive_dest_1=''
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=60817408
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=188743680
*.sga_target=183500800
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/oracle/app/oracle/admin/tony/udump'

db_file_name_convert = ('/oracle/app/oracle/oradata/orcl','/oracle/app/oracle/oradata/tony')
log_file_name_convert = ('/oracle/app/oracle/oradata/orcl','/oracle/app/oracle/oradata/tony')

3、輔助庫創建口令文件
orapwd file=$ORACLE_HOME/dbs/orapwtony password=tony


4、目標庫RMAN備份數據庫

RUN {
allocate channel c1 type disk;
allocate channel c2 type disk;
BACKUP FORMAT '/oracle/backup/orcl_%U_%T' skip inaccessible filesperset 5  DATABASE TAG orcl_hot_db_bk;
sql 'alter system archive log current';
BACKUP FORMAT '/oracle/backup/arch_%U_%T' skip inaccessible filesperset 5 ARCHIVELOG ALL DELETE INPUT;
backup current controlfile tag='bak_ctlfile' format='/oracle/backup/ctl_file_%U_%T';
backup spfile tag='spfile' format='/oracle/backup/ORCL_spfile_%U_%T';
release channel c2;
release channel c1;
}

(5)兩邊添加配置監聽
通過NETMGR添加,並測試連接正常


(6)將源庫備份文件拷貝到輔助庫相同位置

[root@oracle10g ~]# more /etc/exports
/oracle/backup (rw,sync)
mkdir -p /oracle/backup
chmod -R 777 /oracle/backup/

[root@oracle~]# mount  -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 192.168.58.222:/oracle/backup /oracle/backup

[root@oracle~]#
[root@oracle~]# ls /oracle/backup
archivelog                                               inittony.ora
ctl_123_1_20130727_821871179.bkp                         log
FULLBACKUP_ORCL_1348585705_121_1_20130727_821871118.bkp  spfile_124_1_20130727_821871181.bkp

(7)用pfile文件,將輔助數據庫啓動到nomount 狀態
startup nomount pfile=?/dbs/inittony.ora

(8)目標庫執行RMAN duplicate命令複製數據庫
connect auxiliary sys/tony@tony;
duplicate target database to tony

(9)輔助庫創建spfile文件
create spfile from pfile=?/dbs/inittony.ora
shutdown immediate;
startup

(10)輔助庫使用DBNEWID程序生成新的DBID

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章