1. 程式人生 > >使用Rman備份片資訊遠端恢復資料庫一例

使用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 ;