2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Data Guard 環境のアーカイブログ出力状況を確認する(Oracle Database 19c)

Last updated at Posted at 2024-02-22

Data Guard 環境のアーカイブログ

 Data Guard はプライマリ・データベースで発生した更新情報(REDOログ)をスタンバイ・データベースに自動転送して適用することでデータベースの同期をとる技術です。REDOログはREDOログ・ファイルに出力され、アーカイブログ・ファイルとして出力されます。REDOログ・ファイルのコピーであるアーカイブログは、プライマリ・データベースだけでなく、スタンバイ・データベース上でも作成されます。
 本記事ではアーカイブログの出力状況を確認できる V$ARCHIVED_LOG ビューの内容が Data Guard 環境でどのように変化するのかを検証します。カスケード構成では動作が異なる場合があります。
本記事ではプライマリ・データベースの名前(db_unique_name)を O19P、スタンバイ・データベースの名前を O19S としています。

管理スタンバイ実行時

Data Guard が正常に動作している場合、アーカイブログはプライマリ・データベース、スタンバイ・データベース両方に出力されます。

V$ARCHIVED_LOG ビューの主な列のうち、プライマリ・データベースとスタンバイ・データベース共通の項目は以下の通りです。

列名 値の説明 備考
DEST_ID 転送した log_archive_dest_N の番号
THREAD# アーカイブログが出力されたインスタンス番号 非RAC環境では1
SEQUENCE# アーカイブログのシーケンス番号
COMPLETION_TIME アーカイブログ作成・転送完了日時

