如何逐步配置 Oracle 11gR2 Active DataGuard
完成各种配置后,我们可以继续重复过程。
7、RMAN执行复制 操作
在以前的Oracle版本中有不同的构建物理备机的方法,并且这些方法是向后兼容的。也就是说,旧版本的standby构建方式在新版本下是可以的。而且有些方法具有比较强的实用场景。
11g Oracle引入了使用RMAN构建活动数据库的方法,可以在不关闭主数据库的情况下持续构建备用数据库。传统上需要单独准备的参数文件和控制文件也可以通过脚本方法来组织。
当备用实例启动时,我们只需设置db_name参数即可。其他Data Guard相关参数需要在RMAN执行期间配置。在之前的版本中,这些参数需要手动设置。
准备脚本:
运行{
从活动数据库复制目标数据库以用于备用
spfile
parameter_value_convert 'ora11g','ora11gsy'
设置db_unique_name='ora11gsy'
设置control_files='/u01/app/oradata/ORA11GSY/controlfile/ora11gsby01.ctl'
set db_file_name_convert='ORA11G','ORA11GSY'
set log_file_name_convert='ORA11G','ORA11GSY'
set log_archive_max_processes='5'
设置fal_client='ora11gsy'
设置fal_server='ora11g'
设置standby_file_management='AUTO'
设置log_archive_config='dg_config=(ora11g,ora11gsy) '
set log_archive_dest_2='service=ora11g async valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=ora11g';
>}
这里有几点需要注意:control_files是必须添加的,代表备库的控制文件方法。脚本中涵盖了其他 DG 相关参数。 Log_archive_dest_2中配置的valid_for项表示数据库仅在primary_role角色时才会向主库ora11g传输日志。
将脚本保存为文件 cr_standby_script.txt。
[oracle@SimpleLinux 数据库]$ ls -l | grep cr
-rw-r--r--。 1 oracle oinstall 653 4 月 13 日 13:31 cr_standby_script
启动 RMANRun 复制以连接目标和辅助设备。
[oracle@SimpleLinux dbs]$ rman nocatalog
恢复管理器:版本 11.2.0.4.0 - 于 2014 年 4 月 13 日 13:32:18 Sun 生产
版权所有 (c) 1982、2011,Oracle 和/或其附属公司。保留所有权利。
RMAN>连接目标sys/oracle@ora11g
连接到目标数据库:ORA11G(DBID=4239941846)
使用目标数据库控制文件而不是恢复目录
RMAN>连接辅助 sys/oracle@ora11gsy
连接辅助数据库:ORA11GSY(未挂载)
执行脚本:
RMAN> @cr_standby_script
< p>RMAN> run {2> 从活动数据库复制目标数据库作为备用数据库
3> spfile
4>parameter_value_convert 'ora11g','ora11gsy'
5>设置db_unique_name='ora11gsy'
6>设置control_files='/u01/app/oradata/ORA11GSY/controlfile/ora11gsby01.ctl'
7> 设置 db_file_name_convert='ORA11G','ORA11GSY'
8> 设置 log_file_name_convert='ORA11G','ORA11GSY'
9> 设置 log_archive_max_processes='5'
10>设置fal_client='ora11gsy'
11>设置fal_server='ora11g'
12>设置standby_file_management='AUTO'
13>设置 log_archive_config='dg_config=(ora11g,ora11gsy)'
14> 设置 log_archive_dest_2='service=ora11g async valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name =ora11g';
15> }
于 2014 年 4 月 13 日开始复制数据库
分配的通道:ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1 : SID=19 设备类型=DISK
(由于空间原因省略...)
输入数据文件副本 RECID=3 STAMP=844781878 文件名=/u01/app/ oradata/ORA11GSY/datafile/o1_mf_undotbs1_9mnjs068_.dbf
数据文件4切换到数据文件副本
输入数据文件副本RECID =4 STAMP=844781878 文件名=/u01/app/oradata/ORA11GSY/ datafile/o1_mf_users_9mnjs074_.dbf
于 2014 年 4 月 13 日完成复制数据库
RMAN> **文件结束**
脚本没有报错并执行成功。
8, DG测试
下面,我们检查一下立即安装DG效果。备侧可以登录数据库查看状态。
[oracle@SimpleLinux 数据库]$ env | grep ORACLE_SID
ORACLE_SID=ora11gsy
SQL> 从 v$database 选择名称、open_mode、database_role;
p>NAME OPEN_MODE DATABASE_ROLE
--------- -------------------- ------ ----------
ORA11G 安装物理备用
Stanby 默认保持挂载状态。主库此时状态如下:
SQL> select name, open_mode, database_role from v$database;
NAME OPEN_MODE DATABASE_ROLE
--- ----- - ------------------------------------
ORA11G READ WRITE PRIMARY p>
注意:我们根据scope=spfile修改主数据库数据。重新启动主数据库:
SQL>启动强制
ORACLE实例已启动。
系统全局区域总计372449280字节
固定大小1364732字节
变量大小 301993220 字节
数据库缓冲区 62914560 字节
重做缓冲区 6176768 字节
已安装数据库。
数据库已打开。
检查数据库DG传输情况,首先检查log_archive_dest状态。如果显示valid,则表示已建立连接。
SQL> select dest_id、dest_name、状态、绑定、归档器、目的地 from v$archive_dest;
DEST_ID DEST_NAME 状态绑定归档器目的地
---- ------ -------------------- --------- --------- ------ ---- ------------- --------------
1 LOG_ARCHIVE_DEST_1 有效强制 ARCH USE_DB_RECOVERY_FILE_DEST
2 LOG_ARCHIVE_DEST_2 有效可选 LGWR ora11gsy
同步状态,通过v$archived_log视图查看,注意applyed列。如果传到备端应用,数据会是Yes。
SQL> select sequence#, name, STANDBY_DEST, ARCHIVED, APPLIEDfrom v$archived_log wherestandby_dest='YES' order by sequence#;
SEQUENCE# NAME STANDBY_DEST ARCHIVED APPLIED
---------- ----- ----- ------------ -------- ------ ---
6 ora11gsy YES YES NO
7 ora11gsy YES YES NO
8 ora11gsy YES YES NO
要开始同步,在备用数据库中启动操作。应用是一个持续的过程。当我们开始连接操作时,必须添加disconnect from session命令,以便应用程序执行动作可以在后台执行。
SQL> 更改数据库恢复托管备用数据库使用当前日志文件断开会话;
数据库更改
主数据库中每个归档日志的应用状态如下:
SQL> select sequence#, name, STANDBY_DEST, ARCHIVED, APPLIED from v$archived_log wherestandby_dest='YES' order by sequence#;
SEQUENCE# NAME STANDBY_DEST ARCHIVED APPLIED
< p>-- -------- ---------- ------------ -------- -------- -6 ora11gsy 是是是是
7 ora11gsy 是是是
是 8 ora11gsy 是是是是
9 ora11gsy 是是否
< p>站在旁边的归档日志中也可以看到应用进程。SQL> 按序列# 从 v$archived_log 中选择序列#、名称、STANDBY_DEST、已归档、已应用;
SEQUENCE# NAME STANDBY_DEST 已归档应用
- -------------------------------------------------- ------------------------------------------------------------- - -------- ---------
6 /u01/app/fast_recovery_area/ORA11GSY/archivelog/2014_04_13/o1_mf_1_6_9nn99r20_.a 否 是 是
7 /u01/app/fast_recovery_area/ORA11GSY/archivelog/2014_04_13/o1_mf_1_7_9nn99k17_.a 否是是是
8 / u01/app /fast_recovery_area/ORA11GSY/archivelog/2014_04_13 /o1_mf_1_8_9nn99qff_.a 否是是
9 /u01/app/fast_recovery_area/ORA11GSY/archivelog/2014_04_13/o1_mf_1_9_9nn9zx yx_.a NO YES YES 在内存中 p>
同步成功!
9、同步测试
下面我们用一个简单的实验来验证数据库同步动作。在用户 scott 下创建数据库表。
SQL> conn scott/tiger@ora11g
连接到 Oracle Database 11g 企业版版本 11.2.0.4.0
以 scott 身份连接
< p>SQL> 创建表 t_psby as select * from dba_objects;创建表
SQL> select count(*) from t_psby;
COUNT(*)
----------
86032
切换到备库。挂载中无法读取状态。第一次需要打开数据库。 。但实验室失败了。
[oracle@SimpleLinux ~]$ sqlplus /nolog
SQL*Plus:2014 年 4 月 13 日 14:05:26 Sun 发布 11.2.0.4.0 版本
<版权所有 (c) 1982、2013,Oracle。保留所有权利。SQL> conn / as sysdba
已连接。
SQL> alter database open ;
alter database open< /p>
*
第 1 行出现错误:
ORA-10456: 无法打开备用数据库;媒体恢复会话可能正在进行
正在进行
我们当前处于应用程序日志同步状态。同步期间无法打开。我们需要先取消这个日志同步动作。
SQL> conn / as sysdba
已连接。
SQL> alter database Recovery 托管备用数据库取消;
数据库已更改。< /p>
SQL> alter database open;
数据库已更改。
已创建 Scott 用户数据表。
SQL> conn scott/tiger@ora11gsy
已连接。
SQL> select count(*) from t_psby;
COUNT(*)
----------
86032
向主库数据表添加数据并修改。
SQL> insert into t_psby select * from dba_objects;
插入 86032 行
SQL> commit;
提交完成
SQL> select count(*) from t_psby;
COUNT(*)
----------
172064
此时备库未同步。因为我们刚刚关闭了取消同步。接下来,启动同步过程并接受新数据。
SQL> 更改数据库使用当前日志文件恢复托管备用数据库与会话断开连接;
数据库已更改。
SQL> select open_mode from v$database;
SQL> select open_mode from v$database;
SQL> p> p>
OPEN_MODE
----------------------------------------
只读WITH APPLY
SQL> select count(*) from scott.t_psby;
COUNT(*)
----------< /p>
172064
同步成功!注意:在11g中,READ ONLY WITH APPLY状态意味着数据库Redo Log在同步期间也可以应用。如果是预之前的版本,需要将数据库恢复到mount状态。这是11g中的高级
这里分享了这篇关于“如何逐步配置Oracle 11gR2 Active DataGuard”的文章。希望以上内容能够给大家带来一些帮助,让大家能够学到更多的知识。如果您觉得文章不错,请转发出去,让更多的人看到。
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何逐步配置 Oracle 11gR2 Active DataGuard