Oracle DG环境的日常巡检

0    347    1

Tags:

👉 本文共约8206个字,系统预计阅读时间或需31分钟。

目录

1、DG环境的日常巡检

1.1、主库环境检查

1.1.1、主库实例启动状态检查

操作命令:

SQL> select instance_name,status from v$instance;

操作结果:

INSTANCE_NAMESTATUS

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

cs02OPEN

操作说明:如果主库在对外提供服务,那其实例状态应一定是OPEN的。

1.1.2、主库启动模式检查

操作命令:

SQL> select name,open_mode from v$database;

操作结果:

NAMEOPEN_MODE


CS02READ WRITE

操作说明:如果主库在对外提供服务,那其数据库状态应一定是READ WRITE的。

1.1.3、主库DG环境的保护模式检查

操作位置:主库

操作命令:

SQL> select database_role, protection_mode, protection_level from v$database;

操作结果:

DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL


PRIMARY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE

1.1.4、主库用于控制日志同步的参数检查

操作命令:

SQL> show parameter log_archive_dest_2

操作结果:

NAMETYPEVALUE


log_archive_dest_2stringservice=cs01 valid_for=(online_logfiles,primary_role) db_unique_name=cs01

操作说明:

通过该参数设置的网络服务名,主库能够找到该DG环境当中的备库,通过将主库的归档日志同步到备库;

查询结果并没有看到lgwr/arch、sync/async、affirm/noaffirm的参数设置,说明当前主库没有对这三个参数进行设置,当前使用的是默认设置,即:arch、async、noaffirm的设置。

1.1.5、主库查看是否开启强制日志功能

操作命令:

SQL> select name,force_logging from v$database;

操作结果:

NAMEFOR


CS02YES

操作说明:

DG环境下主库要求必须开启强制日志功能,如果发现状态是NO,需要手动执行下面的命令开启该功能。

SQL> alter database force logging;

1.1.6、主库上查看设置的归档日志路径是否可用

操作命令:

SQL> col dest_name for a30

SQL> col error for a30

SQL> select dest_name,status,error from v$archive_dest;

操作结果:

DEST_NAMESTATUS ERROR


LOG_ARCHIVE_DEST_1VALID

LOG_ARCHIVE_DEST_2VALID

LOG_ARCHIVE_DEST_3INACTIVE

操作说明:

该视图用户查看本地和远程的归档日志路径是否可用,如果远程的归档日志路径不可用,在ERROR列会有相应报错。

1.1.7、主库上查询归档日志的应用情况

操作命令:

SQL> set pagesize 50;

SQL> col name for a50

SQL> select name,SEQUENCE#,APPLIED from v$archived_log order by sequence#;

操作结果:

NAMESEQUENCE# APPLIED


/u01/app/oracle/arch/1_5_886855721.dbf5 NO

cs015 YES

/u01/app/oracle/arch/1_6_886855721.dbf6 NO

cs016 YES

/u01/app/oracle/arch/1_7_886855721.dbf7 NO

cs017 YES

操作说明:

该视图记录了归档日志的应用情况,由查询结果可以看出,主库上的该视图会同时记录主库和同步到备库的归档日志的应用情况。视图中显示归档到本地路径的归档日志的名字使用的是绝对路径,并且应用状态为NO,而同步到远端备库上的归档日志名字统一都为cs01,并且应用状态显示为YES。这说明同步到备库上的归档日志都已经被应用了。

1.1.8、主库上查看DG环境进程的状态

操作命令:

SQL> select process,status from v$managed_standby;

操作结果:

PROCESS STATUS


ARCH CLOSING

ARCH CLOSING

ARCH CLOSING

ARCH CLOSING

LNS WRITING

操作说明:

ARCH进程:用于主库上复制redo log,从而生成归档日志,当前状态为CLOSING表示该进程目前正在复制

redo log,我们在参数文件中设置了该进程的数量上限是4个。

LNS进程:用于在主库上将主库的归档日志同步到备库上,将归档日志投递给备库上的RFS进程。

1.1.9、主库上查看DG的状态信息

操作命令:

SQL> col message for a100

SQL> select message_num,message from v$dataguard_status;

1.1.10、主库SWITCH OVER角色和状态的检查

操作命令:

SQL> select name,database_role,switchover_status from v$database;

操作结果:

NAMEDATABASE_ROLE SWITCHOVER_STATUS


CS02PRIMARY TO STANDBY

操作说明:

如果主库的切换状态显示为SESSION ACTIVED状态也是正常的。

1.2、备库环境检查

1.2.1、备库实例的启动状态检查

操作命令:

SQL> select instance_name,status from v$instance;

操作结果:

INSTANCE_NAMESTATUS

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

cs01MOUNTED

操作说明:

一般备库会被启动到MOUNT状态,不过根据具体需要,在确认备库没的应用归档日志进程没有启动的前提下也可以将其启动到OPEN状态,执行命令:alter database open;

1.2.2、备库启动模式检查

操作命令:

SQL> select name,open_mode from v$database;

操作结果:

NAMEOPEN_MODE


CS01READ ONLY

操作说明:

发现是read only模式,说明备库当前并没有开启归档日志应用进程,这个时候我们可以手动开启该进程,执行下面的命令:

SQL> alter database recover managed standby database disconnect from session;

如果发现当前数据库的打开模式是read only with apply我们也可以手工关闭归档应用程序,执行下面的命令:

SQL> alter database recover managed standby database cancel;

重新查看备库的启动模式,执行下面的命令:

SQL> select name,open_mode from v$database;

操作结果:

NAMEOPEN_MODE


CS01READ ONLY WITH APPLY

1.2.3、备库DG环境的保护模式检查

执行命令:

SQL> select database_role, protection_mode, protection_level from v$database;

SQL> set linesize 160

查询结果:

DATABASE_ROLEPROTECTION_MODEPROTECTION_LEVEL


PHYSICAL STANDBY MAXIMUM PERFORMANCEMAXIMUM PERFORMANCE

1.2.4、备库用于控制日志同步的参数检查

操作命令:

SQL> show parameter log_archive_dest_2

操作结果:

NAMETYPEVALUE


log_archive_dest_2stringservice=cs02 valid_for=(online_logfiles,primary_role) db_unique_name=cs02

1.2.5、备库上查看同步过来的归档日志的应用情况

操作命令:

SQL> set pagesize 50

SQL> col name for a50

SQL> select name,SEQUENCE#,APPLIED from v$archived_log order by sequence#;

操作结果:

NAMESEQUENCE# APPLIED


/u01/app/oracle/arch/1_5_886855721.dbf5 YES

/u01/app/oracle/arch/1_6_886855721.dbf6 YES

/u01/app/oracle/arch/1_7_886855721.dbf7 YES

操作说明:

如果发现备库归档日志的编号不连续,则需要到主库去对照主库的归档日志编号,找到主库上已经归档但却没有同步到备库上的那些归档日志手动拷贝过来,并将其注册到备库内,注册归档日志的命令如下所示:

SQL> alter database register physical logfile '/opt/arch/归档文件名’

然后再重新开启备库的应用归档日志进程,执行下面的命令即可:

SQL> alter database recover automatic standby database;

1.2.6、备库上查看归档日志有没有裂缝(同操作2.5部分类似)

操作命令:

SQL> select * from v$archive_gap;

操作说明:

如果DG环境日志同步正常,则不会查到任何记录,如果查出结果,则说明目前的DG环境归档日志有裂缝,需要执行2.5部分的操作去解决。

1.2.7、备库上查看DG环境特有进程的状态

操作命令:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复