天天看點

Oracle 11G RMAN 單執行個體異機恢複

  資料備份當然是為資料恢複準備,新環境的oracle一直在進行備份,但都沒有測試驗證備份的有效性,是以本次測試的重要性不言而喻了!以下為WIN平台下RMAN異機恢複執行個體。

源庫

目标庫

作業系統

WIN SVR 2008 R2

主機名

Ora

ORATEST

IP

192.168.18.20

192.168.18.25

資料庫版本

11.2.0.1.0

存儲方式

單執行個體

ORACLE_HOME

D:\app\Administrator\product\11.2.0\dbhome_1

ORACLE_SID

HWPROD

源庫備份操作:

相關備份配置及腳本如下:

RMAN> show all;

db_unique_name 為 HWPROD 的資料庫的 RMAN 配置參數為:

CONFIGURE RETENTION POLICY TO RECOVERYWINDOW OF 3 DAYS;  #保留備份為3天

CONFIGURE BACKUP OPTIMIZATION OFF; #default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; #default

CONFIGURE CONTROLFILE AUTOBACKUP ON;  #需要打開自動備份

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FORDEVICE TYPE DISK TO 'e:\data_backup\

ctl_%F.bak';  #指定備份控制檔案及參數檔案備份路徑格式

CONFIGURE DEVICE TYPE DISK PARALLELISM 1BACKUP TYPE TO BACKUPSET; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICETYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FORDEVICE TYPE DISK TO 1; # default

CONFIGURE MAXSETSIZE TO UNLIMITED; #default

CONFIGURE ENCRYPTION FOR DATABASE OFF; #default

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; #default

CONFIGURE COMPRESSION ALGORITHM 'BASIC' ASOF RELEASE 'DEFAULT' OPTIMIZE FOR LOA

D TRUE ; # default

CONFIGURE ARCHIVELOG DELETION POLICY TONONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHO

ME_1\DATABASE\SNCFHWPROD.ORA'; # default

full_backup.sql

<code>run{</code>

<code>allocate channel d1 type disk;  </code>

<code>allocate channel d2 type disk;</code>

<code>backup </code><code>as</code> <code>compressed backupset fulldatabase format </code><code>'e:\data_backup\full_%d_%s_%p_%u_%t.bak'</code><code>;</code>

<code>sql </code><code>'alter system archive logcurrent'</code><code>;  </code>

<code>backup archivelog </code><code>all</code> <code>format</code><code>'e:\data_backup\log_%d_%s_%p_%u_%t.bak'</code> <code>delete</code> <code>all</code> <code>input; </code>

<code>release channel d1;</code>

<code>release channel d2;</code>

<code>report obsolete;  </code>

<code>crosscheck backup; </code>

<code>delete</code> <code>noprompt expired backup; </code>

<code>delete</code> <code>noprompt obsolete; </code>

<code>}</code>

full_backup.bat

<code>set</code> <code>oracle_sid=hwprod</code>

<code>set</code> <code>d=%</code><code>date</code><code>:~,4%%</code><code>date</code><code>:~5,2%%</code><code>date</code><code>:~8,2%</code>

<code>echo=&gt;e:\rman_script\log\full_backup_%d%.log</code>

<code> </code> 

<code>rman target /cmdfile=e:\rman_script\full_backup.sqlmsglog=e:\rman_script\log\full_backup_%d%.log</code>

RMAN恢複思路步驟:

初始化資料庫,安裝相同環境;

恢複參數檔案;

恢複控制檔案;

啟動資料庫到MOUNT狀态,利用控制檔案進行資料恢複;

檢視歸檔日志備份sequence;

Restore –recover—alter database open ressetlogs;

驗證;

設定監聽

1、  系統安裝完成後,安裝ORACLE軟體,選擇隻安裝軟體,并安裝與源庫相同路徑,然後把相關備份檔案拷貝到原備份路徑,為避免不必要的麻煩,建議設定與源庫一緻。

2、建立相關的密碼檔案,服務,監聽器,否則無法連接配接DB

<code>C:\Users\Administrator&gt;D:</code>

