dg broker配置的问题及分析

今天在配置一个备库的时候碰到了一些问题,话说配置dg broker真没什么特别需要注意的细节了,本身已经给DBA省了很大的事儿了。
但是有时候就是会出现一些稀奇古怪的小问题。这个环境又非常重要,备库已经因为硬件故障报废了,现在刚搭的备库就想赶紧把它跑起来。
简单添加配置之后,spfile,防火墙,端口,listener等等因素都满足了。感觉就是一蹴而就的事情了。
但是show configuration的时候就是报错。
DGMGRL> show configuration;
Configuration - test_dg
  Protection Mode: MaxPerformance
  Databases:
    test   - Primary database
      Error: ORA-16778: redo transport error for one or more databases
    stest1 - Physical standby database
      Warning: ORA-16792: configurable property value is inconsistent with database setting
Fast-Start Failover: DISABLED
Configuration Status:
ERROR
对于这个问题,常规思路如果想得到更多的明细信息,直接使用verbose方式来查看。
查看主库的verbose信息
DGMGRL> show database verbose test;
Database - test
  Role:            PRIMARY
  Intended State:  TRANSPORT-ON
  Instance(s):  test
      Error: ORA-16737: the redo transport service for standby database "stest1" has an error
  Properties:
    DGConnectIdentifier             = 'test'
    ObserverConnectIdentifier       = ''
    LogXptMode                      = 'ASYNC'
    DelayMins                       = '0'
    Binding                         = 'optional'
    MaxFailure                      = '0'
    MaxConnections                  = '1'
    ReopenSecs                      = '300'
    NetTimeout                      = '30'
    RedoCompression                 = 'DISABLE'
    LogShipping                     = 'ON'
    PreferredApplyInstance          = ''
    ApplyInstanceTimeout            = '0'
    ApplyParallel                   = 'AUTO'
    StandbyFileManagement           = 'AUTO'
    ArchiveLagTarget                = '0'
    LogArchiveMaxProcesses          = '2'
    LogArchiveMinSucceedDest        = '1'
    DbFileNameConvert               = ''
    LogFileNameConvert              = ''
    FastStartFailoverTarget         = ''
    InconsistentProperties          = '(monitor)'
    InconsistentLogXptProps         = '(monitor)'
    SendQEntries                    = '(monitor)'
    LogXptStatus                    = '(monitor)'
    RecvQEntries                    = '(monitor)'
    SidName                         = 'test'
   
StaticConnectIdentifier         =
'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.127.65.111)(PORT=1535))(CONNECT_DATA=(SERVICE_NAME=test_DGMGRL)(INSTANCE_NAME=test)(SERVER=DEDICATED)))'
    StandbyArchiveLocation          = 'USE_DB_RECOVERY_FILE_DEST'
    AlternateLocation               = ''
    LogArchiveTrace                 = '0'
    LogArchiveFormat                = '%t_%s_%r.dbf'
    TopWaitEvents                   = '(monitor)'
Database Status:
ERROR
查看备库的verbose信息
DGMGRL> show database verbose stest1;
Database - stest1
  Role:            PHYSICAL STANDBY
  Intended State:  APPLY-ON
  Transport Lag:   (unknown)
  Apply Lag:       (unknown)
  Real Time Query: OFF
  Instance(s):  test
      Warning: ORA-16714: the value of property ArchiveLagTarget is inconsistent with the database setting
  Properties:
    DGConnectIdentifier             = 'stest1'
    ObserverConnectIdentifier       = ''
    LogXptMode                      = 'ASYNC'
    DelayMins                       = '0'
    Binding                         = 'optional'
    MaxFailure                      = '0'
    MaxConnections                  = '1'
    ReopenSecs                      = '300'
    NetTimeout                      = '30'
    RedoCompression                 = 'DISABLE'
    LogShipping                     = 'ON'
    PreferredApplyInstance          = ''
    ApplyInstanceTimeout            = '0'
    ApplyParallel                   = 'AUTO'
    StandbyFileManagement           = 'AUTO'
    ArchiveLagTarget                = '0'
    LogArchiveMaxProcesses          = '2'
    LogArchiveMinSucceedDest        = '1'
    DbFileNameConvert               = '/U01/app/oracle/oradata/test, /U01/app/oracle/oradata/test, /data/oracle/oradata/test, /U01/app/oracle/oradata/test, /other/app/oracle/oradata/test, /U01/app/oracle/oradata/test, +DATA, /U01/app/oracle/oradata/test, +ARCH, /U01/app/oracle/oradata/test'
    LogFileNameConvert              = '/U01/app/oracle/oradata/test, /U01/app/oracle/oradata/test, /data/oracle/oradata/test, /U01/app/oracle/oradata/test, /other/app/oracle/oradata/test, /U01/app/oracle/oradata/test, +DATA, /U01/app/oracle/oradata/test, +ARCH, /U01/app/oracle/oradata/test'
    FastStartFailoverTarget         = ''
    InconsistentProperties          = '(monitor)'
    InconsistentLogXptProps         = '(monitor)'
    SendQEntries                    = '(monitor)'
    LogXptStatus                    = '(monitor)'
    RecvQEntries                    = '(monitor)'
    SidName                         = 'test'
    StaticConnectIdentifier         = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.11.14.12)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=stest1_DGMGRL)(INSTANCE_NAME=test)(SERVER=DEDICATED)))'
    StandbyArchiveLocation          = 'USE_DB_RECOVERY_FILE_DEST'
    AlternateLocation               = ''
    LogArchiveTrace                 = '0'
    LogArchiveFormat                = '%t_%s_%r.dbf'
    TopWaitEvents                   = '(monitor)'
