配置DG Broker的时候,发现多了几个参数。 使用dgmgrl的时候,发现也默认使用了SYSDG这个新的角色,而非SYSDBA [oracle@teststd dbs]$ dgmgrl / DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production Copyright (c) 2000, 2013, Oracle. All rights reserved. Welcome to DGMGRL, type "help" for information. Connected as SYSDG. 参数配置的时候,文件路径映射多了一个参数,那就是PDB相关的。 SQL> show parameter convert NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert string log_file_name_convert string pdb_file_name_convert string 数据库启动的时候也会打印出已有的patch 我还是使用以前的方式来搭建Active Data Guard,使用duplicate的方式。 rman target sys@testdb auxiliary sys@s2testdb nocatalog duplicate target database for standby from active database nofilenamecheck; 配置 DG Broker的简要步骤如下: DGMGRL> create configuration dg_testdb as > primary database is testdb > connect identifier is testdb; Configuration "dg_testdb" created with primary database "testdb" DGMGRL> enable configuration; Enabled. 如下加粗的部分是一些改动的地方,在一些细节之处都做了改进。 DGMGRL> show configuration; Configuration - dg_testdb Protection Mode: MaxPerformance Members: testdb - Primary database Warning: ORA-16789: standby redo logs configured incorrectly Fast-Start Failover: DISABLED Configuration Status: WARNING (status updated 1 second ago) DGMGRL> 简单修复备用日志,即添加了日志成员之后,再次查看就没有问题了。 DGMGRL> show configuration; Configuration - dg_testdb Protection Mode: MaxPerformance Members: testdb - Primary database Fast-Start Failover: DISABLED Configuration Status: SUCCESS (status updated 14 seconds ago) DGMGRL> 再次添加一个节点 DGMGRL> add database s2testdb as > connect identifier is s2testdb > maintained as physical; Database "s2testdb" added 启用数据库配置 DGMGRL> enable database s2testdb; Enabled. 再次查看配置,可以看到目前的状态还是稳定的。 DGMGRL> show configuration; Configuration - dg_testdb Protection Mode: MaxPerformance Members: testdb - Primary database s2testdb - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS (status updated 15 seconds ago) 对于网络情况的检测,更加细致,标红的是额外新增的一些信息。 对于DG Broker的命令,我认真对比了一下,发现12c里面多了一个validate. 这个命令的使用场景主要就是两个,语法如下: VALIDATE DATABASE [VERBOSE] <database name>; VALIDATE FAR_SYNC [VERBOSE] <far_sync name> [WHEN PRIMARY IS <database name>]; 备库洋洋洒洒的几个PDB。 先启动Active Data Guard SQL> select open_mode from v$database; OPEN_MODE ------------------------------------------------------------ MOUNTED 此时PDB还都是mount状态 SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED MOUNTED 3 TCYMOB0 MOUNTED 4 MACTVDB MOUNTED 启动备库 SQL> alter database open; Database altered. 稍等一下,备库就变为了READ ONLY WITH APPLY SQL> select open_mode from v$database;
OPEN_MODE ------------------------------------------------------------ READ ONLY WITH APPLY 此时还是需要单独去启动PDB了。 SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 TCYMOB0 MOUNTED 4 MACTVDB MOUNTED SQL> alter pluggable database tcymob0 open; Pluggable database altered. SQL> alter pluggable database MACTVDB open; Pluggable database altered. SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 TCYMOB0 READ ONLY NO 4 MACTVDB READ ONLY NO 从整体而言,整个搭建的过程没有花费太多时间,还是很顺利的。 关注DBAplus社群,了解更多技术干货文!