【DATAGUARD 学习】使用duplicate 创建物理standby 数据库

使用手工建立物理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=AUTO

2  密码文件这里使用的是主库拷贝。这样保存所有的密码一致

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 sys/yang@orcldg
恢复管理器: 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  

时间: 2024-10-18 07:08:39

【DATAGUARD 学习】使用duplicate 创建物理standby 数据库的相关文章

Oracle Data Guard创建物理Standby数据库

Oracle Data Guard创建物理Standby数据库 创建物理备库 机器名 a1 a2 IP: 192.168.1.10 192.168.1.20 Net_Name a1 a2 SID a1 a2 DB_UNIQUE_NAME a1 a2 注:主节点上创建数据库a1,备节点上只安装oracle软件不创建任何数据库; 1.配置listener.ora 主节点listener.ora: SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBN

创建物理备用数据库

创建|数据|数据库   创建物理备用数据库 在创建物理备用数据库之前先查看主数据库的一些信息和对主数据库做好配置. 将主数据库置为FORCE LOGGING模式.在主数据库创建之后做如下操作: SQL>ALTER DATABASE FORCE LOGGING; 确认主数据库是归档的并定义好本地归档.如下: SQL >ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=e:\oracle\oradata\orcl\archive  MANDATORY' S

Oracle DG 物理Standby的创建步骤

一.创建备份 物理Standby数据库相当于Primary数据库在某个时间点的镜像复制,因此在创建物理Standby数据库之前,至少要有一份Primary数据库的完整备份. Oracle建议使用RMAN创建备份集,不过如果数据库规模不是太大,我个人更倾向于通过用户管理的方式创建备份集. 创建备份有三种方式: 1. RMAN 备份与恢复 -- 不需要shutdown 数据库 备份: $ rman target / RMAN> backup full format 'D:/FULL_%d_%T_%s

在单机上创建物理的Oracle9i standby数据库

oracle|创建|数据|数据库 说明:Oracle9i数据库的Data Guard 特性确保对数据进行完整的保护,是Oracle 9i的一个关键特性之一.Data Guard可以创建物理的Standby数据库,也可以创建逻辑的Standby数据库,还可以混合使用,灵活性比较强.这个文档是Fenng练习时候记下来的东西,谈不上是什么心得.*这不过是一份安装过程中的笔记而已* 如果对这个有更高的期望,或者想得到关于Oracle数据库的data guard 和Standby的更多信息,请参考官方的文

DataGuard逻辑备库创建(原创)

本文主要介绍将DataGuard的物理standby转换至逻辑standby,有关于物理standby的搭建可以参见 http://czmmiao.iteye.com/blog/911083搭建逻辑备库前的注意事项  初始化参数配置 初始化参数的修改并不仅仅只是在待创建的Standby数据库端创建,当前的Primary数据库甚至同一个Data Guard配置中的其他Standby数据库的初始化参数都有可能需要进行修改. 对于Primary数据库,至少需要新增一个LOG_ARCHIVE_DEST_

Oracle DG 管理影响物理Standby的主库事件

多数情况下,Primary数据库的修改会随着REDO数据传播到物理Standby数据库端并被应用,不需要在物理Standby端做额外的操作,不过根据实际配置的不同,也会有例外,有些操作不是没有被传播到Standby端,而是传播过去了,但不能正确执行,其中最常见的就是对表空间和日志文件的管理操作,下面通过实例逐一进行说明. 1.创建表空间或数据文件 初始化参数STANDBY_FILE_MANAGEMENT用来控制是否自动将Primary数据库增加表空间或数据文件的改动,传播到物理Standby数据

【DATAGUARD 学习】如何停止standby数据库

主库:ORCL  备库:TESTDG           一般的,停止standby数据库之前,要先停用primary库,如果直接停用standby库,可能导致primary库也直接shutdown(最大保护模式). 对于测试环境可以进行如下步骤:一 主库暂时取消向备库传输日志ORCL>alter system set log_archive_dest_state_2=defer;系统已更改.二 备库上停止redo应用:TESTDG>alter database recover managed

Oracle Dataguard如何配置物理standby

尽管网上有很多Oracle Dataguard的配置教程,但不难发现,很多采用的是rman duplicate这种方法,尽管此种方法较为简便.但在某种程度上,却也误导了初学者,虽说也能配置成功,但只知其然不知其所以然,Dataguard的本质没有吃透,也不利于其维护和调优. 本配置文档基于Oracle官方文档,目的在于加深大家对于Dataguard的了解. 本配置的结果是最大性能模式下的异步传输 ,因此在参数文件中,只涉及基本的主备参数,没有考虑switchover和最大性能模式下的real t

【DATAGUARD 学习】监控primary库和standby库

1 查看进程的活动状态. TESTDG>select process,status,thread#,sequence#,block#,blocks   2  from v$managed_standby; PROCESS   STATUS          THREAD#  SEQUENCE#     BLOCK#     BLOCKS              --------- ------------ ---------- ---------- ---------- ----------