DataGuard健康检查的命令有哪些

本篇内容介绍了“DataGuard健康检查的命令有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、 主库检查命令

1. 主库dg环境的保护模式检查

SQL> select db_unique_name,database_role, protection_mode,switchover_status from v$database;

DB_UNIQUE_NAME    DATABASE_ROLE     PROTECTION_MODE       SWITCHOVER_STATUS

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

ORCL                PRIMARY            MAXIMUM PERFORMANCE  TO STANDBY

上述结果显示:主库db_unique_name为ORCL;角色为主库;保护模式为最大性能;切换状态为可以切备库。

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

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

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

3. 主库上查看DG的状态信息

SQL> set linesize 300

SQL> set pagesize 1000

SQL> col message for a100

SQL> select to_char(timestamp,'DD-mm-YYYY HH24:MI:SS') time,message FROM v$dataguard_status;

4. 主库上查看DG环境进程的状态

SQL> SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;

ARCH进程:用于主库上复制redo log,从而生成归档日志,当前状态为CLOSING表示该进程目前正在复制redo log,我们在参数文件中设置了该进程的数量上限是4个

LNS进程:lns从主库端日志缓冲区中读取相同的重做记录,通过oracle net服务传给备用数据库,备用数据库上的rfs接收重做数据,然后将其写入备用重做日志文件中

二、 备库检查命令

1. 备库上查看DG环境特有进程的状态

SQL> SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;

RFS进程:用于备库接收从主库LNS进程或ARCH进程投递过来的归档日志

ARCH:用于复制从主库上同步过来的归档日志

MRP0:用于应用归档日志

2. 备库上查看DG环境的状态信息

SQL> set linesize 300

SQL> set pagesize 1000

SQL> col message for a100

SQL> select message_num,message from v$dataguard_status;

3. 备库端查看日志是否应用

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

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

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

然后再重新开启备库的应用归档日志进程

4. 备库上查看归档日志有没有断档

SQL> select * from v$archive_gap;

如果DG环境日志同步正常,则不会查到任何记录。如果查出结果,则说明目前的DG环境归档日志传递有断档。

“DataGuard健康检查的命令有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!