プライマリ・データベース

 プライマリ・データベースの V$ARCHIVED_LOG ビューには、単一のシーケンス番号(SEQUENCE# 列)に対して、ローカル環境(プライマリ・データベース)に出力されたアーカイブログとリモート環境(スタンバイ・データベース)に転送されたアーカイブログの両方の情報が出力されます。

列名 値の説明 備考
NAME ファイル名または転送したアーカイブのリモート・サービス名
STANDBY_DEST リモート転送の場合はYES、ローカル保存時 NO
ARCHIVED アーカイブされた場合はYES
APPLIED 転送済アーカイブログがスタンバイに適用済の場合YES
STATUS 使用可能な場合 A
CREATOR ローカル出力の場合 ARCH、リモート転送の場合 LGWR
REGISTRAR ローカル出力の場合 FGRD、リモート転送の場合 LGWR

下記の例ではシーケンス番号 145 のアーカイブログが出力された状況を示しています。NAME列にO19S が出力されたレコードはスタンバイ・データベースに転送されたアーカイブログを示しています。APPLIED列がYESのため、スタンバイ・データベースに適用済であることを示します。

アーカイブログの出力状況を確認
SQL> SELECT name, archived, status, applied FROM v$archived_log WHERE sequence#=145;

NAME                                                                   ARC S APPLIED
---------------------------------------------------------------------- --- - ---------
/u01/app/oracle/admin/O19P/archive/1_145_1092062913.dbf                YES A NO
O19S                                                                   YES A YES

スタンバイ・データベース

スタンバイ・データベースの V$ARCHIVED_LOG ビューには、リモート転送されたアーカイブログの状況は出力されません。

列名 値の説明 備考
NAME ファイル名
STANDBY_DEST ローカル保存なので NO
ARCHIVED アーカイブされた場合は YES
APPLIED スタンバイに適用済の場合 YES
STATUS 使用可能な場合 A
CREATOR ローカル出力なので ARCH
REGISTRAR リモートからの転送なので RFS
Data Guard リアルタイム適用を確認
SQL> SELECT status FROM v$managed_standby WHERE process LIKE 'MRP%';

STATUS
------------
APPLYING_LOG

APPLIED 列が YES であるためスタンバイ・データベースに適用済であることがわかります。

アーカイブログの出力状況を確認
SQL> SELECT name, archived, status, applied FROM v$archived_log WHERE sequence#=145;

NAME                                                                   ARC S APPLIED
---------------------------------------------------------------------- --- - ---------
/u01/app/oracle/admin/O19S/archive/1_145_1092062913.dbf                YES A YES

スタンバイ停止時

 スタンバイ・データベースを停止した場合にプライマリ・データベースでアーカイブログが出力された場合の動作を検証します。

プライマリ・データベース

 プライマリ・データベースの V$ARCHIVED_LOG ビューにはスタンバイ・データベースに転送するはずのアーカイブログの情報は出力されません。

アーカイブログ出力確認
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

システムが変更されました。

SQL> SELECT MAX(sequence#) FROM v$archived_log;

MAX(SEQUENCE#)
--------------
           146

SQL> SELECT name, archived, status, applied FROM v$archived_log WHERE sequence#=146;

NAME                                                                   ARC S APPLIED
---------------------------------------------------------------------- --- - ---------
/u01/app/oracle/admin/O19P/archive/1_146_1092062913.dbf                YES A NO

スタンバイ起動時

スタンバイ・インスタンスが起動し、管理リカバリモード(MANAGED STANDBY)が実行されていない場合の動作を検証します。この場合でもスタンバイ・インスタンスではリアルタイム適用のためのREDO ログやアーカイブログは受信されています。

プライマリ・データベース

スタンバイ・インスタンスは起動しているため、V$ARCHIVED_LOG ビューにはリモート転送されたアーカイブログの情報が出力されています。しかし APPLIED 列の値は NO であり、適用はされていないことがわかります。

アーカイブログの確認
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

システムが変更されました。

SQL> SELECT MAX(sequence#) FROM v$archived_log;

MAX(SEQUENCE#)
--------------
           147

SQL> SELECT name, archived, status, applied FROM v$archived_log WHERE sequence#=147;

NAME                                                                   ARC S APPLIED
---------------------------------------------------------------------- --- - ---------
/u01/app/oracle/admin/O19P/archive/1_147_1092062913.dbf                YES A NO
O19S                                                                   YES A NO

スタンバイ・データベース

 スタンバイ・インスタンスでもアーカイブログが出力されています。しかし APPLIED 列は NO であり、適用はされていないことがわかります。

SQL> SELECT name, archived, status, applied FROM v$archived_log WHERE sequence#=147;

NAME                                                                   ARC S APPLIED
---------------------------------------------------------------------- --- - ---------
/u01/app/oracle/admin/O19S/archive/1_147_1092062913.dbf                YES A NO

アーカイブログ削除対象設定

RMAN から削除されたアーカイブログの情報は NAME 列が NULL になり、DELETED 列が YES になります。V$ARCHIVED_LOG ビューの保存期間は初期化パラメーター control_file_record_keep_time(デフォルト値 7)で指定された日数になります。

削除されたアーカイブログの情報
SQL> SET NULL NULL
SQL> SELECT DISTINCT name, deleted FROM v$archived_log WHERE name IS NULL;

NAME                                                                   DEL
---------------------------------------------------------------------- ---
NULL                                                                   YES

RMAN でアーカイブログを削除可能とみなすための条件は CONFIGURE コマンドで指定します。この設定は Data Guard のプライマリ・データベースとスタンバイ・データベースで別々の値に指定できます。削除ポリシーは ARCHIVELOG DELETION POLICY 属性で変更できます。

RMAN 設定のデフォルト値確認
RMAN> SHOW ARCHIVELOG DELETION POLICY;

db_unique_name O19PのデータベースにおけるRMAN構成パラメータ:
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

スタンバイ・データベースに「適用済」であるアーカイブログを削除う可能とみなす設定は ARCHIVELOG DELETION POLICY を APPLIED ON ALL STANDBY に指定します。

削除条件をスタンバイ・データベースに「適用済」に設定
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;

新しいRMAN構成パラメータ:
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;
新しいRMAN構成パラメータが格納できました

スタンバイ・データベースに「転送済」であるアーカイブログを削除う可能とみなす設定は ARCHIVELOG DELETION POLICY を SHIPPED TO ALL STANDBY に指定します。

削除条件をスタンバイ・データベースに「転送済」に設定
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO ALL STANDBY;

新しいRMAN構成パラメータ:
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO ALL STANDBY;
新しいRMAN構成パラメータが格納できました

「Oracle Database バックアップおよびリカバリ・リファレンス」マニュアル には ALL を省略する構文が記載されていますが、不具合のため省略できません。値は保存されますが RMAN-08591 エラーが発生します。

不具合が発生する構文
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;

新しいRMAN構成パラメータ:
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;
新しいRMAN構成パラメータが格納できました
RMAN-08591: 警告: アーカイブ・ログ削除ポリシーが無効です

Author: Noriyoshi Shinoda / Date: February 22, 2024

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?