zoukankan      html  css  js  c++  java
  • ORACLE 11G R2 DG_BROKER 之SWITCH OVER

     

    官网:http://docs.oracle.com/cd/B12037_01/server.101/b10822/cli.htm

    这个是有必要看一下.


    注意本人已经完毕一次SWITCHOVER 所以这次名字上有颠倒下. DBMAST眼下是备库,DBSALVE是主库 DBSALVE2异地备库临时没參与进来.

    主备的TNSNAME.ORA

     

    DBMAST =

     (DESCRIPTION =

       (ADDRESS_LIST =

         (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.200)(PORT = 1521))

        )

       (CONNECT_DATA =

         (SERVICE_NAME = DBMAST)

        )

      )

     

    DBSALVE2 =

     (DESCRIPTION =

       (ADDRESS_LIST =

         (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.203)(PORT = 1521))

        )

       (CONNECT_DATA =

         (SERVICE_NAME = DBSALVE2)

        )

      )

     

    DBSALVE =

     (DESCRIPTION =

       (ADDRESS_LIST =

         (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.202)(PORT = 1521))

        )

       (CONNECT_DATA =

         (SERVICE_NAME = DBSALVE)

        )

      )

     

    STBDGMGR =

      (DESCRIPTION =

        (ADDRESS_LIST =

          (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.0.202)(PORT = 1521))

        )

        (CONNECT_DATA = (SERVICE_NAME =DBSALVE_DGMGRL.shark.com)

        )

      )

     

    MABDGMGR =

      (DESCRIPTION =

        (ADDRESS_LIST =

          (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.0.200)(PORT = 1521))

        )

        (CONNECT_DATA =

          (SERVICE_NAME = DBMAST_DGMGRL.shark.com)

        )

      )

      

    备库监听

    [oracle@DB-MASTER ~]lsnrctl status

     

    LSNRCTL for Linux: Version 11.2.0.4.0 -Production on 20-4月 -2016 01:05:28

     

    Copyright (c) 1991, 2013, Oracle.  All rights reserved.

     

    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DB-MASTER)(PORT=1521)))

    LISTENER 的 STATUS

    ------------------------

    别名                      LISTENER

    版本号                      TNSLSNRfor Linux: Version 11.2.0.4.0 - Production

    启动日期                  19-4月 -201615:06:59

    正常运行时间              0 天 9 小时 58 分 29 秒

    跟踪级别                  off

    安全性                    ON: Local OS Authentication

    SNMP                      OFF

    监听程序參数文件         /u01/app/software/oracle/product/11.2.0/db_1/network/admin/listener.ora

    监听程序日志文件         /u01/app/software/oracle/diag/tnslsnr/DB-MASTER/listener/alert/log.xml

    监听端点概要...

     (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))

    服务摘要..

    服务 "DBMAST" 包括 1 个实例。

      实例"DBMAST", 状态 READY, 包括此服务的 1 个处理程序...

    服务 "DBMASTXDB" 包括 1 个实例。

      实例"DBMAST", 状态 READY, 包括此服务的 1 个处理程序...

    服务 "DBMAST_DGMGRL.shark.com" 包括 1 个实例。

      实例"DBMAST", 状态 UNKNOWN, 包括此服务的 1 个处理程序...

    命令运行成功

     

    [oracle@DB-MASTER admin]cat listener.ora

    # listener.ora Network Configuration File:/u01/app/software/oracle/product/11.2.0/db_1/network/admin/listener.ora

    # Generated by Oracle configuration tools.

     

    SID_LIST_LISTENER =

     (SID_LIST =

       (SID_DESC =

         (GLOBAL_DBNAME = DBMAST_DGMGRL.shark.com)

         (ORACLE_HOME = /u01/app/software/oracle/product/11.2.0/db_1)

         (SID_NAME = DBMAST)

        )

      )

     

    LISTENER =

     (DESCRIPTION =

       (ADDRESS = (PROTOCOL = TCP)(HOST = DB-MASTER)(PORT = 1521))

      )

     

    ADR_BASE_LISTENER =/u01/app/software/oracle

     

    主库监听

    [oracle@DB-Salve admin]cat listener.ora

    # listener.ora Network Configuration File:/u01/app/software/oracle/product/11.2.0/db_1/network/admin/listener.ora

    # Generated by Oracle configuration tools.

     

    SID_LIST_LISTENER =

     (SID_LIST =

        (SID_DESC =

         (GLOBAL_DBNAME = DBSALVE_DGMGRL.shark.com)

          (ORACLE_HOME =/u01/app/software/oracle/product/11.2.0/db_1)

          (SID_NAME = DBSALVE)

        )

       (SID_DESC =

         (GLOBAL_DBNAME = DBSALVE)

         (ORACLE_HOME = /u01/app/software/oracle/product/11.2.0/db_1)

         (SID_NAME = DBSALVE)

        )

      )

     

     

    LISTENER =

     (DESCRIPTION =

       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.202)(PORT = 1521))

      )

     

    ADR_BASE_LISTENER =/u01/app/software/oracle

     

    [oracle@DB-Salve admin]lsnrctl status

     

    LSNRCTL for Linux: Version 11.2.0.4.0 -Production on 20-4月 -2016 01:10:45

     

    Copyright (c) 1991, 2013, Oracle.  All rights reserved.

     

    正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.202)(PORT=1521)))

    LISTENER 的 STATUS

    ------------------------

    别名                      LISTENER

    版本号                      TNSLSNRfor Linux: Version 11.2.0.4.0 - Production

    启动日期                  19-4月 -201615:04:18

    正常运行时间              0 天 10 小时 6 分 26 秒

    跟踪级别                  off

    安全性                    ON: LocalOS Authentication

    SNMP                      OFF

    监听程序參数文件         /u01/app/software/oracle/product/11.2.0/db_1/network/admin/listener.ora

    监听程序日志文件         /u01/app/software/oracle/diag/tnslsnr/DB-Salve/listener/alert/log.xml

    监听端点概要...

     (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.202)(PORT=1521)))

    服务摘要..

    服务 "DBSALVE" 包括 1 个实例。

      实例"DBSALVE", 状态 UNKNOWN, 包括此服务的 1 个处理程序...

    服务 "DBSALVE_DGMGRL.shark.com" 包括 1 个实例。

      实例"DBSALVE", 状态 UNKNOWN, 包括此服务的 1 个处理程序...

    命令运行成功

     

    主备都要使用SPFILE启动

    SQL> setlinesize 1000

    SQL> showparameter spfile

     

    NAME                                                TYPE                                         VALUE

    --------------------------------------------------------------------- ------------------------------------------------------------------------------------------

    spfile                                                   string                                /u01/app/software/oracle/product/11.2.0/db_1/dbs/spfileDBSALVE.ora

     

    注意主备库的唯一命名 而且db_unique_name 大写和小写敏感

    SQL> showparameter db_unique_name

     

    NAME                                                TYPE                                         VALUE

    --------------------------------------------------------------------- ------------------------------

    db_unique_name                                        string                                       DBSALVE

     

    SQL> show  parameter db_unique_name

     

    NAME                                                TYPE                                         VALUE

    --------------------------------------------------------------------- ------------------------------

    db_unique_name                                        string                                       DBMAST

     

    主备启动DG BROKER 进程

    Alter system set dg_broker_start=truescope=both;

     

    SQL> show parameter dg

    NAME                       TYPE                    VALUE

    --------------------------------------------------------------------- ------------------------------

    dg_broker_config_file1          string      /u01/app/software/oracle/product/11.2.0/db_1/dbs/dr1DBMAST.dat

    dg_broker_config_file2          string      /u01/app/software/oracle/product/11.2.0/db_1/dbs/dr2DBMAST.dat

    dg_broker_start                 boolean     TRUE

     

    主备要处于最大可用模式

    Set linesize 1000

    col db_unique_nameformat  a15

    col open_modeformat  a20

    col flashback_onformat a15

    col database_roleformat a20

    coldataguard_broker format a20

    col protection_modeformat a25

    colswitchover_status format a25

     

    主库

    SQL>

    selectDB_UNIQUE_NAME,open_mode,FLASHBACK_ON,DATABASE_ROLE,DATAGUARD_BROKER,PROTECTION_MODE,SWITCHOVER_STATUSfrom v$database;

     

    DB_UNIQUE_NAME  OPEN_MODE               FLASHBACK_ON          DATABASE_ROLE        DATAGUARD_BROKER    PROTECTION_MODE                     SWITCHOVER_STATUS

    ------------------------------ --------------- --------------- --------------------------------------------- -------------------------

    DBSALVE         READ WRITE   NO                      PRIMARY       DISABLED             MAXIMUMAVAILABILITY      SESSIONS ACTIVE

     

    备库

    SQL> selectDB_UNIQUE_NAME,open_mode,FLASHBACK_ON,DATABASE_ROLE,DATAGUARD_BROKER,PROTECTION_MODE,SWITCHOVER_STATUSfrom v$database;

     

    DB_UNIQUE_NAME  OPEN_MODE                    FLASHBACK_ON    DATABASE_ROLE          DATAGUARD_BROKER    PROTECTION_MODE                       SWITCHOVER_STATUS

    ----------------------------------- --------------- -------------------- --------------------------------------------- -------------------------

    DBMAST                        READ ONLY WITH APPLY NO                  PHYSICAL STANDBY       DISABLED         MAXIMUM AVAILABILITY              NOT ALLOWED

     

    SQL> showparameter log_archive_

     

    NAME                                                TYPE                                         VALUE

    --------------------------------------------------------------------- ------------------------------

    log_archive_config                       string                                       dg_config=(DBMAST,DBSALVE,DBSALVE2)

    log_archive_dest                           string

    log_archive_dest_1                      string                                       LOCATION=/u05/arch_backup

    log_archive_dest_2                      string                                       SERVICE=DBMAST lgwr sync affirmvalid_for=(online_logfiles,primary_role) db_unique_name=DBMAST

     

    备库日志传输

    NAME                                                TYPE                                         VALUE

    --------------------------------------------------------------------- ------------------------------

    log_archive_config                       string                                       dg_config=(DBMAST,DBSALVE,DBSALVE2)

    log_archive_dest                           string

    log_archive_dest_1                      string                                      LOCATION=/u05/arch_backup

    log_archive_dest_2                      string                                       SERVICE=DBSALVE lgwr sync affirmvalid_for=(online_logfiles, primary_role) db_unique_name=DBSALVE

     

    进入DG MGR 管理接口

    [oracle@DB-Salve~]dgmgrl

    DGMGRL for Linux:Version 11.2.0.4.0 - 64bit Production

    Copyright (c) 2000,2009, Oracle. All rights reserved.

    欢迎使用 DGMGRL, 要获取有关信息请键入 "help"。

    DGMGRL>

     

    连接主库

    DGMGRL> connectsys/oracle@DBSALVE;

    已连接。

     

    创建配置文件

    语法:

     

      CREATE CONFIGURATION <configurationname> AS

        PRIMARY DATABASE IS <database name>   --主库的DB_UNIQUE_NAME

    CONNECT IDENTIFIER IS <connect identifier>; --主库的TNS_NAME

     

    DGMGRL> CREATECONFIGURATION 'DG_BROKER_SALVE' AS PRIMARY DATABASE IS 'DBSALVE' CONNECTIDENTIFIER IS STBDGMGR;

    已创建配置 "DG_BROKER_SALVE", 当中主数据库为 "DBSALVE"

    DGMGRL> showconfiguration;

    配置 - DG_BROKER_SALVE

      保护模式:   MaxAvailability

      数据库:

        DBSALVE - 主数据库

    高速启动故障转移: DISABLED

    配置状态:

    DISABLED

     

    加入standby database到配置

    DGMGRL> ADDDATABASE 'DBMAST' AS CONNECT IDENTIFIER IS 'MABDGMGR' MAINTAINED AS PHYSICAL;

    已加入数据库 "DBMAST"

     

    显示数据库属性

    DGMGRL> SHOWDATABASE VERBOSE 'DBMAST';

     

    数据库 - DBMAST

     

      角色:          PHYSICAL STANDBY

      预期状态:    OFFLINE

      传输滞后:    (未知)

      应用滞后:    (未知)

      应用速率:    (未知)

      实时查询:    OFF

      实例:

        DBMAST

     

      属性:

        DGConnectIdentifier             = 'MABDGMGR'

        ObserverConnectIdentifier       = ''

        LogXptMode                      = 'SYNC'

        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          = '4'

        LogArchiveMinSucceedDest        = '1'

        DbFileNameConvert               = ''

        LogFileNameConvert              = ''

        FastStartFailoverTarget         = ''

        InconsistentProperties          = '(monitor)'

        InconsistentLogXptProps         = '(monitor)'

        SendQEntries                    = '(monitor)'

        LogXptStatus                    = '(monitor)'

        RecvQEntries                    = '(monitor)'

        ApplyLagThreshold               = '0'

        TransportLagThreshold           = '0'

        TransportDisconnectedThreshold  = '30'

        SidName                         = 'DBMAST'

        StaticConnectIdentifier         ='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DB-MASTER)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DBMAST_DGMGRL)(INSTANCE_NAME=DBMAST)(SERVER=DEDICATED)))'

        StandbyArchiveLocation          = '/u05/arch_backup'

        AlternateLocation               = ''

        LogArchiveTrace                 = '0'

        LogArchiveFormat                = '%t_%s_%r.archlog'

        TopWaitEvents                   = '(monitor)'

     

    数据库状态:

    DISABLED

     

    编辑数据库连接属性

     

    DGMGRL> EDITDATABASE 'DBMAST' SET PROPERTY

    'StaticConnectIdentifier'='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.200)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DBMAST_DGMGRL.shark.com)(INSTANCE_NAME=DBMAST)(SERVER=DEDICATED)))';

    已更新属性"StaticConnectIdentifier"

     

    EDIT DATABASE'DBSALVE' SET PROPERTY

    'StaticConnectIdentifier'='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.202)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DBSALVE_DGMGRL.shark.com)(INSTANCE_NAME=DBSALVE)(SERVER=DEDICATED)))';

     

    有效配置文件 (须要一段时间)

    DGMGRL>  ENABLE CONFIGURATION;

    已启用。

    開始连接到备库

    DGMGRL> connectsys/oracle@DBMAST;

    已连接。

    DGMGRL> showconfiguration;

    配置 - DG_BROKER_SALVE

     

      保护模式:   MaxAvailability

      数据库:

        DBSALVE - 主数据库

        DBMAST - 物理备用数据库

     

    高速启动故障转移: DISABLED

     

    配置状态:

    SUCCESS

    注意 这里会报非常多错误具体见FAQ

    DGMGRL>switchover to 'DBMAST';

    马上运行切换, 请稍候...

    新的主数据库 "DBMAST" 正在打开...

    操作要求启动实例 "DBSALVE" (在数据库 "DBSALVE" 上)

    正在启动实例 "DBSALVE"...

    ORA-32004: obsoleteor deprecated parameter(s) specified for RDBMS instance

    ORACLE 例程已经启动。

    数据库装载完毕。

    数据库已经打开。

    切换成功, 新的主数据库为 "DBMAST"

    DGMGRL> showconfiguration;

     

    配置 - DG_BROKER_SALVE

     

      保护模式:   MaxAvailability

      数据库:

        DBMAST - 主数据库

        DBSALVE - 物理备用数据库

     

    高速启动故障转移: DISABLED

     

    配置状态:

    SUCCESS

     

     

     

    FAQ

    1

    DGMGRL>switchover to 'DBMAST';

    马上运行切换, 请稍候...

    新的主数据库 "DBMAST" 正在打开...

    操作要求启动实例 "DBSALVE" (在数据库 "DBSALVE" 上)

    正在启动实例 "DBSALVE"...

    无法连接到数据库

    ORA-12521: TNS: 监听程序当前无法识别连接描写叙述符中请求的实例

     

    失败。

    警告: 您不再连接到 ORACLE。

     

    请运行下面步骤以完毕切换:

                  启动实例 "DBSALVE" (属于数据库 "DBSALVE")

     

    这个问题应该属于DBSALVE 连接属性 的INSTAN_NAME写错了

     

    2

    DGMGRL> show configuration;

    配置 - dg_broker_mast

     保护模式:   MaxPerformance

      数据库:

        dbmast  - 主数据库

        dbsalve - 物理备用数据库 (禁用)

    高速启动故障转移: DISABLED

    配置状态:

    SUCCESS

    DGMGRL> enable database dbsalve;

    已启用。

    DGMGRL> show configuration;

    配置 - dg_broker_mast

      保护模式:   MaxPerformance

      数据库:

        dbmast  - 主数据库

        dbsalve - 物理备用数据库

          错误: ORA-16664: 无法从数据库接收结果

    高速启动故障转移: DISABLED

    配置状态:

    ERROR

    要连接到备库 CONNECT SYS/ORACLE@DBSALVE

     

    3

    DGMGRL> enable configuration;

    已启用。

    DGMGRL> show configuration

    配置 - dg_borker_mast_conf

      保护模式:   MaxAvailability

      数据库:

        dbmast - 主数据库

          警告: ORA-16629: 数据库报告的保护级别与保护模式的保护级别不同

    高速启动故障转移: DISABLED

    配置状态:

    WARNING

     

    alter system set log_archive_dest_2

    ='SERVICE=DBSALVE lgwr sync affirmvalid_for=(online_logfiles,primary_role) db_unique_name=DBSALVE' scope=both;

    改动对应的參数为:LGWR  SYNC  AFFIRM

     

    4

    DGMGRL> show configuration

    配置 - dg_borker_mast_conf

      保护模式:   MaxAvailability

      数据库:

        dbmast  - 主数据库

        dbsalve - 物理备用数据库

          警告: ORA-16792: 可配置属性的值与数据库设置不一致

    高速启动故障转移: DISABLED

    配置状态:

    WARNING

     

    DGMGRL> show database dbsalve statusreport;

    STATUS REPORT

           INSTANCE_NAME   SEVERITY ERROR_TEXT

                 DBSALVE    WARNING ORA-16714: 属性 ArchiveLagTarget 的值与数据库设置不一致

                 DBSALVE    WARNING ORA-16714: 属性 LogArchiveMaxProcesses 的值与数据库设置不一致

                 DBSALVE    WARNING ORA-16714: 属性 LogArchiveMinSucceedDest 的值与数据库设置不一致

                 DBSALVE    WARNING ORA-16714: 属性 LogArchiveTrace 的值与数据库设置不一致

                 DBSALVE    WARNING ORA-16714: 属性 LogArchiveFormat 的值与数据库设置不一致

    显示下备库眼下的属性值,竟然跟数据库參数一直的,Why 还要报错呢?

    DGMGRL> show database dbsalve ArchiveLagTarget

                  ArchiveLagTarget = '0'

    DGMGRL> show database dbsalve LogArchiveMaxProcesses

                  LogArchiveMaxProcesses = '4'

    DGMGRL> show database dbsalve LogArchiveFormat

                  LogArchiveFormat = '%t_%s_%r.archlog'

    DGMGRL> show database dbsalve LogArchiveMinSucceedDest

                  LogArchiveMinSucceedDest = '1'

     

    编辑属性,同步下使得配置文件跟数据库參数一致

    DGMGRL> edit database dbsalve set property ArchiveLagTarget='0';

    已更新属性 "archivelagtarget"

     

     

    5 切换演练

    DGMGRL> switchover to dbsalve;

    马上运行切换, 请稍候...

    操作要求连接实例 "DBSALVE" (在数据库"dbsalve" 上)

    正在连接实例 "DBSALVE"...

    无法连接到数据库

    ORA-12514: TNS: 监听程序当前无法识别连接描写叙述符中请求的服务

    失败。

    警告: 您不再连接到 ORACLE。

         连接到实例 "DBSALVE" (属于数据库 "dbsalve")

     

    这主要是TNS_NAME里的配置不合理.要在TNS_NAME里加入个特别的TNS

    比方说DBSALVEBR= SEVRICE_NAMES=(DBSALVE_DGMGRL.SHARK.COM)

    同一时候要更新配置里的数据库属性的

    DGConnectIdentifier            = 'dbsalve'

    DGConnectIdentifier            =’DBSALVEBR’

     

     

    6 切换失败

    DGMGRL> showconfiguration;

    配置 - DG_BROKER_SALVE

      保护模式:   MaxAvailability

      数据库:

        DBSALVE - 主数据库

        DBMAST - 物理备用数据库

    高速启动故障转移: DISABLED

    配置状态:

    ORA-16597: DataGuard 中介检測到两个或多个主数据库

    ORA-16625: 无法訪问数据库 "DBSALVE"

    DGM-17017: 无法确定配置状态

     

    你发现它已经切换了主备的角色,当备库变成主库的时候,还是MOUNT状态, 而主库变备库的时候,shutdown后无法startup.

    然后手工把主备起来. 而配置文件依然无法从新的主备中获取状态.

    之所以无法成功 由于StaticConnectIdentifier写错了实列名.

     

    配置状态无法继续,也无法无效,无法REMOVE. 那么关闭主备的DGBROKER进程. 同一时候把主备的两个配置文件移走.

    又一次启动DG BROKER进程.又一次配,配置文件.

     

    7 DB_UNQIUE_NAME 大写的时候

     1加入 主备库的时候要用单引號 引起 ‘DBMAST’

    2 使用配置数据库名的时候也要单引號引起  

    switchover to ‘DBSALVE’

    show database ‘DBSALVE’ statusreport;

  • 相关阅读:
    JZYZOJ1311 邮局设置问题 dp
    备忘录和乱七八糟的体会
    Python strip、lstrip和rstrip的用法
    Linux jstack命令详解
    Linux EOF使用
    Linux 千万不要执行的10个命令
    Linux 浅谈Linux 操作系统的安全设置
    linux 使用 ionice 限制 Xen 虚拟机磁盘 IO
    Linux 实现rsyslog日志里面的IP地址记录 未测试
    linux 回收站的添加
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8371396.html
Copyright © 2011-2022 走看看