配置Oracle stream(9)
5 问题诊断
5.1 如何知道捕捉(Capture)进程是否运行正常?
以 strmadmin身份,登录主数据库,执行如下语句:
SQL> SELECT CAPTURE_NAME,
2 QUEUE_NAME,
3 RULE_SET_NAME,
4 NEGATIVE_RULE_SET_NAME,
5 STATUS
6 FROM DBA_CAPTURE;
结果显示如下:
CAPTURE_NAME QUEUE_NAME
------------------------------ ------------------------------
RULE_SET_NAME NEGATIVE_RULE_SET_NAME STATUS
------------------------------ ------------------------------ --------
CAPTURE_PROD PROD_QUEUE
RULESET$_14 ENABLED
ENABLED
如果STATUS状态是ENABLED,表示Capture进程运行正常;
如果STATUS状态是DISABLED,表示Capture进程处于停止状态,只需重新启动即可;
如果STATUS 状态是ABORTED,表示Capture 进程非正常停止,查询相应的
ERROR_NUMBER、ERROR_MESSAGE 列可以得到详细的信息;同时,Oracle会在跟
踪文件中记录该信息。
5.2 如何知道Captured LCR是否有传播GAP?
以 strmadmin身份,登录主数据库,执行如下语句:
SQL> SELECT CAPTURE_NAME, QUEUE_NAME, STATUS, CAPTURED_SCN,
APPLIED_SCN
2 FROM DBA_CAPTURE;
结果显示如下:
CAPTURE_NAME QUEUE_NAME STATUS
------------------------------ ------------------------------ --------
CAPTURED_SCN APPLIED_SCN
------------ -----------
CAPTURE_PROD PROD_QUEUE ENABLED
17023672 17023672
如果APPLIED_SCN 小于CAPTURED_SCN,则表示在主数据库一端,要么LCR 没有被
dequeue,要么Propagation进程尚未传播到从数据库一端。
5.3 如何知道Appy进程是否运行正常?
以 strmadmin身份,登录从数据库,执行如下语句:
SQL> SELECT apply_name, apply_captured, status FROM dba_apply;
结果显示如下:
APPLY_NAME APPLY_ STATUS
---------------------- ------ ----------------
APPLY_H10G YES ENABLED
如果STATUS状态是ENABLED,表示Apply进程运行正常;
如果STATUS状态是DISABLED,表示Apply进程处于停止状态,只需重新启动即可;
如果STATUS 状态是ABORTED,表示Apply 进程非正常停止,查询相应的
ERROR_NUMBER、ERROR_MESSAGE 列可以得到详细的信息;同时,可以查询
DBA_APPLY_ERROR视图,了解详细的Apply错误信息。
6 结篇
通过如上的测试可以看出stream的功能还是十分强大的,通过配置Oracle Stream可以更大
的提升数据库的可用性和安全性,如此一个好用且不用花费高昂额外费用的功能还是很值得
一用的。