Database Status:
WARNING
我是横竖看了很多遍,实在是没找出哪里的配置不一致了。
对于这类问题,一般都是推荐查看主库的归档路径,是否出现了不一致,连接不通的问题,或者是db_unique_name的问题。
查看v$archive_dest发现,归档路径2确实显示有问题。
SQL> select dest_id,error from v$archive_dest;
   DEST_ID ERROR
---------- -----------------------------------------------------------------
         1
         2 ORA-16047: DGID mismatch between destination setting and target database
问题的原因说是DGID不匹配。那么来看看归档路径2,这个也是dg broker自动生成的,是在也没发现那里有问题。          
log_archive_dest_2                   string      service="stest1", LGWR ASYNC NO AFFIRM delay=0 optional compression=disable max_failure=0 max_connections=1 reopen=300 db_
                                                           unique_name="stest1" net_timeout=30, valid_for=(all_logfiles,primary_role)                                                                                      
查看备库dg broker的日志,发现报出了这么一段警告。但是原因未知。
11/18/2015 18:04:38
Warning: Property 'ArchiveLagTarget' has inconsistent values:METADATA='0', SPFILE='', DATABASE='0'
11/18/2015 18:05:14
Warning: Property 'ArchiveLagTarget' has inconsistent values:METADATA='0', SPFILE='', DATABASE='0'
11/18/2015 18:06:08

查看备库的alert日志,提示接收gap的归档存在问题,我就开始慌了,很重要的一套库,不能有任何闪失,要不又得重来一次了,真感觉实在是太酸爽了。
Error 12541 received logging on to the standby
Check whether the listener is up and running.
FAL[client, USER]: Error 12541 connecting to test for fetching gap sequence
Wed Nov 18 18:02:36 2015
FAL[client]: Failed to request gap sequence
 GAP - thread 1 sequence 460503-460515
 DBID 1210367666 branch 622336050
FAL[client]: All defined FAL servers have been attempted.
------------------------------------------------------------
Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization
parameter is defined to a value that's sufficiently large
enough to maintain adequate log switch information to retestve
archivelog gaps.
特别申明一下,这些操作都是在上午做的,如果没有发现有什么端倪,就可以继续往下看。
这个时候尝试重建dg broker文件。发现朱备库的dr的文件大小相同,但是时间戳不同。
这个时候查看备库的时间
$ date
Wed Nov 18 18:30:49 CST 2015
发现时间压根就不同步,要和主库的保持一致,还是使用nftp来做。
# /usr/sbin/ntpdate 192.168.131.132
18 Nov 10:32:17 ntpdate[48502]: step time server 192.168.131.132 offset -28854.645360 sec
时间修正之后,再次查看,就没有任何问题了。                                                         
DGMGRL> show configuration;
Configuration - test_dg
  Protection Mode: MaxPerformance
  Databases:
    test   - Primary database
    stest1 - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
这个问题也算是早上给自己的一个小警告,一个非常细小的问题就很可能造成很大的延误。所以环境的检查还是要细致,不能轻视。

时间: 2024-09-21 03:17:25

dg broker配置的问题及分析的相关文章

配置dg broker的问题分析及修复

最近从同事那儿接手了一套新环境,备库因为服务器问题已经下架,重新配了一台服务器,所以需要搭一套备库,主库已经配置好了,而且同事已经把在主库把dg broker配好了. 使用dgmgrl来验证,只有主库孤零零的在那儿. DGMGRL> show configuration; Configuration - dg_test   Protection Mode: MaxPerformance   Databases:     stest  - Primary database Fast-Start F

