使用Rman備份片資訊遠端恢復資料庫一例
1、掛載備份伺服器的備份目錄
1、建立備份片存放目錄,這裡沒有使用catalog,所以需要和生產庫備份目錄路徑相同
mkdir /prod/backup/
2、掛載備份伺服器備份目錄
showmount -e 192.168.8.148
mount 192.168.8.148:/arc_bk/other_bk /prod/backup
bdf
2、建立遠端測試庫所需pfile
1、生產庫中生成pfile
create pfile='/tmp/initfact.ora' from spfile ;
2、遠端測試庫建立所需的pfile
vi $ORACLE_HOME/dbs/initfact.ora
fact.__db_cache_size=180355072
fact.__java_pool_size=4194304
fact.__large_pool_size=4194304
fact.__shared_pool_size=100663296
fact.__streams_pool_size=0
*.audit_file_dest='/u01/apps/oracle/admin/fact/adump'
*.background_dump_dest='/u01/apps/oracle/admin/fact/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/u01/fact/control01.ctl','/u01/fact/control02.ctl','/u01/fact/control03.ctl'
*.core_dump_dest='/u01/apps/oracle/admin/fact/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='fact'
*.db_recovery_file_dest='/u01/apps/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=factXDB)'
*.job_queue_processes=10
*.log_archive_dest_1='location=/u01/arch1'
*.open_cursors=300
*.pga_aggregate_target=96468992
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=290455552
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/apps/oracle/admin/fact/udump'
3、保證遠端測試庫資料目錄的可用性
1、建立目錄
mkdir -p /u01/apps/oracle/admin/fact/adump
mkdir -p /u01/apps/oracle/admin/fact/bdump
mkdir -p /u01/apps/oracle/admin/fact/cdump
mkdir -p /u01/apps/oracle/admin/fact/udump
mkdir -p /u01/fact/
mkdir -p /u01/apps/oracle/flash_recovery_area
mkdir -p /u01/fact/datafiles
mkdir -p /u01/fact/logfiles
2、確定許可權
ls -l /u01/apps/oracle/admin/fact/
ls -l /u01/fact
ls -l /u01/
ls -l /u01/apps/oracle/
3、檢視磁碟空間
bdf
4、保證遠端測試庫備份資訊的可用性
確保nfs目錄中的資料能夠被nobody可讀可寫的許可權。
ls -l /prod/backup/
5、將遠端測試庫啟動到nomount
在使用rman的時候需要使用相應的記憶體,所以需要資料庫至少啟動到nomount狀態下。
export ORACLE_SID=fact
sqlplus / as sysdba
startup nomount ;
6、恢復遠端測試庫的控制檔案
使用rman開啟測試庫fact,通過備份片控制檔案。
1、檢視最新的控制檔案。
ls -ltr /prod/backup/auto_bk/
2、通過最新的自動備份片恢復測試庫的控制檔案。
export ORACLE_SID=fact
rman target /
restore controlfile from'/prod/backup/auto_bk/atb_c-2876228549-20101119-09' ;
7、恢復遠端測試庫
1、啟動資料庫到mount狀態。
alter database mount ;
2、先檢視一下schema中的資訊
report schema
3、設定新的資料檔案儲存目錄,恢復資料庫
run
{
set newname for datafile 1 to '/u01/fact/datafiles/SYSTEM01.DBF';
set newname for datafile 2 to '/u01/fact/datafiles/UNDOTBS01.DBF';
set newname for datafile 3 to '/u01/fact/datafiles/SYSAUX01.DBF';
set newname for datafile 4 to '/u01/fact/datafiles/USERS01.DBF';
set newname for datafile 5 to '/u01/fact/datafiles/example01.DBF';
restore database;
switch datafile all;
}
4、修改臨時表空間資料檔案位置、redolog檔案位置。
report schema ;
alter database rename file '生產庫臨時表空間資料檔案位置' to '/u01/fact/temp01.dbf' ;
select member from v$logfile ;
alter database rename file '生產庫redolog檔案位置' to '/u01/fact/logfiles/redo01.log' ;
alter database rename file '生產庫redolog檔案位置' to '/u01/fact/logfiles/redo02.log' ;
alter database rename file '生產庫redolog檔案位置' to '/u01/fact/logfiles/redo03.log' ;
5、應用歸檔日誌恢復資料庫
recover database ;
6、不完全恢復資料庫
recover database using backup controlfile untilcancel ;
8、開啟遠端測試庫到open狀態
使用resetlogs方式開啟資料庫
alter database open resetlogs ;
9、建立臨時表空間資料檔案
因為臨時表空間資料檔案是不會備份的所以需要重新建立資料檔案,以便資料庫能夠正常執行。
ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/fact/datafiles/temp01.dbf'size 20m ;