Oracle broker 详解

1,简介

01,介绍

Data Guard broker是建立在Data Guard基础上的一个对Data Guard配置,集中管理操作的一个平台.我们再上次DG主备切换的时候会发现特别麻烦,为此broker出来了。

02,DGbroker的三种保护模式

  – Maximum protection

在Maximum protection下, 可以保证从库和主库数据完全一样,做到zero data loss.事务同时在主从两边提交完成,才算事务完成。如果从库宕机或者网络出现问题,主从库不能通讯,主库也立即宕机。在这种方式下,具有最高的保护等级。但是这种模式对主库性能影响很大,要求高速的网络连接。

  – Maximum availability

在Maximum availability模式下,如果和从库的连接正常,运行方式等同Maximum protection模式,事务也是主从库同时提交。如果从库和主库失去联系,则主库自动切换到Maximum performance模式下运行,保证主库具有最大的可用性。

  – Maximum performance

在Maximum performance,主库把归档的 archived log通过arch进程传递给从库,在这种方式下,主库运行性能最高,但是不能保证数据不丢失,且丢失的数据受redo log的大小影响。在redo log过大的情况下,可能一天都没有归档一个日志,可以通过手工切换日志的方式来减小数据的丢失。

03,查看DGbroker的模式

show configuration verbose;

Oracle broker 详解

二,配置

01,配置监听,主库添加

  (SID_DESC =

    (GLOBAL_DBNAME=Oracle01_DGMGRL)

    (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)

    (SID_NAME =oracle01)

  )

lsnrctl  reload

02,备库配置监听

  (SID_DESC =

    (GLOBAL_DBNAME=standby_DGMGRL)

    (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)

    (SID_NAME =standby)

  )

lsnrctl  reload

03,主备配置操作

show parameter dg_broker_config_file

可以修改dg_broker_config_file参数。这里就用默认的路径,也可以自己指定。如果是在RAC环境中,这个把这个文件把到共享的存储上面,如果有ASM可以放到ASM中。

  启动broker

alter system set dg_broker_start=true;

Oracle broker 详解

04,主库操作

运行:
    dgmgrl

连接数据库
DGMGRL> connect sys/123456@oracle01

帮助命令
   
 DGMGRL>help create

创建 

 DGMGRL>create configuration dg as primary database is oracle01  connect identifier is oracle01;

如果发现创建出错,或者其他原因
可以执行
DGMGRL> remove configuration;
Removed configuration

启用配置文件

enable configuration

Oracle broker 详解

----------------------------------------------------------------------------------------------
如果是12G 出现 ORA-16698错误那可以通过在Primary 和 Standby上取消log_archive_dest_n参数来解决,
实际这一块的参数应当是交给DG broker 来管理了,不再需要人为介入设置。
  即执行: alter system set log_archive_dest_2='';
  然后继续执行:create configuration dg as primarydatabase is oracle01 connect identifier is oracle01

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

05,备库操作

DGMGRL> add database standby as connect identifier is standby;
Database "standby" added

DGMGRL>show configuration ----查看
 
Oracle broker 详解

06,查看详细配置

DGMGRL>show database verbose oracle01

DGMGRL>show database verbose standby

07,配置错误

DGMGRL> show database standby;

Database - standby

  Role:            PHYSICAL STANDBY
  Intended State:  APPLY-ON
  Transport Lag:  0 seconds (computed 81 seconds ago)
  Apply Lag:      (unknown)
  Apply Rate:      (unknown)
  Real Time Query: OFF
  Instance(s):
    standby
      Error: ORA-16797: database is not using a server parameter file

Database Status:
ERROR

是因为需要设置spfile的

SQL>  show parameter spfile

NAME                    TYPE    VALUE
------------------------------------ ----------- ------------------------------
spfile                    string
SQL>  create spfile from pfile;

File created.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 2505338880 bytes
Fixed Size            2255832 bytes
Variable Size          603980840 bytes
Database Buffers    1879048192 bytes
Redo Buffers          20054016 bytes
Database mounted.
Database opened.
SQL> show parameter spfile

NAME                    TYPE    VALUE
------------------------------------ ----------- ------------------------------
spfile                    string    /u01/app/oracle/product/11.2.0
                        /db_1/dbs/spfilestandby.ora
SQL>

08,错误2

DGMGRL> show configuration

Configuration - dg

  Protection Mode: MaxPerformance
  Databases:
    oracle01 - Primary database
    standby  - Physical standby database
      Error: ORA-16766: Redo Apply is stopped

Fast-Start Failover: DISABLED

Configuration Status:
ERROR

很清楚了,进程停

尝试启动:

DGMGRL> edit database 'standby' set state='apply-on';
Succeeded.

相关推荐