DataGuard入門 その4

投稿日: 2004年7月14日

Oracle DataGuardについて、その基本構成、セットアップ方法、スイッチオーバー、Flashback、管理方法などを紹介する全4回の連載を1冊にまとめました。
Oracle DataGuardとは・・・1つ以上の Standby Database から構成されていてプライマリデータベース(稼動している方)から Standby Database へ REDO ログを転送し、同期をとることで、可用性を高めるものです。DataGuard には、Physical Standby Database と Logical Standby Database の 2つの構成を利用することができます。

*eBook版のダウンロードをご希望の方は、画像をクリック

<DataGuard入門 その4>
ペンネーム:りん

今週も新米りんのDataGuard入門です。

今までいくつかのSELECT文を利用してきましたが今週はPhysical Standbyを
管理に使えるビューやテーブルについてです。

○ロール・ログモード・制御ファイルタイプ・保護モードを確認する
現在のロール・ログモード・制御ファイルタイプ・保護モードを確認するには
v$databaseを参照します。

 SQL> select database_role,log_mode,controlfile_type,protection_mode from v$database;
 
DATABASE_ROLE    LOG_MODE     CONTROL PROTECTION_MODE
 ---------------- ------------ ------- --------------------
 PHYSICAL STANDBY ARCHIVELOG   STANDBY MAXIMUM PERFORMANCE

SwitchOverやFailOverなどに確認すべきビューなんですね。
SwitchOverが可能かどうかを判断する為にもv$databaseのSWITCHOVER_STATUS
を参照します。

○REDOデータのあて先を確認する
initファイルを参照してもlog_archive_dest_nに記載されているはずですが
Oracle上から確認するのであれば、v$archive_destビューで確認できます。

 SQL> select destination,status,target,archiver,process from v$archive_dest;
 
DESTINATION                          STATUS    TARGET  ARCHIVER   PROCESS
 ------------------------------------ --------- ------- ---------- ----------
 /home/oracle/archive                 VALID     LOCAL   ARCH       ARCH
 standby.world                        VALID     REMOTE  LGWR       LGWR
 primary.world                        VALID     REMOTE  LGWR       LGWR
                                      INACTIVE  LOCAL   ARCH       ARCH
                                     INACTIVE  LOCAL   ARCH       ARCH
                                     INACTIVE  LOCAL   ARCH       ARCH
                                     INACTIVE  LOCAL   ARCH       ARCH
                                     INACTIVE  LOCAL   ARCH       ARCH
                                     INACTIVE  LOCAL   ARCH       ARCH
                                     INACTIVE  LOCAL   ARCH       ARCH
 /home/oracle/archive/standby/standby VALID     LOCAL   ARCH       RFS
 
11行が選択されました。

v$archive_destを参照すると、LOCALのARCHなのか、リモートのLGWRなのかを
確認することができます。

○転送状況を確認する
リアルタイム適用を行っている場合は、ちゃんと適用されているか気になる
ところです確認のために、v$archived_logビューを参照します。

 SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
  SEQUENCE# APP
 ---------- ---
         9 YES
    ~中略~
  SEQUENCE# APP
 ---------- ---
         26 YES
         27 YES
         28 YES
         29 YES
         30 YES
         31 YES
         32 YES

また、現在の適用方法を確認するにはv$archive_dest_statusビューを参照
します。

 SQL> select dest_name,recovery_mode from v$archive_dest_status;
 
DEST_NAME            RECOVERY_MODE
 -------------------- -----------------------
 LOG_ARCHIVE_DEST_1   MANAGED REAL TIME APPLY
 LOG_ARCHIVE_DEST_2   MANAGED REAL TIME APPLY
 ~
 LOG_ARCHIVE_DEST_10  MANAGED REAL TIME APPLY
 STANDBY_ARCHIVE_DEST MANAGED REAL TIME APPLY
 
11行が選択されました。

○転送プロセス状況を確認する
転送プロセスの情報は、v$managed_standbyビューを参照します。

 SQL> select PROCESS,PID,STATUS,CLIENT_PROCESS,CLIENT_PID,
 SQL> CLIENT_DBID,RESETLOG_ID,SEQUENCE#,DELAY_MINS,ACTIVE_AGENTS
 SQL> from v$managed_standby;
 
PROCESS       PID STATUS      CLIENT_P CLIENT_PID RESETLOG_ID  SEQUENCE# DELAY_MINS ACTIVE_AGENTS
 --------- ------- ----------- -------- ---------- ----------- ---------- ---------- -------------
 ARCH         7863 CONNECTED   ARCH     7863                 0          0          0             0
 ARCH         7865 CONNECTED   ARCH     7865                 0          0          0             0

では、Primary側でalter database switch logfileを実行してみます。

 SQL> alter system switch logfile;
 
システムが変更されました。

 SQL> select PROCESS,PID,STATUS,CLIENT_PROCESS,CLIENT_PID,
 SQL> CLIENT_DBID,RESETLOG_ID,SEQUENCE#,DELAY_MINS,ACTIVE_AGENTS
 SQL> from v$managed_standby;
 
 PROCESS          PID STATUS       CLIENT_P RESETLOG_ID  SEQUENCE# DELAY_MINS ACTIVE_AGENTS
 --------- ---------- ------------ -------- ----------- ---------- ---------- -------------
 ARCH            7863 CONNECTED    ARCH               0          0          0             0
 ARCH            7865 CONNECTED    ARCH               0          0          0             0
 RFS             8291 WRITING      LGWR       529269042         95          0             0
 RFS             8293 RECEIVING    UNKNOWN            0          0          0             0
 RFS             8295 ATTACHED     UNKNOWN            0          0          0             0

この場合、RFS(Remote File Server)が書き込み中であることがわかります。

今回で、DataGuard入門はおしまいです。
次回に向けて修行して参ります。

浜降祭が夏を告げる茅ヶ崎にて