REDO転送サービスの管理
REDO転送サービスを管理するには、各構成メンバーに構成可能なプロパティを指定します。
-
DGConnectIdentifier -
StandbyAlternateLocation -
Binding -
Encryption(このプロパティはリカバリ・アプライアンスでのみ設定可能です) -
LogShipping -
LogXptMode -
MaxFailure -
NetTimeout -
RedoCompression -
RedoRoutes -
ReopenSecs -
StandbyArchiveLocation
これらのプロパティを使用して、スタンバイ・データベースに対するREDO転送サービスのブローカによる設定方法を指定できます。LOG_ARCHIVE_DEST_n初期化パラメータの設定など、実際のREDO転送の設定(StandbyArchiveLocationプロパティを除く)は、ブローカによりプライマリ・データベース上で実行されます。プロパティの変更によりLOG_ARCHIVE_DEST_n初期化パラメータの属性変更が必要な場合、ブローカは各スレッド上でログを強制的に切り替えます。これにより、プライマリ・データベースでは新規設定が即時に使用されます。
また、スタンバイ・データベースに切り替える準備として、これらのプロパティをプライマリ・データベース上で事前に設定する必要があります。
ノート:
REDO転送の接続では、トランスポート・アプリケーション・フェイルオーバー(TAF)を有効にできません。REDO転送の設定
REDOデータは、Oracle Netを使用してスタンバイ・データベースに転送されます。
Oracle Netサービス名は、LOG_ARCHIVE_DEST_n初期化パラメータのSERVICE属性で指定され、スタンバイ・データベースへのREDOデータの転送に使用されます。Oracle Netサービス名は、スタンバイ・データベースへの接続に必要な情報が記述された接続記述子に変換されます。
SERVICE属性は、データベース・プロパティDGConnectIdentifierを使用して設定または変更できます。DGConnectIdentifierプロパティは、構成にデータベースを初めて追加するときに設定されます。このプロパティの初期値は、ADD DATABASEコマンドのオプションのCONNECT IDENTIFIER IS句に指定した接続識別子です。
DGConnectIdentifierプロパティの値は、FAL_SERVER初期化パラメータの設定にも使用されます。いずれかのデータベースのDGConnectIdentifierプロパティが変更されると、対応するLOG_ARCHIVE_DEST_n初期化パラメータのSERVICE属性も変更されます。また、構成内で有効化されたすべてのスタンバイ・データベースで、FAL_SERVER初期化パラメータが更新されます。
データ保護モードに対応したREDO転送サービスの管理
構成全体の保護モードの一部として、REDO転送サービスも、選択したデータ保護モードに対して正しく設定されていることを確認する必要があります。
ブローカによるデータ保護モードの処理方法については、「データ保護モードの管理」で説明します。
REDO転送サービスをSYNC、ASYNCまたはFASTSYNCモードに設定するには、LogXptModeまたはRedoRoutesデータベース・プロパティを使用します。
次のREDO転送モードがサポートされています。
SYNC
このスタンバイ・データベースに対するREDO転送サービスを、LOG_ARCHIVE_DEST_n初期化パラメータのSYNCおよびAFFIRM属性を使用して構成します。このモードとスタンバイREDOログ・ファイルは、最大保護モードまたは最大可用性モードのいずれかで動作している構成に必要です。このREDO転送サービスでは、プライマリ・データベースに対して最高レベルのデータ保護が可能ですが、パフォーマンスへの影響も大きくなる可能性があります。
ASYNC
このスタンバイ・データベースに対するREDO転送サービスを、LOG_ARCHIVE_DEST_n初期化パラメータのASYNCおよびNOAFFIRM属性を使用して構成します。このモードとスタンバイREDOログ・ファイルでは、プライマリ・データベースに対して適度なレベルのデータ保護が可能になり、パフォーマンスへの影響も小さくなります。
FASTSYNC
このスタンバイ・データベースに対するREDO転送サービスを、LOG_ARCHIVE_DEST_n初期化パラメータのSYNCおよびNOAFFIRM属性を使用して構成します。このモードは、最大可用性保護モードでのみ利用できます。
高度なREDO転送設定
RedoRoutesプロパティを使用すると、デフォルトの動作(プライマリ・データベースがそのREDOを構成内にあるすべての可能なREDO転送先に送信する)を上書きできます。
デフォルト以外のREDO転送トポロジの例としては、たとえば、フィジカル・スタンバイまたは遠隔同期インスタンスが、プライマリ・データベースから受け取ったREDOを1つ以上の接続先に転送するものや、指定された接続先に対して使用されるREDO転送モードが、どのデータベースがプライマリ・ロールであるかによって異なるものなどがあります。
関連項目:
-
RedoRoutes (
RedoRoutesプロパティを使用する場合のREDOルーティング・ルールの詳細)
例4-2 リアルタイム・カスケードに対するRedoRoutesプロパティの使用
プライマリ・データベース(North_Sales)と2つのフィジカル・スタンバイ・データベース(Local_SalesとRemote_Sales)がある構成を考えます。Local_Salesデータベースは、高可用性のために、プライマリと同じデータセンターに置かれています。Remote_Salesデータベースは、障害回復目的で、リモート・データセンターに置かれています。プライマリから両方のデータベースにREDOを送信するかわりに、RedoRoutesプロパティを使用して、ローカルのフィジカル・スタンバイ・データベースが、North_Salesからリモートのフィジカル・スタンバイ・データベース(Remote_Sales)にREDOを転送するようにリアルタイム・カスケードを構成することができます。そのためには、RedoRoutesプロパティを次のように設定する必要があります。
-
North_Salesデータベースでは、North_Salesがプライマリ・ロールである場合、同期転送モードを使用してLocal_SalesデータベースにREDOを送信するように、RedoRoutesプロパティを指定する必要があります。このルールにより、プライマリがRemote_Salesデータベースに直接REDOデータを送信することがなくなります。 -
Local_Salesデータベースでは、North_Salesがプライマリ・ロールの場合、Local_Salesが、North_Salesから受け取ったREDOをRemote_Salesに転送するように、RedoRoutesプロパティを指定する必要があります。
DGMGRL> EDIT DATABASE 'North_Sales' SET PROPERTY 'RedoRoutes' = '(LOCAL : Local_Sales SYNC)'; DGMGRL> EDIT DATABASE 'Local_Sales' SET PROPERTY 'RedoRoutes' = '(North_Sales : Remote_Sales ASYNC)';
実行時のRedoRoutes構成を表示するには、SHOW CONFIGURATIONコマンドを使用します。たとえば:
DGMGRL> SHOW CONFIGURATION;
Configuration - Sales_Configuration
Protection Mode: MaxAvailability
Members:
North_Sales - Primary database
Local_Sales - Physical standby database
Remote_Sales - Physical standby database (receiving current redo)
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
Remote_Sales接続先のREDOルート・ルールで、ASYNCREDO転送属性が明示的に指定されることで、その接続先へのREDOのリアルタイム・カスケーディングが有効にされたことに注意してください。(リアルタイム・カスケードにはOracle Active Data Guardオプションのライセンスが必要です。)
REDOのリアルタイム・カスケーディングを無効にするには、ASYNCREDO転送属性を指定しないでください。たとえば:
DGMGRL> EDIT DATABASE 'Local_Sales' SET PROPERTY 'RedoRoutes' = '(North_Sales : Remote_Sales)';
例4-3 リモート代替宛先に対するRedoRoutesプロパティの使用
RedoRoutesプロパティを使用すると、端末メンバーがREDOデータの受信元のメンバーに障害が発生してもREDOデータを受信できるように、リモート代替宛先を設定することもできます。前述の例を使用すると、プライマリ・データベースとしてNorth_Salesを使用し、スタンバイ・データベースLocal_Salesに障害が発生したときにREDOデータを直接Remote_Salesに送信できます。PRIORITY属性を使用して、Local_Salesの障害が解決された時点でRemote_SalesへのREDOの送信を再開できるように設定することもできます。
DGMGRL> EDIT DATABASE 'North_Sales' SET PROPERTY 'RedoRoutes' = '(LOCAL : ( Local_Sales ASYNC PRIORITY=1, Remote_Sales ASYNC PRIORITY=2 ))';
Property "RedoRoutes" updated
DGMGRL> EDIT DATABASE 'Local_Sales' SET PROPERTY 'RedoRoutes' = '(North_Sales : Remote_Sales ASYNC)';
Property "RedoRoutes" updated
DGMGRL> SHOW CONFIGURATION;
Configuration - Sales_Configuration
Protection Mode: MaxPerformance
Members:
North_Sales - Primary database
Local_Sales - Physical standby database
Remote_Sales - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESSRedoRoutes構成全部を表示するには、SHOW CONFIGURATION VERBOSEコマンドを使用します。たとえば:
DGMGRL> SHOW CONFIGURATION VERBOSE;
Configuration - Sales_Configuration
Protection Mode: MaxPerformance
Members:
North_Sales - Primary database
Local_Sales - Physical standby database
Remote_Sales - Physical standby database
Remote_Sales - Physical standby database (alternate of Local_Sales)
Properties:
FastStartFailoverThreshold = '180'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '300'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
ExternalDestination1 = ''
ExternalDestination2 = ''
PrimaryLostWriteAction = 'CONTINUE'
ConfigurationWideServiceName = 'c0_CFG'
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESSREDO転送サービスのオン/オフの切替え
REDO転送サービスのオンとオフを切り替えるには、プライマリ・データベースの状態を設定します。
プライマリ・データベースの状態をTRANSPORT-ONに設定するとプライマリ・データベースでREDO転送サービスが起動し、TRANSPORT-OFFに設定するとプライマリ・データベースのREDO転送サービスが停止します。
ノート:
すべてのスタンバイ・データベースへのREDO転送サービスをオフにしないことをお薦めします。オフにすると、プライマリ・データベースに障害が発生した場合にデータが消失する危険性があります。
スタンバイ・データベースへのREDO転送サービスのオンとオフを個別に切り替えるには、対象のスタンバイ・データベースにデータベース・プロパティLogShippingを使用します。LogShippingプロパティは、値ONおよびOFFを受け入れます。スタンバイ・データベースに対してLogShippingプロパティをOFFに設定すると、そのスタンバイ・データベースへのREDO転送サービスはオフになりますが、他のデータベースへのREDO転送サービスは影響を受けません。LogShippingをONに設定すると、スタンバイ・データベースへのREDO転送サービスをオンに戻せます。
プライマリ・データベースの状態の設定とLogShippingプロパティの設定の関係は、次のとおりです。
-
プライマリ・データベースの状態が
TRANSPORT-OFFに設定されている場合、各スタンバイ・データベースの個々のLogShippingプロパティ値に関係なく、すべてのスタンバイ・データベースへのREDO転送サービスが停止します。 -
プライマリ・データベースの状態が
TRANSPORT-ONに設定されている場合は、各スタンバイ・データベースへのREDO転送サービスは、それぞれのデータベースのLogShippingプロパティにより決定されます。
例4-4 すべてのスタンバイ・データベースへのREDO転送サービスをオフにする場合
DGMGRL> EDIT DATABASE 'North_Sales' SET STATE='TRANSPORT-OFF';
Succeeded.
DGMGRL> SHOW DATABASE 'North_Sales';
Database - North_Sales
Role: PRIMARY
Intended State: TRANSPORT-OFF
Redo Rate: (unknown)
Instance(s):
NorthSales
Database Status:
SUCCESS
例4-5 特定のスタンバイ・データベースへのREDO転送サービスをオフにする場合
DGMGRL> EDIT DATABASE 'South_Sales' SET PROPERTY 'LogShipping'='OFF'; Property "LogShipping" updated DGMGRL> SHOW DATABASE 'South_Sales' 'LogShipping'; LogShipping = 'OFF'
アーカイブREDOログ・ファイルの位置の指定
ブローカの構成可能なプロパティを使用して、アーカイブ・スタンバイREDOログ・ファイルとアーカイブ・オンラインREDOログ・ファイルの両方を格納する位置を設定できます。
オンラインREDOログ・ファイルの場合、プライマリ、ロジカルまたはスナップショット・スタンバイ・データベースでArchiveLocationおよびAlternateLocationプロパティを使用します。
スタンバイREDOログ・ファイルの場合、スタンバイ・データベースでStandbyArchiveLocationおよびStandbyAlternateLocationプロパティを使用します。StandbyArchiveLocationが設定されていない場合、ArchiveLocationまたはAlternateLocationは、オンラインREDOログ・ファイルとスタンバイREDOログ・ファイルの両方のアーカイブ場所を指定します。StandbyArchiveLocationが設定されている場合、ArchiveLocationおよびAlternateLocationがオンラインREDOログ・ファイルのアーカイブ場所を指定します。
StandbyArchiveLocationプロパティは、アーカイブREDOログ・ファイルを格納する位置を指定します。ブローカが使用するのは、プライマリ・データベースから受け取ったアーカイブREDOログ・ファイルのみを格納する位置です。データベースがプライマリ・データベース、ロジカル・スタンバイ・データベースまたはスナップショット・スタンバイ・データベースのいずれかであるときに、ローカルで生成されたアーカイブREDOログ・ファイルの場合は、ArchiveLocationプロパティを指定する必要があります。ブローカでは、StandbyArchiveLocationおよびArchiveLocationプロパティの値をローカルに生成されたログ用に設定した位置と同じ位置に設定できます。この場合、ブローカによりアーカイブ先のVALID_FOR属性が適切に設定されるため、プライマリ・データベースから受け取るアーカイブREDOログ・ファイルとローカルに生成されるアーカイブREDOログ・ファイルの両方に同じ位置を使用できます。場所がオンラインREDOログ・ファイルとスタンバイREDOログ・ファイルの両方に使用される場合は、ArchiveLocationプロパティを共有の場所に構成し、StandbyArchiveLocationプロパティを空のままにする必要があります。
StandbyAlternateLocationおよびAlternateLocationプロパティを使用して、アーカイブREDOログ・ファイルを格納する別の位置を設定することもできます。これらのプロパティによって指定された代替の位置は、元のアーカイブの位置(StandbyArchiveLocationまたはArchivelocationで指定される)が失敗した場合にアーカイブREDOログ・ファイルが格納される場所です。ブローカは、LOG_ARCHIVE_DEST_n初期化パラメータのALTERNATE属性を使用して、代替位置を正しく設定します。
ノート:
スタンバイ上のデータベース・リカバリ領域をアーカイブREDOログ・ファイルの格納に使用できます。この場合、StandbyArchiveLocationプロパティまたはArchiveLocationプロパティの値をUSE_DB_RECOVERY_FILE_DESTに設定できます。
データベースのリカバリ領域を使用していない場合、ロジカル・スタンバイ・データベースでArchiveLocationプロパティをStandbyArchiveLocationプロパティの値と異なる値にしておくことをお薦めします。
例4-6 スタンバイREDOログ・ファイルとオンラインREDOログ・ファイルに同じアーカイブ場所を使用する
次の例では、オンラインREDOログ・ファイルとスタンバイREDOログ・ファイルに同じアーカイブの場所を使用します。
ArchiveLocation='/archfs/arch'
例4-7 アーカイブ・スタンバイおよびオンラインREDOログ・ファイルの代替の場所の指定
次の例では、オンラインREDOログ・ファイルとスタンバイREDOログ・ファイルに同じアーカイブの場所を使用します。AlternateLocationプロパティを構成すると、ArchiveLocationプロパティで指定された場所が使用できない場合に、スタンバイREDOログ・ファイルを格納するために共有の代替の場所を使用できます。
ArchiveLocation='/archfs/arch'
AlternateLocation='/archfs/alt'例4-8 オンラインREDOログ・ファイルおよびスタンバイREDOログ・ファイルの個別のアーカイブ場所の指定
この例では、スタンバイREDOログ・ファイルおよびオンラインREDOログ・ファイルの個別のアーカイブ場所を構成します。また、オンラインREDOログ・ファイルおよびスタンバイREDOログ・ファイルの代替のアーカイブ場所を構成するには、AlternateLocationおよびStandbyAlternateLocationプロパティをそれぞれ使用します
ArchiveLocation='/archfs/arch/online'
AlternateLocation='/archfs/alt/online'
StandbyArchiveLocation='/archfs/arch/standby'
StandbyAlternateLocation='/archfs/alt/standby'その他のREDO転送設定
データベース・プロパティを使用して、REDO転送サービスのパフォーマンスをチューニングし、REDO転送サービスの障害ポリシーを設定できます。
使用されるプロパティは、Binding、MaxFailure、NetTimeout、RedoCompressionおよびReopenSecsです。これらのプロパティは、LOG_ARCHIVE_DEST_n初期化パラメータの属性に対応します。
関連項目:
これらのデータベース・プロパティの詳細は「Oracle Data Guard Brokerのプロパティ」を参照
Oracle RACデータベース環境でのREDO転送サービス
プライマリ・データベースがOracle RACデータベースの場合、ブローカは各プライマリ・データベース・インスタンス上のREDO転送サービスが同一に設定されていることを確認します。
各インスタンスのリモート接続先は同じで、すべてのインスタンスで、各リモート接続先には同じREDO転送サービス、パフォーマンス関連設定、オンラインREDOログのローカル・アーカイブなどが設定されます。インスタンスの設定が異なる場合、ブローカはそのインスタンスに関して健全性チェックの警告を発行します。
REDO転送サービスに関連する設定は、ブローカ構成ファイルにプロパティとして保存されます。スタンバイ・データベース上のREDO転送関連のプロパティを更新すると、すべてのプライマリ・データベース・インスタンス上のLOG_ARCHIVE_DEST_n初期化パラメータに対しても、ブローカによって自動的に対応する変更が実行されます。プライマリ・データベース上で新規インスタンスが作成されると、ブローカは現在管理している全構成メンバーのREDO転送関連プロパティを使用して、新規インスタンス用のREDO転送サービスを設定します。新しいインスタンスがアクティビティに対して開かれた後、このインスタンスで生成されたすべてのアーカイブREDOログ・ファイルにより、構成のメンバーへの転送が開始されます。
関連項目:
LOG_ARCHIVE_DEST_n初期化パラメータの詳細は、『Oracle Data Guard概要および管理』を参照してください。
転送ラグ
転送ラグは、スタンバイ・データベースまたは遠隔同期インスタンスへのREDOの転送がプライマリ・データベースでのREDOの生成からどの程度遅れているかを測定する尺度です。
スタンバイ・データベースまたは遠隔同期インスタンスで1つ以上のREDOギャップがある場合は、最初のREDOギャップの発生後にREDOは受信されなかったものとして、転送ラグが計算されます。
Cloud ControlとDGMGRLクライアントのいずれでも、管理対象スタンバイ・データベースまたは遠隔同期インスタンスごとにREDO転送ラグが表示されます。Cloud Controlでは、Oracle Data Guardホームページに転送ラグが表示されます。DGMGRLクライアントでは、SHOW DATABASE出力に転送ラグが表示されます。プライマリ・データベースに対する転送ラグは表示されません。次に、フィジカル・スタンバイ・データベースの転送ラグの例を示します。
DGMGRL> SHOW DATABASE 'South_Sales';
Database - South_Sales
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 1 second ago)
Apply Lag: 0 seconds (computed 1 second ago)
Average Apply Rate: 13.00 KByte/s
Real Time Query: OFF
Instance(s):
SouthSales
Database Status:
SUCCESS
Oracle Databaseリリース19c以上では、SHOW CONFIGURATION LAGコマンドによって、ブローカ構成のサマリーおよびすべてのスタンバイ・データベースの転送ラグが表示されます。
DGMGRL> SHOW CONFIGURATION LAG;
Configuration - config
Protection Mode: MaxPerformance
Members:
North_Sales - Primary database
Warning: ORA-16801: Redo transport-related property is inconsistent with member setting.
South_Sales - Physical standby database
Transport Lag: 0 seconds (computed 1 second ago)
Apply Lag: 0 seconds (computed 1 second ago)
Fast-Start Failover: Disabled
Configuration Status:
WARNING (status updated 11 seconds ago)
転送ラグにより、REDO転送サービスで発生する可能性のある問題を識別することができます。構成可能なデータベース・プロパティTransportLagThresholdを設定すると、スタンバイ・データベースまたは遠隔同期インスタンスへのREDOデータの転送がプライマリ・データベース上でのREDOデータの生成より遅れる場合に健全性チェック警告を生成できます。
次のコマンドは、TransportLagThresholdプロパティを15秒に設定します。
DGMGRL> EDIT DATABASE 'South_Sales' SET PROPERTY 'TransportLagThreshold'=15; Property TransportLagThreshold updated
さらに、構成可能なデータベース・プロパティTransportDisconnectedThresholdを設定すると、スタンバイまたは遠隔同期インスタンスがプライマリ・データベースとの間にいかなるREDO転送関連の通信も持っていないことを検出したときに健全性チェック警告を生成できます。プロパティのデフォルト値は30秒です。
次のコマンドは、TransportDisconnectedThresholdプロパティを15秒に設定します。
DGMGRL> EDIT DATABASE 'South_Sales' SET PROPERTY 'TransportDisconnectedThreshold'=15; Property TransportDisconnectedThreshold updated