天天看点

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 ,如需转载请自行联系原作者