1. windows恢复至windows
通过Rman备份数据方式为全备份命令:
Rman>rman database
备份包括两份文件,其中一个是数据文件,另一个为控制文件。还需要我们从源库中复制初始化文件(复制到目标数据库相应地方),其通常在%Oracle_Home%\database目录下SpfileXXX.ora。
其中Spfile需要按照备份数据库进行修改,但Spfile为二进制文件,需要先将其转换成pfile使用txt修改,命令为:
SQl>create pfile=‘存储路径’ from spfile(spfile以复制到相应目录)
创建之后打开pfile,如下所示:
orcl1234.__db_cache_size=188743680
orcl1234.__java_pool_size=12582912
orcl1234.__large_pool_size=4194304
orcl1234.__oracle_base='D:\app\Administrator'#ORACLE_BASE set from environment
orcl1234.__pga_aggregate_target=285212672
orcl1234.__sga_target=536870912
orcl1234.__shared_io_pool_size=0
orcl1234.__shared_pool_size=322961408
orcl1234.__streams_pool_size=0
*.audit_file_dest='D:\app\Administrator\admin\orcl1234\adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='D:\app\Administrator\oradata\orcl1234\control01.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl1234'
*.db_recovery_file_dest='D:\app\Administrator\flash_recovery_area'
*.db_recovery_file_dest_size=4039114752
*.diagnostic_dest='D:\app\Administrator'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orcl1234XDB)'
*.local_listener='LISTENER_ORCL1234'
*.memory_target=822083584
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
上面文件我已经修改好(我的%Oracle_home%为D:\app\Administrator\product\11.2.0\dbhome_1)
control_files路径可以多添加几个做备份。local_listener值为下面tnsnames.ora中的监听名字。
接下来需要配置监听service name与tnsnames.ora 要不然初始化时会出现错误。
tnsnames.ora Network Configuration File里需要添加:
LISTENER_OCRL1234 =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
ORCL1234 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl1234)
)
)
配置完成后要将pfile中更改local_listener='LISTENER_OCRL1234'‘;
listener.ora需要添加红色部分:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = orcl1234)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(SID_NAME = orcl1234)
)
(SID_DESC =
(GLOBAL_DBNAME = Oracle8)
(SID_NAME = ORCL)
)
)
注:OCRL1234是要恢复的数据库实例名或数据库名
其中listener.ora也可以通过DBCA来配置,具体方法就不讲了。
下面进入正题:
>ORADIM -NEW -SID ORCL1234
创建一个实例,注意此处实例名称与 源数据库相同!!!
>SET ORACLE_SID=ORCL1234
将当前实例设置为orcl1234
接下来连接到空实例进行pfile配置,命令见下图:
待初始化文件处理后启动不挂载数据库,进入RMAN,命令如下所示:
需要先获取源数据库文件的DBID,进入RAMN后set dbid=XXX,然后恢复控制文件到初始化文件指定目录,最后将数据库设置为挂载状态,这几步没有问题如下图:
接下来问题来了,