dg broker校验失败的一个奇怪问题(二)

对昨天提出的问题做了一个简单的分析和排查,也算是有了一个交代,上一篇文章在 dg broker校验失败的一个奇怪问题 http://blog.itpub.net/23718752/viewspace-2064499/ 我查看了最近的日志,发现在半个月以前有一行日志引起了我的注意. Thu Mar 03 17:32:12 2016 ALTER SYSTEM SET log_archive_dest_state_2='DEFER' SCOPE=BOTH; 关于这个DEFER的设置,让我想起了之前的一

Data Guard Broker系列之二:Data Guard Broker配置实战

配置之前DG环境状态 测试的DG环境安装在同一个机器上,当前两个数据库处于同步的状态,两个实例的名字分别是TORCLA和TORCLB,数据库的名字TORCL,数据库DB_DOMAIN设置为mycompany,其他的设置如下. listener.ora设置 L_dg=    (address=         (protocol=tcp)(host=orainst.desktop.mycompany.com)(port=8000)(queuesize=32)    )log_file_L_torc

dg broker校验失败的一个奇怪问题

前几天碰到一个看起来有些奇怪的例子,今天抽空把分析过程整理了一下. 有一主一备的一套测试环境,之前环境在我手里,交给另外一个同事之后,重新搭建了dataguard,我检查了一圈,发现都没有问题,然后过了一个星期的样子,无意中再次查看的时候,发现这个备库竟然在dg broker中的状态是disable,当然我也不能看到这个现象就反问同事,说当时dataguard怎么有这种低级操作问题.我想了想,根据我的印象,当时也确实是搭建成功了.这些天这个主库也从来没有任何的操作,zabbix也一直没有相关的报

聊聊Data Guard中的DG Broker

    DG Broker是Oracle为Data Guard维护提供的一个很不错的工具,从我的实际使用来看,早期的版本中似乎大家都还是存在一定的思维定式,认为手工维护已经足够了.这个工具就不那么需要了,我们完全可以脱离开这些工具来直观的使用命令行的方式来维护,这个观点也没错,不过从与时俱进的角度来看,本来能够让你更轻松的一个工具,如果不用实在是太可惜了.     DG Broker在数据库端需要启用一个后台进程dmon来维护,这个后台进程启动,需要设置dg_broker_start为true即

Oracle 11g Dataguard物理备库配置(三) Dataguard broker配置

1. 主库broker配置 1) 查询switchover状态 SQL> select database_role,switchover_status from v$database; DATABASE_ROLE    SWITCHOVER_STATUS ---------------- -------------------- PRIMARY          TO STANDBY 2) 查询dg_broker_start参数 SQL> show parameter dg_broker_st

一步一步搭建11gR2 rac+dg之DG 机器配置(七)

DG 机器配置   本文文档结构: 这一步的DG机器配置就相当于安装单实例的DB+ASM 一样,这里我把之前的文档内容直接拷贝过来了,也不做过多的解释了   安装之前的配置工作   检查硬件 在正式安装开始前,请先检查你的软硬件条件是否满足安装需要. 硬件上可以使用命令查看内存情况和 CPU 特性: #more /proc/meminfo #more /proc/cpuinfo 其中内存的要求是不低于 1G 下面的不是必须的,可选使用 #df –k /dev/shm 检查共享内存 #df –k

安装win7系统提示“无法更新启动配置”的故障原因分析及解决方法

  安装win7系统提示windows无法更新计算机的启动配置,安装无法继续,导致win7系统安装无法成功,具体问题现象如下图所示: 故障原因分析: 这个问题可能是有主引导记录引起的,所以修复方法也是以修复主引导记录为主. 解决方法: 1.把前面的200M的盘删了,和到c盘.格式化c盘.修复分区表.重建主引导记录(MBR); 2.再ghost系统到c盘; 3.或者因为你的启动盘没有拔下来,计算机从启动盘启动后跳转到硬盘启动,解决方法:复制完文件后,重启安装前及时取出启动盘或者设置为硬盘启动. 以

Linux精华 Tomcat配置技巧详解分析

1.配置系统管理(Admin Web Application) 大多数商业化的J2EE服务器都提供一个功能强大的管理界面,且大都采用易于理解的Web应用界面.Tomcat按照自己的方式,同样提供一个成熟的管理工具,并且丝毫不逊于那些商业化的竞争对手.Tomcat的Admin Web Application最初在4.1版本时出现,当时的功能包括管理context.data source.user和group等.当然也可以管理像初始化参数,user.group.role的多种数据库管理等.在后续的版