<code>D:\&gt;cd D:\app\Administrator\product\11.2.0\dbhome_1\BIN</code>

<code>D:\app\Administrator\product\11.2.0\dbhome_1\BIN&gt;orapwd file=D:\app\Administrator\product\11.2.0\dbhome_1\</code><code>database</code><code>\pwdhwprod.ora </code><code>password</code><code>=oracle entries=5;</code>

<code>D:\app\Administrator\product\11.2.0\dbhome_1\BIN&gt;oradim -new -sid HWPROD -startmode m</code>

<code>執行個體已建立。</code>

<code>D:\app\Administrator\product\11.2.0\dbhome_1\BIN&gt;</code><code>set</code> <code>ORACLE_SID=HWPROD</code>

D:\app\Administrator\product\11.2.0\dbhome_1\BIN&gt;

D:\app\Administrator\product\11.2.0\dbhome_1\BIN&gt;sqlplus/ as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期五 4月 21 14:19:482017

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

已連接配接到空閑例程。

SQL&gt;

<a href="https://s4.51cto.com/wyfs02/M00/92/BF/wKioL1kCqhnStZLCAAAw976cjSY886.png-wh_500x0-wm_3-wmp_4-s_4034308860.png" target="_blank"></a>

此時可以連接配接到DB了。

3、手動建立一個pfile檔案(目的是使用資料庫啟動到nomount狀态),放到D:\app\Administrator\product\11.2.0\dbhome_1\database目錄下,inithwprod.ora内容如下:

db_name=HWPROD

java_pool_size=4194304

large_pool_size=4194304

shared_pool_size=96468992

<a href="https://s4.51cto.com/wyfs02/M02/92/C0/wKiom1kCqlPzsnnhAAAochqfGro724.png-wh_500x0-wm_3-wmp_4-s_3779173267.png" target="_blank"></a>

以此pfile啟動資料庫到nomount狀态:

<a href="https://s2.51cto.com/wyfs02/M01/92/BF/wKioL1kCqqWCHAsNAABGZ5PeOjE703.png-wh_500x0-wm_3-wmp_4-s_2114927293.png" target="_blank"></a>

<code>SQL&gt; startuppfile=</code><code>'D:\app\Administrator\product\11.2.0\dbhome_1\database\inithwprod.ora'</code> <code>nomount;</code>

ORACLE 例程已經啟動。

Total System Global Area  162873344 bytes

Fixed Size                  2173800 bytes

Variable Size             104858776 bytes

Database Buffers           50331648 bytes

Redo Buffers                5509120 bytes

4、切換到RMAN下,并SETDBID=3279461817(源庫DBID):

<a href="https://s4.51cto.com/wyfs02/M01/92/C0/wKiom1kCqteRcIgHAABW61dRT94467.png-wh_500x0-wm_3-wmp_4-s_3933041186.png" target="_blank"></a>

<a href="https://s4.51cto.com/wyfs02/M02/92/BF/wKioL1kCqtfDWV4hAABUz4YCS2Y719.png-wh_500x0-wm_3-wmp_4-s_1433334819.png" target="_blank"></a>

5、建立flash_recovery_area、ORADATA目錄,否則恢複資料時會報錯ORA-01263: Name given for file destination directory is invalid  。

建立相關目錄:

<a href="https://s2.51cto.com/wyfs02/M01/92/BF/wKioL1kCq0iDxfTIAACM8_VbfkI826.png-wh_500x0-wm_3-wmp_4-s_4066059722.png" target="_blank"></a>

6、恢複spfile檔案:

Restore SPfile檔案,找到源spfile備份相關檔案進行恢複:

<code>RMAN&gt; restore spfile </code><code>from</code><code>'e:\data_backup\CTL_C-3279461817-20180116-00.BAK'</code><code>;</code>

恢複參數檔案完成後,shutdown 資料庫,退出RMAN,找到恢複的參數檔案把相關參數copy并修改到inithwprod.ora檔案裡(這裡應該注意,源庫可能空間較大,如果設定不當,啟動資料庫到nomount時會報ORA-27102 out of memory 等錯誤,是以關于sga,pga等酌情根據目标庫修改)

