ITPub博客

首页 > 数据库 > Oracle > 逻辑Data Guard 中 Standby启动实时应用没效果 怎么办

逻辑Data Guard 中 Standby启动实时应用没效果 怎么办

原创 Oracle 作者:静以致远√团团 时间:2014-03-11 09:24:00 0 删除 编辑

逻辑Stannby无法启动实时应用的解决思路:

 

首先需要做的是查看一下DG环境中的启动模式,SQL实时应用支持在最高性能和最大可用模式,不支持在最大保护模式的环境中;因为最大保护模式为确保不丢失任何数据,primary上的事务在commit前必须确认REDO已经传递到至少一个standby上。

 

查看DG的模式:

SQL> set sqlprompt 'PRIMARY > '

PRIMARY > select NAME,DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;

 

NAME      DATABASE_ROLE    PROTECTION_MODE      PROTECTION_LEVEL

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

ORCL      PRIMARY          MAXIMUM AVAILABILITY RESYNCHRONIZATION

 

当前的为模式MAXIMUM AVAILABILITY(最大可用模式),无需修改,若发现为MAXIMIZE PROTECTION(最大保护模式),需启动数据库到mount状态修改一下数据库的模式:

 

PRIMARY > shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

 

PRIMARY > startup mount

ORACLE instance started.

Total System Global Area  167772160 bytes

Fixed Size                  1218316 bytes

Variable Size              62916852 bytes

Database Buffers          100663296 bytes

Redo Buffers                2973696 bytes

Database mounted.

 

PRIMARY > alter database set standby database to maximize availability;

Database altered.

最大性能模式对应的是maximize performance

 

PRIMARY > select NAME,DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;

 

NAME      DATABASE_ROLE    PROTECTION_MODE      PROTECTION_LEVEL

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

ORCL      PRIMARY          MAXIMUM AVAILABILITY UNPROTECTED

 

PRIMARY > alter database open;

Database altered.

 

查看日志传输方式:确保由LGWR传输日志至STANDBY

 

PRIMARY > select DEST_NAME,STATUS,TYPE,ARCHIVER from v$archive_dest;

DEST_NAME                                STATUS    TYPE    ARCHIVER

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

LOG_ARCHIVE_DEST_1                       VALID     PUBLIC  ARCH

LOG_ARCHIVE_DEST_2                       VALID     PUBLIC  LGWR

LOG_ARCHIVE_DEST_3                       INACTIVE  PUBLIC  ARCH

LOG_ARCHIVE_DEST_4                       INACTIVE  PUBLIC  ARCH

LOG_ARCHIVE_DEST_5                       INACTIVE  PUBLIC  ARCH

LOG_ARCHIVE_DEST_6                       INACTIVE  PUBLIC  ARCH

LOG_ARCHIVE_DEST_7                       INACTIVE  PUBLIC  ARCH

LOG_ARCHIVE_DEST_8                       INACTIVE  PUBLIC  ARCH

LOG_ARCHIVE_DEST_9                       INACTIVE  PUBLIC  ARCH

LOG_ARCHIVE_DEST_10                      INACTIVE  PUBLIC  ARCH

PRIMARY > show parameter archive_dest;

 

NAME                                 TYPE        VALUE

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

log_archive_dest                     string

log_archive_dest_1                   string      location=/u01/log/arch_locatio

                                                 n

log_archive_dest_10                  string

log_archive_dest_2                   string      service=orcl_s_tns lgwr valid_

                                                 for=(online_logfiles,primary_r

                                                 ole) db_unique_name=orcl_std

log_archive_dest_3                   string

log_archive_dest_4                   string

log_archive_dest_5                   string

log_archive_dest_6                   string

 

如发现不是LGWR,而是ARCH传输,需修改一下日志传输方式:

 

SQL> alter system set log_archive_dest_2='service=orcl_s_tns lgwr valid_for=(online_logfiles,primary_role) db_unique_name=orcl_std';

 

System altered.

 

细节方便可以根据以下视图查看SQL应用信息:

 

v$logstdby_state

SQL> select * from v$logstdby_state;

 

PRIMARY_DBID SESSION_ID REALTIME_APPLY       STATE

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

  1369377775          1 Y                    APPLYING

 

dba_logstdby_events记录逻辑standby的操作日志,默认情况下记录一百条消息

SQL> desc dba_logstdby_events;

 Name                                      Null?    Type

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

 EVENT_TIME                                         DATE

 EVENT_TIMESTAMP                                    TIMESTAMP(6)

 CURRENT_SCN                                        NUMBER

 COMMIT_SCN                                         NUMBER

 XIDUSN                                             NUMBER

 XIDSLT                                             NUMBER

 XIDSQN                                             NUMBER

 EVENT                                              CLOB

 STATUS_CODE                                        NUMBER

 STATUS                                             VARCHAR2(2000)

 

dba_logstdby_log记录当前重做日志应用情况

SQL> desc dba_logstdby_log;

 Name                                      Null?    Type

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

 THREAD#                                   NOT NULL NUMBER

 RESETLOGS_CHANGE#                         NOT NULL NUMBER

 RESETLOGS_ID                              NOT NULL NUMBER

 SEQUENCE#                                 NOT NULL NUMBER

 FIRST_CHANGE#                             NOT NULL NUMBER

 NEXT_CHANGE#                                       NUMBER

 FIRST_TIME                                         DATE

 NEXT_TIME                                          DATE

 FILE_NAME                                          VARCHAR2(513)

 TIMESTAMP                                          DATE

 DICT_BEGIN                                         VARCHAR2(3)

 DICT_END                                           VARCHAR2(3)

 APPLIED                                            VARCHAR2(8)

等等..

温馨提示:重启系统后别忘了开监听…

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29320885/viewspace-1107156/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
每个人都有梦想,去实现吧!

注册时间:2013-11-14

  • 博文量
    164
  • 访问量
    2191434