本文共 6620 字,大约阅读时间需要 22 分钟。
使用手工建立物理standby 多少有些费事,利用oracle提供的duplicate 可以简单的完成创建物理standby 的工作!
一 环境:同一台主机 主库 orcl 备库 orcldg二 使用rman 备份主库
C:\Documents and Settings\Administrator>rman target / 复管理器: Release 11.1.0.6.0 - Production on 星期一 9月 20 10:56:30 2010 Copyright (c) 1982, 2007, Oracle. All rights reserved. 连接到目标数据库: ORCL (DBID=1256563399)RMAN>backup database format 'f:\backup\full_%U.bak'; ......RMAN>sql 'alter system switch logfile' ......RMAN>backup archivelog all; ...... RMAN>三 为备库建立参数文件,密码文件 ,配置监听文件 1 备库的参数文件: orcl.__db_cache_size=339738624 orcl.__java_pool_size=12582912 orcl.__large_pool_size=4194304 orcl.__oracle_base='F:\ORCL'#ORACLE_BASE set from environment orcl.__pga_aggregate_target=209715200 orcl.__sga_target=473956352 orcl.__shared_io_pool_size=0 orcl.__shared_pool_size=109051904 orcl.__streams_pool_size=0 *.audit_file_dest='F:\ORCL\admin\orcldg\adump' *.audit_trail='db' *.compatible='11.1.0.0.0' *.control_files='D:\oracle\orcldgdata\control01.ctl','D:\oracle\orcldgdata\control02.ctl','D:\oracle\orcldgdata\control03.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='orcl' *.db_unique_name='orcl' *.log_archive_config='DG_CONFIG=(orcl,orcldg)' *.log_archive_dest_1='LOCATION=F:\ORCL\archive1' *.log_archive_dest_2='SERVICE=ORCLDG ARCH VAILD_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME= orcl' *.log_archive_dest_state_2=defer *.db_recovery_file_dest='F:\ORCL\flash_recovery_area' *.db_recovery_file_dest_size=2147483648 *.diagnostic_dest='F:\ORCL' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' *.memory_target=681574400 *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.sga_max_size=471859200 *.undo_management='AUTO' *.undo_tablespace='UNDOTBS1' #------- 角色转变------- *.FAL_SERVER=ORCLDG *.FAL_CLIENT=ORCL *.DB_FILE_NAME_CONVERT='F:\ORCL\oradata\orcl','D:\oracle\orcldgdata' *.LOG_FILE_NAME_CONVERT='F:\ORCL\oradata\orcl','D:\oracle\orcldgdata' *.STANDBY_FILE_MANAGEMENT=AUTO2 密码文件这里使用的是主库拷贝。这样保存所有的密码一致
3 监听文件:
# listener.ora 的配置 SID_LIST_LISTENER= ( SID_LIST= (SID_DESC= (GLOGBAL_DBNAME=orcl) (ORCL_HOME= F:\ORCL\product\11.1.0\db_1) (SID_NAME=orcl) ) (SID_DESC = (GLOBAL_NAME = orcldg) (ORACLE_HOME = F:\ORCL\product\11.1.0\db_1) (SID_NAME= orcldg) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = yql)(PORT = 1521)) ) ) # tnsnames.ora 的配置ORCL =
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = yql)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )ORCLDG =
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = yql)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcldg) ) )四 启动备库到nomount
ORCLDG>startup nomount pfile='f:\initORCLDG.ora' ORACLE 例程已经启动。Total System Global Area 472887296 bytes
Fixed Size 1333956 bytes Variable Size 184550716 bytes Database Buffers 281018368 bytes Redo Buffers 5984256 bytes五 利用duplicate创建standby 数据库
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>rman target / auxiliary 恢复管理器: Release 11.1.0.6.0 - Production on 星期一 9月 20 10:56:30 2010 Copyright (c) 1982, 2007, Oracle. All rights reserved. 连接到目标数据库: ORCL (DBID=1256563399) 已连接到辅助数据库: ORCL (未装载) RMAN> duplicate target database for standby; 启动 Duplicate Db 于 20-9月 -10 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_AUX_DISK_1 通道 ORA_AUX_DISK_1: SID=152 设备类型=DISK 内存脚本的内容: { restore clone standby controlfile; sql clone 'alter database mount standby database'; } 正在执行内存脚本 启动 restore 于 20-9月 -10 使用通道 ORA_AUX_DISK_1 通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集 通道 ORA_AUX_DISK_1: 正在还原控制文件 通道 ORA_AUX_DISK_1: 正在读取备份片段 F:\ORCL\FLASH_RECOVERY_AREA\ORCL\AUTOBACKU P\2010_09_20\O1_MF_S_730205638_69FM6GN0_.BKP 通道 ORA_AUX_DISK_1: 段句柄 = F:\ORCL\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2010_0 9_20\O1_MF_S_730205638_69FM6GN0_.BKP 标记 = TAG20100920T105358 通道 ORA_AUX_DISK_1: 已还原备份片段 1 通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:01 输出文件名=D:\ORACLE\ORCLDGDATA\ORCLDG01.CTL 输出文件名=D:\ORACLE\ORCLDGDATA\ORCLDG02.CTL 输出文件名=D:\ORACLE\ORCLDGDATA\ORCLDG03.CTL 完成 restore 于 20-9月 -10 sql 语句: alter database mount standby database 内存脚本的内容: { set newname for tempfile 1 to "D:\ORACLE\ORCLDGDATA\TEMP01.DBF"; switch clone tempfile all; set newname for datafile 1 to "D:\ORACLE\ORCLDGDATA\SYSTEM01.DBF"; set newname for datafile 2 to "D:\ORACLE\ORCLDGDATA\SYSAUX01.DBF"; set newname for datafile 3 to "D:\ORACLE\ORCLDGDATA\UNDOTBS01.DBF"; set newname for datafile 4 to "D:\ORACLE\ORCLDGDATA\USERS01.DBF"; set newname for datafile 5 to "D:\ORACLE\ORCLDGDATA\EXAMPLE01.DBF"; restore clone database; } 正在执行内存脚本 正在执行命令: SET NEWNAME 临时文件 1 在控制文件中已重命名为 D:\ORACLE\ORCLDGDATA\TEMP01.DBF 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 正在执行命令: SET NEWNAME 启动 restore 于 20-9月 -10 使用通道 ORA_AUX_DISK_1 通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集 通道 ORA_AUX_DISK_1: 正在指定从备份集还原的数据文件 通道 ORA_AUX_DISK_1: 将数据文件 00001 还原到 D:\ORACLE\ORCLDGDATA\SYSTEM01.DBF 通道 ORA_AUX_DISK_1: 将数据文件 00003 还原到 D:\ORACLE\ORCLDGDATA\UNDOTBS01.DBF 通道 ORA_AUX_DISK_1: 将数据文件 00004 还原到 D:\ORACLE\ORCLDGDATA\USERS01.DBF 通道 ORA_AUX_DISK_1: 正在读取备份片段 F:\BACKUP\FULL_0LLOC0IO_1_1.BAK 通道 ORA_AUX_DISK_1: 段句柄 = F:\BACKUP\FULL_0LLOC0IO_1_1.BAK 标记 = TAG20100920 T100511 通道 ORA_AUX_DISK_1: 已还原备份片段 1 通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:45 通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集 通道 ORA_AUX_DISK_1: 正在指定从备份集还原的数据文件 通道 ORA_AUX_DISK_1: 将数据文件 00002 还原到 D:\ORACLE\ORCLDGDATA\SYSAUX01.DBF 通道 ORA_AUX_DISK_1: 将数据文件 00005 还原到 D:\ORACLE\ORCLDGDATA\EXAMPLE01.DBF 通道 ORA_AUX_DISK_1: 正在读取备份片段 F:\BACKUP\FULL_0MLOC0J0_1_1.BAK 通道 ORA_AUX_DISK_1: 段句柄 = F:\BACKUP\FULL_0MLOC0J0_1_1.BAK 标记 = TAG20100920 T100511 通道 ORA_AUX_DISK_1: 已还原备份片段 1 通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:45 完成 restore 于 20-9月 -10 内存脚本的内容: { switch clone datafile all; } 正在执行内存脚本 数据文件 1 已转换成数据文件副本 输入数据文件副本 RECID=6 STAMP=730205918 文件名=D:\ORACLE\ORCLDGDATA\SYSTEM01.DBF 数据文件 2 已转换成数据文件副本 输入数据文件副本 RECID=7 STAMP=730205918 文件名=D:\ORACLE\ORCLDGDATA\SYSAUX01.DBF 数据文件 3 已转换成数据文件副本 输入数据文件副本 RECID=8 STAMP=730205918 文件名=D:\ORACLE\ORCLDGDATA\UNDOTBS01.DBF 数据文件 4 已转换成数据文件副本 输入数据文件副本 RECID=9 STAMP=730205918 文件名=D:\ORACLE\ORCLDGDATA\USERS01.DBF 数据文件 5 已转换成数据文件副本 输入数据文件副本 RECID=10 STAMP=730205918 文件名=D:\ORACLE\ORCLDGDATA\EXAMPLE01.DBF完成 Duplicate Db 于 20-9月 -10六 验证是否能够应用日志主库上: ORCL>select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- 21 ORCL>ALTER SYSTEM SWITCH LOGFILE; 系统已更改。 ORCL>select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- 22 在备库上 ORCLDG>alter database recover managed standby database disconnect from session;数据库已更改。 ORCLDG>select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- 22
转载地址:http://wxhba.baihongyu.com/