以下為修改後的inithwprod.ora檔案内容:

<code>hwprod.__java_pool_size=33554432</code>

<code>hwprod.__large_pool_size=33554432</code>

<code>hwprod.__oracle_base=</code><code>'d:\app\Administrator'</code><code>#ORACLE_BASE </code><code>set</code> <code>from</code> <code>environment</code>

<code>hwprod.__pga_aggregate_target=536870912</code>

<code>hwprod.__sga_target=536870912</code>

<code>hwprod.__shared_io_pool_size=0</code>

<code>hwprod.__shared_pool_size=536870912</code>

<code>hwprod.__streams_pool_size=16777216</code>

<code>*.audit_file_dest=</code><code>'d:\app\Administrator\admin\hwprod\adump'</code>

<code>*.audit_trail=</code><code>'db'</code>

<code>*.compatible=</code><code>'11.2.0.0.0'</code>

<code>*.control_files=</code><code>'d:\app\Administrator\oradata\hwprod\control01.ctl'</code><code>,</code><code>'d:\app\Administrator\flash_recovery_area\hwprod\control02.ctl'</code>

<code>*.db_block_size=8192</code>

<code>*.db_domain=</code><code>'hwprod_test'</code>

<code>*.db_name=</code><code>'hwprod'</code>

<code>*.db_recovery_file_dest=</code><code>'d:\app\Administrator\flash_recovery_area'</code>

<code>*.db_recovery_file_dest_size=2147483648</code>

<code>*.diagnostic_dest=</code><code>'d:\app\Administrator'</code>

<code>*.dispatchers=</code><code>'(PROTOCOL=TCP) (SERVICE=hwprodXDB)'</code>

<code>*.log_archive_format=</code><code>'ARC%S_%R.%T'</code>

<code>*.memory_target=1073741824</code>

<code>*.nls_language=</code><code>'SIMPLIFIED CHINESE'</code>

<code>*.nls_territory=</code><code>'CHINA'</code>

<code>*.open_cursors=100</code>

<code>*.processes=500</code>

<code>*.remote_login_passwordfile=</code><code>'EXCLUSIVE'</code>

<code>*.undo_tablespace=</code><code>'UNDOTBS1'</code>

修改完成後再進入RMAN,并把資料庫startup nomount 狀态

<code>SQL&gt; startup nomount pfile=</code><code>'D:\app\Administrator\product\11.2.0\dbhome_1\database\inithwprod.ora'</code> <code>;</code>

7、此時可以進行恢複控制檔案,找到源控制檔案備份相關檔案進行恢複:

<code>RMAN&gt; restore controlfile </code><code>from</code><code>'E:\data_backup\CTL_C-3279461817-20170427-01'</code><code>;</code>

 控制檔案恢複完成後,接下來把資料庫修改為MOUNT狀态:

8、檢視歸檔日志備份的狀态,其最大sequence為18437

<a href="https://s3.51cto.com/wyfs02/M01/92/BF/wKioL1kCq9iD2_ZfAAByIFANEqg849.png-wh_500x0-wm_3-wmp_4-s_737526331.png" target="_blank"></a>

<code>RMAN&gt; list backup </code><code>of</code> <code>archivelog </code><code>all</code><code>;</code>

9、進行資料檔案恢複:

<a href="https://s3.51cto.com/wyfs02/M00/92/C0/wKiom1kCq_-yIw2SAABhdEBsLc4501.png-wh_500x0-wm_3-wmp_4-s_2353016148.png" target="_blank"></a>

<code>RMAN&gt; run {</code>

<code>2&gt; </code><code>set</code> <code>until </code><code>sequence</code> <code>18437;</code>

<code>3&gt; restore </code><code>database</code><code>;</code>

<code>4&gt; }</code>

<a href="https://s1.51cto.com/wyfs02/M02/92/C0/wKiom1kCrCvjWLAZAABkEfhAIx0638.png-wh_500x0-wm_3-wmp_4-s_769031644.png" target="_blank"></a>

<code>3&gt; recover </code><code>database</code><code>;</code>

