windows-oracle 11g dataguard with dgbroker

 

一: DG的配置

oracle dg 考验dba综合能力。首先明确3个知识点: SID, SERVICE_NAME,,DB_NAME, DB_UNIQUE_NAME

SID: 实例名,用于标识一个数据库的。oracle在启动的时候,会根据SID和 ORACLE_HOME hash 内存地址,可以观察pfile文件可以更加清晰:

这就是系统参数启动的时候sid,在安装数据库时候定义。注意,她在整个域里面并不是唯一标识。

 

service_name 服务名,pfile。spfile都可配置,可随时更改!!服务名注册到监听,然后请求数据库的信息才能由监听反馈到实例,dg 相互通信可以用服务名来区别2个不同的服务。

 

 DB_NAME:数据库名称,这个就是sid

DB_UNIQUE_NAME   数据库名称的全局唯一标识!!!,dg 就是靠这个来传送信息到standby的。 通常在tnsnames.ora 的连接标识符 用  DB_UNIQUE_NAME  表示,这样准确无误。

但是注意, tnsnames.ora的连接表示符,压根和db_unique_name 一点关系都没有

看GIS1,GIS2就是连接标识符。

 

有了上述知识开搞

配置pfile,pfile,pfile,重要的说三遍

 

 

---主库
DB_UNIQUE_NAME=gis1
LOG_ARCHIVE_CONFIG='DG_CONFIG=(gis1,gis2)'
LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/product/archive/dg1/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=gis1'
LOG_ARCHIVE_DEST_2='SERVICE=gis2 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=gis2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=10
FAL_SERVER=dg2
FAL_CLIENT=dg1
DB_FILE_NAME_CONVERT='gis2','gis1' 
LOG_FILE_NAME_CONVERT='/home/oracle/product/archive/','/home/oracle/product/archive/'
STANDBY_FILE_MANAGEMENT=AUTO

--备库

DB_NAME=dg1
DB_UNIQUE_NAME=dg2
LOG_ARCHIVE_CONFIG='DG_CONFIG=(dg1,dg2)'
LOG_ARCHIVE_DEST_1= 'LOCATION=/home/oracle/product/archive/dg2/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dg2'
LOG_ARCHIVE_DEST_2='SERVICE=dg1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)  DB_UNIQUE_NAME=dg1'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=10
FAL_SERVER=dg1
FAL_CLIENT=dg2
DB_FILE_NAME_CONVERT='dg1','dg2' 
LOG_FILE_NAME_CONVERT='/home/oracle/product/archive/dg1/','/home/oracle/product/archive/dg2/'
STANDBY_FILE_MANAGEMENT=AUTO

 

 

 

 

 

二:broker的 配置

 

1:主副都执行:

SQL> alter system set dg_broker_start = true;

System altered.


SQL>  show parameter dg_broker_start;

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
dg_broker_start                      boolean                TRUE

2:主监听配置静态监听
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
      (SID_DESC = 
      (GLOBAL_DBNAME = gis1.g5air) 
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1) 
      (SID_NAME = gis) 
       )
    
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = TEMP)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = D:\app\Administrator


3:副监听配置静态监听

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
      (SID_DESC = 
      (GLOBAL_DBNAME = gis2.g5air) 
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1) 
      (SID_NAME = gis) 
       )
      

  )


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = TEMP)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = D:\app\Administrator


4:主副都reload 监听


5:主进入dgmgrl

C:\Windows\system32>dgmgrl sys/qaz123
DGMGRL for 64-bit Windows: Version 11.2.0.3.0 - 64bit Production

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

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


6:配置dg broker

DGMGRL> create configuration 'ORADG-HA' as primary database is 'gis1' connect identifier is gis1;
已创建配置 "ORADG-HA", 其中主数据库为 "gis1"

DGMGRL> show configuration

配置 - ORADG-HA

  保护模式:        MaxPerformance
  数据库:
    gis1 - 主数据库

快速启动故障转移: DISABLED

配置状态:
DISABLED



7:添加备库

DGMGRL> add database 'gis2' as connect identifier is 'gis2' maintained as physical;
已添加数据库 "gis2"


DGMGRL> show configuration

配置 - ORADG-HA

  保护模式:        MaxPerformance
  数据库:
    gis1 - 主数据库
    gis2 - 物理备用数据库

快速启动故障转移: DISABLED

配置状态:
DISABLED


8:启用配置

DGMGRL> show configuration

配置 - ORADG-HA

  保护模式:        MaxPerformance
  数据库:
    gis1 - 主数据库
    gis2 - 物理备用数据库

快速启动故障转移: DISABLED

配置状态:
DISABLED

DGMGRL> enable configuration;
已启用。


DGMGRL> show configuration

配置 - ORADG-HA

  保护模式:        MaxPerformance
  数据库:
    gis1 - 主数据库
    gis2 - 物理备用数据库

快速启动故障转移: DISABLED

配置状态:
SUCCESS












1: 删除dgmgr


DGMGRL> show configuration;

配置 - DGORA11G

  保护模式:        MaxPerformance
  数据库:
    gis1 - 主数据库
    gis2 - 物理备用数据库 (禁用)

快速启动故障转移: DISABLED

配置状态:
SUCCESS

DGMGRL> disable CONFIGURATION;
已禁用。
DGMGRL>  show configuration;

配置 - DGORA11G

  保护模式:        MaxPerformance
  数据库:
    gis1 - 主数据库
    gis2 - 物理备用数据库

快速启动故障转移: DISABLED

配置状态:
DISABLED


DGMGRL> remove CONFIGURATION;
已移去配置
DGMGRL>
DGMGRL> show CONFIGURATION;
ORA-16532: Data Guard 中介配置不存在

配置详细资料不能由 DGMGRL 确定

 

三:切换

switchover:

dgmgr1>switchover to gis2

 

 

 failover:

 

disable gaurd:
备库执行:
SQL> alter database recover managed standby database finish force;
SQL> alter database commit to switchover to primary;
SQL> alter database open;

 

posted @ 2019-03-21 09:00  monkeybron  阅读(500)  评论(0编辑  收藏  举报