10、resetlogs 打開資料庫:

<a href="https://s3.51cto.com/wyfs02/M00/92/BF/wKioL1kCrEvg7uDAAABilW97oUs894.png-wh_500x0-wm_3-wmp_4-s_2642198968.png" target="_blank"></a>

<code>RMAN&gt; </code><code>alter</code> <code>database</code> <code>open</code> <code>resetlogs;</code>

11、檢視資料庫狀态:

<a href="https://s1.51cto.com/wyfs02/M01/92/BF/wKioL1kCrG6A8jsfAAAn1Dw1hOQ985.png-wh_500x0-wm_3-wmp_4-s_3311322287.png" target="_blank"></a>

12、添加系統資料庫SID:

<code>HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1</code>

<code>"ORACLE_SID"</code><code>=</code><code>"HWPROD"</code>

<a href="https://s2.51cto.com/wyfs02/M02/92/BF/wKioL1kCrInyb453AACszi3b0lU105.png-wh_500x0-wm_3-wmp_4-s_110264737.png" target="_blank"></a>

13、建立SPfile參數檔案

<code>SQL&gt; </code><code>create</code> <code>spfile </code><code>from</code> <code>pfile;</code>

 可以看到相關路徑已經建立新的參數檔案:

14、重新開機資料庫,是否以SPFILE啟動:

<code>SQL&gt; </code><code>select</code> <code>decode(</code><code>count</code><code>(*),1,</code><code>'spfile'</code><code>,</code><code>'pfile'</code><code>) </code><code>from</code> <code>v$spparameter </code><code>where</code>  <code>rownum=1 </code><code>and</code> <code>isspecified = </code><code>'TRUE'</code><code>;</code>

<a href="https://s5.51cto.com/wyfs02/M00/92/BF/wKioL1kCrKmTaOwvAABBARpmX7g209.png-wh_500x0-wm_3-wmp_4-s_258293320.png" target="_blank"></a>

15、修改listener.ora,tnsnames.ora

<a href="https://s3.51cto.com/wyfs02/M02/92/C1/wKiom1kCrMGRhv7SAABW38TJ9Lo572.png-wh_500x0-wm_3-wmp_4-s_3367438873.png" target="_blank"></a>

listener.ora

<code># listener.ora Network Configuration File:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora</code>

<code># Generated </code><code>by</code> <code>Oracle configuration tools.</code>

<code>SID_LIST_LISTENER =</code>

<code> </code><code>(SID_LIST =</code>

<code>   </code><code>(SID_DESC =</code>

<code>     </code><code>(GLOBAL_DBNAME = HWPROD)</code>

<code>     </code><code>(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)</code>

<code>     </code><code>(SID_NAME = HWPROD)</code>

<code>    </code><code>)</code>

<code>  </code><code>)</code>

<code>LISTENER =</code>

<code> </code><code>(DESCRIPTION =</code>

<code>   </code><code>(ADDRESS = (PROTOCOL = TCP)(HOST = ORATEST)(PORT = 1521))</code>

<code>ADR_BASE_LISTENER =D:\app\Administrator\product\11.2.0\dbhome_1\log</code>

tnsnames.ora

<code># tnsnames.ora Network Configuration File:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora</code>

<code>HWPROD =</code>

<code>   </code><code>(ADDRESS_LIST =</code>

<code>     </code><code>(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.25)(PORT = 1521))</code>

<code>   </code><code>(CONNECT_DATA =</code>

<code>     </code><code>(SERVICE_NAME = HWPROD)</code>

檢視監聽狀态:

<a href="https://s4.51cto.com/wyfs02/M02/92/BF/wKioL1kCrOLyBvRrAABjwHoBGzU386.png-wh_500x0-wm_3-wmp_4-s_3605661392.png" target="_blank"></a>

驗證資料,OK!

2018-01-16更新

參考:http://blog.itpub.net/29119536/viewspace-1171894/

本文轉自pimg200551CTO部落格,原文連結:http://blog.51cto.com/pimg2005/1920337 ,如需轉載請自行聯系原作者