この章では、Data Guardコマンドライン・インタフェース(DGMGRL)の使用を開始するための前提条件について説明します。また、DGMGRLを使用してブローカ構成を作成、管理および監視する方法について例をあげて説明します。
この章の内容は、次のとおりです。
DGMGRL使用の前提条件の1つは、1つのプライマリ・データベースと任意の数のスタンバイ・データベースが存在していることです。構成内のすべてのデータベースについて、DG_BROKER_START初期化パラメータをTRUEに設定する必要があります。ブローカではサーバー・パラメータ・ファイルを使用してください(2.1項および8.1.3項を参照してください)。
必要な場合は、プライマリ・データベースとスタンバイ・データベースの初期化パラメータ・ファイル(PFILE)をサーバー・パラメータ・ファイル(SPFILE)に変換します。次のSQL*Plusコマンドを使用します。
CREATE SPFILE FROM PFILE='pfilename';
サーバー・パラメータ・ファイルを使用してインスタンスが起動されていない場合は、そのインスタンスを停止し、サーバー・パラメータ・ファイルを使用して再起動する必要があります。
Oracleインスタンスの起動後に、SQLのALTER SYSTEM文を使用してDG_BROKER_START=TRUE初期化パラメータを設定します。パラメータ値は、サーバー・パラメータ・ファイルに保存されます。Oracleインスタンスの次回起動時にブローカが自動的に起動されるため、SQLのALTER SYSTEM文の再発行は不要です。
|
関連項目: サーバー・パラメータ・ファイルの作成方法の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
この章の使用例は、次の条件を前提としています。
プライマリ・データベースとスタンバイ・データベースへの接続にTCP/IPが使用されていること
プライマリ・データベースの制御ファイルとデータファイルのバックアップから、スタンバイ・データベースが作成されていること(詳細は『Oracle Data Guard概要および管理』を参照)
この章の使用例は、次のブローカ構成を前提としています。
構成名はDRSolutionです。
プライマリ・データベースの一意名(DB_UNIQUE_NAME)はNorth_Salesです。
リモート・スタンバイ・データベースの一意名(DB_UNIQUE_NAME)はDR_Salesです。
保護モードは最大パフォーマンス・モードです。
スタンバイREDOログ・ファイルがあり、転送モードはASYNCです。
スタンバイ・データベースはフィジカル・スタンバイ・データベースです。
この項では、プライマリ・データベースNorth_Salesおよびスタンバイ・データベースDR_Salesを含むDRSolutionというブローカ構成の作成例を示します。
次の手順では、構成を作成してフィジカル・スタンバイ・データベースを1つ追加する方法について説明します。
DGMGRLを起動するには、Oracle Data Guardがインストールされているシステム上で、コマンドライン・プロンプトからdgmgrlと入力します。
$ dgmgrl DGMGRL for Linux: Version 11.1.0.7.0 - Production Copyright (c) 2000, 2005, Oracle. All rights reserved. Welcome to DGMGRL, type "help" for information. DGMGRL>
任意のコマンド(HELP、EXITまたはQUIT以外)を指定する前に、まずDGMGRL CONNECTコマンドを使用してプライマリ・データベースに接続する必要があります。
データベースへの接続に使用するアカウント(この例ではSYS)には、プライマリ・データベースとスタンバイ・データベースでのSYSDBA権限が必要です。
|
注意: AS SYSDBAはCONNECTコマンドのデフォルト設定であるため、このコマンドでAS SYSDBAを指定する必要はありません。 |
次の例は、CONNECTコマンドの2つのバリエーションを示しています。例7-1に、ローカル・システム上のデフォルト・データベースに接続する方法を示します。例7-2では、リモート・システムにあるデータベースに接続できるように、Oracle Net Services接続識別子(North_Sales.foo.com)が指定されています。この2つの例ではどちらもパスワードの入力を要求されます。
例7-2 リモート・システム上のプライマリ・データベースへの接続
DGMGRL> CONNECT sys@North_Sales.foo.com;
Password: password
Connected.
ブローカ構成を作成するには、まずプライマリ・データベース(この例ではNorth_Sales)のプロファイルを含む構成を定義します。後のコマンドで、スタンバイ・データベースDR_Salesのプロファイルを追加します。
|
注意: プライマリ・データベース名とスタンバイ・データベース名では、それぞれのデータベースの一意名が一致する必要があります。これらの一意名は、次のコマンドを使用してDB_UNIQUE_NAME初期化パラメータからフェッチします。
SQL> SHOW PARAMETER DB_UNIQUE_NAME; |
CREATE CONFIGURATIONコマンドを使用し、DRSolution構成を作成してプライマリ・データベースNorth_Salesを定義します。
DGMGRL> CREATE CONFIGURATION 'DRSolution' AS > PRIMARY DATABASE IS 'North_Sales' > CONNECT IDENTIFIER IS North_Sales.foo.com;
DGMGRLは次の情報を戻します。
Configuration "DRSolution" created with primary database "North_Sales"
名前North_Salesは、このデータベースのDB_UNIQUE_NAME初期化パラメータの値です。
手順4 構成情報の表示
SHOW CONFIGURATIONコマンドを使用して、構成に関する簡単なサマリーを表示します。
DGMGRL> SHOW CONFIGURATION;
DGMGRLは次の情報を戻します。
Configuration Name: DRSolution Enabled: NO Protection Mode: MaxPerformance Databases: North_Sales - Primary database Fast-Start Failover: DISABLED Current status for "DRSolution": DISABLED
DRSolution構成にスタンバイ・データベースを追加するには、ADD DATABASEコマンドを使用してスタンバイ・データベース用のブローカ構成プロファイルを作成します。
次のコマンドは、スタンバイ・データベースとしてDR_Salesを定義しています。これは、プライマリ・データベースNorth_Salesに関連付けられているスタンバイ・データベースです。
DGMGRL> ADD DATABASE 'DR_Sales' AS > CONNECT IDENTIFIER IS DR_Sales.foo.com;
DGMGRLは次の情報を戻します。
Database "DR_Sales" added
名前DR_Salesは、このデータベースのDB_UNIQUE_NAME初期化パラメータの値です。
SHOW CONFIGURATIONコマンドを使用して、DR_SalesデータベースがDRSolution構成に追加されたことを確認します。
DGMGRL> SHOW CONFIGURATION;
DGMGRLは次の情報を戻します。
Configuration Name: DRSolution Enabled: NO Protection Mode: MaxPerformance Databases: North_Sales - Primary database DR_Sales - Physical standby database Fast-Start Failover: DISABLED Current status for "DRSolution": DISABLED
DGMGRLを使用して構成を作成した後は、いつでもデータベース・プロパティを設定できます。たとえば、次の文は、DR_Salesスタンバイ・データベースの構成可能なデータベース・プロパティLogArchiveFormatおよびStandbyArchiveLocationを設定します。
DGMGRL> EDIT DATABASE 'DR_Sales' SET PROPERTY 'LogArchiveFormat'='log_%t_%s_%r_%d.arc'; Property "LogArchiveFormat" updated. DGMGRL> EDIT DATABASE 'DR_Sales' SET PROPERTY 'StandbyArchiveLocation'='/archfs/arch/'; Property "StandbyArchiveLocation" updated.
データベースのすべてのプロパティとその値を表示するには、SHOW DATABASE VERBOSEコマンドを使用します。次の例は、DR_Salesデータベースのプロパティを示しています。
DGMGRL> SHOW DATABASE VERBOSE 'DR_Sales'; Database Name: DR_Sales Role: PHYSICAL STANDBY Enabled: NO Intended State: APPLY-ON Instance(s): dr_sales1 Properties: DGConnectIdentifier = 'DR_Sales.foo.com' ObserverConnectIdentifier = '' LogXptMode = 'ASYNC' DelayMins = '0' Binding = 'OPTIONAL' MaxFailure = '0' MaxConnections = '1' ReopenSecs = '300' NetTimeout = '30' RedoCompression = 'DISABLE' LogShipping = 'ON' PreferredApplyInstance = '' ApplyInstanceTimeout = '0' ApplyParallel = 'AUTO' StandbyFileManagement = 'AUTO' ArchiveLagTarget = '0' LogArchiveMaxProcesses = '5' LogArchiveMinSucceedDest = '1' DbFileNameConvert = 'dbs/t, dbs/bt' LogFileNameConvert = 'dbs/t, dbs/bt' FastStartFailoverTarget = '' StatusReport = '(monitor)' InconsistentProperties = '(monitor)' InconsistentLogXptProps = '(monitor)' SendQEntries = '(monitor)' LogXptStatus = '(monitor)' RecvQEntries = '(monitor)' HostName = 'dr_sales.foo.com' SidName = 'dr_sales1' StandbyArchiveLocation = '/archfs/arch' AlternateLocation = '' LogArchiveTrace = '8191' LogArchiveFormat = 'db2r_%d_%t_%s_%r.arc' LatestLog = '(monitor)' TopWaitEvents = '(monitor)' Current status for "DR_Sales": DISABLED
データベースのブローカ管理が有効な場合は、データベース・プロパティ値を設定すると、対応するデータベースの基礎となるパラメータ値が変更され、変更されたパラメータの値がサーバー・パラメータ・ファイルに反映されます。したがって、データベースがOracle Enterprise ManagerおよびDGMGRL以外(SQL*Plusインタフェースなど)から停止および再起動された場合は、更新されたサーバー・パラメータ・ファイルの新規パラメータ値がデータベースの起動時に使用されます。ただし、SQL文を使用してREDO転送サービスの初期化パラメータを変更しないでください。SQL文を使用して変更すると、データベースとブローカ間の一貫性が失われます。
|
注意: 通常、データベース・プロパティは、対応する初期化パラメータ、SQL文またはPL/SQLプロシージャ(通常は大文字)と視覚的に区別しやすいように、大/小文字混合表記(LogArchiveFormatなど)で表示されます。ただし、プロパティ管理コマンドでは大/小文字は区別されないため、大文字、小文字または混合表記でコマンドを発行できます。 |
プロパティは、データベースが有効な場合でも無効な場合でも変更できます。ただし、プロパティの変更時にデータベースが無効な場合、変更結果はデータベースが有効化されるまで有効になりません。
これまでDRSolution構成は無効化されており、Data Guard Brokerの制御下にはありませんでした。ブローカ構成に対するデータベースの構成および必要なデータベース・プロパティの設定を完了した後に、構成を有効化してData Guard Brokerで管理できるようにする必要があります。
次のいずれかを有効化できます。
すべてのデータベースを含む構成全体
スタンバイ・データベース
次のコマンドを使用すると、すべてのデータベースを含む構成全体を有効化できます。
DGMGRL> ENABLE CONFIGURATION; Enabled.
構成の表示
SHOWコマンドを使用して、構成とそのデータベースが正常に有効化されていることを確認します。
DGMGRL> SHOW CONFIGURATION;
DGMGRLは次の情報を戻します。
Configuration
Name: DRSolution
Enabled: YES
Protection Mode: MaxPerformance
Databases:
North_Sales - Primary database
DR_Sales - Physical standby database
Fast-Start Failover: DISABLED
Current status for "DRSolution":
SUCCESS
データベースの有効化
この手順は、前にDISABLE DATABASEコマンドを使用してスタンバイ・データベースを無効化している場合にのみ実行します。通常は、構成を有効化するとスタンバイ・データベースも有効化されます。
DGMGRL> ENABLE DATABASE 'DR_Sales'; Enabled.
データベースの表示
DGMGRL> SHOW DATABASE 'DR_Sales';
Database
Name: DR_Sales
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: APPLY-ON
Instance(s):
dr_sales1
Current status for "DR_Sales":
SUCCESS
構成の保護モードはいつでも変更できます。ただし、最大保護モードまたは最大可用性モードに移行する場合は、構成内でアクティビティが発生していないときに変更することをお薦めします。
|
注意: 保護モードを最大保護モードに設定すると、ブローカによりプライマリ・データベースが自動的に再起動されます。 |
この使用例では、構成の保護モードをMAXAVAILABILITYモードに設定します。この保護モードに設定するには、少なくとも1つのスタンバイ・データベースをスタンバイREDOログ・ファイルを使用するように構成し、構成可能なデータベース・プロパティLogXptModeをSYNCに設定する必要があります。
手順1 スタンバイREDOログ・ファイルの構成(必要な場合)
保護モードをMAXAVAILABILITYモードに設定するため、スタンバイ・データベースに十分なスタンバイREDOログ・ファイルが構成されていることを確認する必要があります。
手順2 構成可能なデータベース・プロパティLogXptModeの適切な設定
EDIT DATABASE(プロパティ)コマンドをスタンバイ・データベースで使用し、設定する保護モードに対応するREDO転送サービスを設定します。保護モードをMAXAVAILABILITYに設定する場合は、少なくとも1つのスタンバイ・データベースのREDO転送サービスをSYNCに設定する必要があります。次に例を示します。
DGMGRL> EDIT DATABASE 'DR_Sales' SET PROPERTY 'LogXptMode'='SYNC'; Property "LogXptMode" updated
スタンバイREDOログ・ファイルを使用するように構成されたスタンバイ・データベースが構成内に含まれていないかぎり、このコマンドは正常終了しません。
手順3 構成全体の保護モードの変更
EDIT CONFIGURATIONコマンドを使用して、ブローカ構成の保護モードをMAXAVAILABILITYにアップグレードします。
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY; Succeeded.
このコマンドを入力したときに構成が無効な場合、実際の保護モードの変更は、ENABLE CONFIGURATIONコマンドで構成が有効化されるまで適用されません。保護モードの要件をサポートできるスタンバイ・データベースが構成内に存在しない場合、構成は有効化できません。
手順4 保護モードの変更の確認
SHOW CONFIGURATIONコマンドを使用して構成の現在の保護モードを表示します。
DGMGRL> SHOW CONFIGURATION;
Configuration
Name: DRSolution
Enabled: YES
Protection Mode: MaxAvailability
Databases:
North_Sales - Primary database
DR_Sales - Physical standby database
Fast-Start Failover: DISABLED
Current status for "DRSolution":
SUCCESS
ブローカ構成のデータベースに接続されているかぎり、オブザーバ・サイトを含め、任意のサイトからファスト・スタート・フェイルオーバーを有効化できます。ファスト・スタート・フェイルオーバーを有効化しても、フェイルオーバーは起動されません。かわりに、オブザーバが、プライマリ・データベースとスタンバイ・データベースの監視を開始し、フェイルオーバーの条件が満たされた場合に、ファスト・スタート・フェイルオーバーを起動できるようになります。
この項では、ファスト・スタート・フェイルオーバーを有効化し、構成プロパティ・モードが設定されるオブザーバを起動する手順を説明します。
手順1 スタンバイREDOログがプライマリ・データベースおよびターゲット・スタンバイ・データベースで構成されていることの確認
スタンバイREDOログは、プライマリ・データベースおよびスタンバイ・データベースで構成されている必要があります。スタンバイREDOログを構成する前に、ログ適用サービスを停止する必要があります。
|
関連項目: スタンバイREDOログ・ファイルの構成方法は、『Oracle Data Guard概要および管理』を参照してください。 |
手順2 LogXptModeプロパティがSYNCに設定されていることの確認
構成可能なデータベース・プロパティLogXptModeは、プライマリ・データベースとターゲット・スタンバイ・データベースでSYNCに設定されている必要があります。
設定する保護モードに対応するREDO転送サービスを設定するには、プライマリ・データベースおよびターゲット・スタンバイ・データベースでEDIT DATABASE(プロパティ)コマンドを使用します。たとえば、保護モードをMAXAVAILABILITYに設定する場合、次の例に示すように、プライマリ・データベースおよびターゲット・スタンバイ・データベースで、LogXptModeプロパティをSYNCに設定する必要があります。
DGMGRL> EDIT DATABASE 'North_Sales' SET PROPERTY 'LogXptMode'='SYNC'; Property "LogXptMode" updated
DGMGRL> EDIT DATABASE 'DR_Sales' SET PROPERTY 'LogXptMode'='SYNC'; Property "LogXptMode" updated
データベースがスタンバイREDOログ・ファイルで構成されていないかぎり、ブローカではこれらのコマンドが正常終了しません。
手順3 FastStartFailoverTarget構成プロパティの設定
2つ以上のスタンバイ・データベースがある場合、プライマリ・データベースのFastStartFailoverTarget構成プロパティを設定して目的のターゲット・スタンバイ・データベースを指定します。次に例を示します。
DGMGRL> EDIT DATABASE 'North_Sales' SET PROPERTY FastStartFailoverTarget='DR_Sales'; Property "FastStartFailoverTarget" updated
手順4 保護モードのMAXAVAILABILITYへのアップグレード(必要な場合)
保護モードのアップグレードが必要な場合、次のDGMGRL EDIT CONFIGURATIONコマンドを使用します。次に例を示します。
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
手順5 プライマリ・データベースとターゲット・スタンバイ・データベースでのフラッシュバック・データベースの有効化(必要な場合)
プライマリ・データベースおよびスタンバイ・データベースでまだ有効化されていない場合、各データベース上で次の文を発行し、「データベースをフラッシュバック」を有効にします。
ALTER SYSTEM SET UNDO_RETENTION=3600 SCOPE=SPFILE; ALTER SYSTEM SET UNDO_MANAGEMENT='AUTO' SCOPE=SPFILE; SHUTDOWN IMMEDIATE; STARTUP MOUNT; SHOW PARAMETER UNDO; ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=4320 SCOPE=BOTH; ALTER DATABASE ARCHIVELOG; ALTER SYSTEM SET db_recovery_file_dest_size=<size>; ALTER SYSTEM SET db_recovery_file_dest=<directory-specification>; ALTER DATABASE FLASHBACK ON; ALTER DATABASE OPEN;
長時間の停止後でも回復が可能となるように、UNDO_RETENTIONおよびDB_FLASHBACK_RETENTION_TARGET初期化パラメータが十分に大きな値に設定されていることを確認します。
手順6 オブザーバの起動
オブザーバを起動するには、オブザーバ・コンピュータにログインし、DGMGRLを実行します。SYSとして構成に接続し、START OBSERVERコマンドを発行します。このコマンドでは戻り値がない点に注意してください。つまり、コマンドを発行してもDGMGRLプロンプトを取得しません。
DGMGRL> CONNECT sys@North_Sales.foo.com;
Password: password
Connected.
DGMGRL> START OBSERVER;
Observer started
対話によってオブザーバを起動する場合、例に示すように、DGMGRLコマンドに対するコマンドライン・パラメータとしてではなく、DGMGRL CONNECTコマンドに対するコマンド・パラメータとして接続情報を指定することをお薦めします。この慣行により、システムの他のユーザーがユーティリティ(UNIXのpsユーティリティなど)を使用して接続情報を表示することを回避できます。
スクリプトからオブザーバを起動する場合、データベース接続情報をスクリプト内に埋め込まなくてすむように、「connect/」をサポートする方法を使用することをお薦めします。クライアント側のOracleウォレットをセキュアな外部パスワード・ストアとして使用する場合(『Oracle Database Advanced Security管理者ガイド』を参照)、プライマリ・データベースおよびファスト・スタート・フェイルオーバーのターゲット・スタンバイ・データベースの接続情報を追加する必要があります。各データベースの接続情報を追加するとき、指定するデータベース接続文字列は、構成可能なデータベース・プロパティObserverConnectIdentiferまたはDGConnectIdentifierと一致している必要があります。
手順7 ファスト・スタート・フェイルオーバーの有効化
ブローカ構成のデータベースに接続されている間は、ファスト・スタート・フェイルオーバーを有効化できます。次に例を示します。
DGMGRL> ENABLE FAST_START FAILOVER; Enabled.
手順8 ファスト・スタート・フェイルオーバー構成の検証
SHOW FAST_START FAILOVERコマンドを使用して、ファスト・スタート・フェイルオーバーの設定を表示します。
DGMGRL> SHOW FAST_START FAILOVER; Fast-Start Failover: ENABLED Threshold: 30 seconds Target: DR_Sales Observer: observer.foo.com Lag Limit: 30 seconds (not in use) Shutdown Primary: TRUE Auto-reinstate: TRUE Configurable Failover Conditions Health Conditions: Corrupted Controlfile YES Corrupted Dictionary YES Inaccessible Logfile NO Stuck Archiver NO Datafile Offline YES Oracle Error Conditions: (none)
1つ以上のデータベースの定期的なメンテナンスを実行するために、ブローカ構成に含まれるデータベースの状態やプロパティの変更が必要になる場合があります。また、構成に含まれるデータベースのブローカ管理を一時的に無効化する必要が生じる場合もあります。
構成の監視中に、データベースやそのプロパティの状態を動的に変更する操作が必要になる場合があります。次の各項で、構成内のデータベースの状態またはプロパティを変更する方法について説明します。
データベース・プロパティの値は、データベースが有効か無効かに関係なくいつでも変更できます。
例7-3に、EDIT DATABASEコマンドを使用してNorth_Salesデータベースの構成可能なデータベース・プロパティLogArchiveTraceを値127に変更する方法を示します。
フィジカル・スタンバイのREDO Applyを一時的に停止します。スタンバイ・データベースの状態をAPPLY-OFFに変更するには、例7-4のようにEDIT DATABASEコマンドを入力します。
ブローカ構成またはそのデータベースのいずれかを無効化すると、それらのオブジェクトのブローカによる管理が無効化されるため、DGMGRLを使用して無効なオブジェクトを管理および監視できなくなります。ただし、ブローカによるブローカ構成の管理を無効にしても、基礎となるData Guard構成またはデータベースの実際の操作には影響しません。たとえば、Data Guard構成内のREDO転送サービスとログ適用サービスは、管理できなくなりますが、そのまま機能し続けます。
プライマリ・データベースを含むブローカ構成全体の管理を無効化するには、例7-5のように、DISABLE CONFIGURATIONコマンドを使用する必要があります。
DGMGRL> DISABLE CONFIGURATION;
プライマリ・データベースのブローカ管理を無効化するには、DISABLE CONFIGURATIONコマンドを使用する必要があります。DISABLE DATABASEコマンドで無効化されるのは、スタンバイ・データベースの管理のみです。
|
注意: スタンバイ・データベースへの接続中に構成の管理を無効化した場合は、構成を再び有効化するために、プライマリ・データベースに接続する必要があります。 |
ブローカによるオブジェクトの管理を無効にしても、そのプロファイルはブローカ構成ファイルから削除されません。該当するENABLE CONFIGURATIONまたはENABLE DATABASE コマンドを入力すると、DGMGRL(またはEnterprise Manager)によるオブジェクト管理機能を再び有効化できます。
ブローカによるスタンバイ・データベースの管理と監視が一時的に不要になった場合は、DISABLE DATABASEコマンドを使用します。
構成の他の部分が有効な場合は、スタンバイ・データベースが有効化されないようにブローカ管理を明示的に無効化できます。例7-6に、DR_Salesスタンバイ・データベースを無効化する方法を示します。
|
注意: 構成内のスタンバイ・データベースを無効にするとき、ファスト・スタート・フェイルオーバーが有効化されている場合、ターゲット・スタンバイ・データベースは無効化できません。 |
|
注意: スタンバイ・データベースへの接続中にそのスタンバイ・データベースの管理を無効化した場合は、スタンバイ・データベースのブローカ管理を再び有効化するために、プライマリ・データベースまたは別の有効化されたスタンバイ・データベースに接続する必要があります。 |
|
注意: ブローカ構成内のスタンバイ・データベースに関してブローカによる管理を無効化すると、プライマリ・データベースが消失した場合にも、そのスタンバイ・データベースはブローカでフェイルオーバー・ターゲットとして使用できなくなります。 |
最大保護モードまたは最大可用性モードのいずれかで動作している場合、ブローカでは、保護モードをサポートする最後の1つのスタンバイ・データベースを無効化できません。
REMOVE CONFIGURATIONまたはREMOVE DATABASEコマンドを使用すると、ブローカ構成ファイルから構成またはスタンバイ・データベースのプロファイルが削除され、Data Guard Brokerによる構成の管理機能またはスタンバイ・データベース管理機能がそれぞれ削除されます。
削除操作でPRESERVE DESTINATIONS句を使用した場合、実際のData Guard構成は削除されず、実際のData Guard構成とそのデータベースの操作には影響しません。
|
注意: REMOVE CONFIGURATIONまたはREMOVE DATABASEコマンドを使用した後は、ブローカ構成ファイルから削除された構成またはデータベース・プロファイルをリカバリできません。必要な場合は7.2項の手順に従って、DGMGRL(またはEnterprise Manager)で管理できるブローカ構成を作成する必要があります。 |
|
注意: 構成内のスタンバイ・データベースを削除するとき、ファスト・スタート・フェイルオーバーが有効化されている場合、ターゲット・スタンバイ・データベースは削除できません。 |
REMOVE DATABASEコマンドを使用すると、ブローカによるデータベースの管理と監視が停止され、データベースのプロファイルがブローカ構成ファイルから削除されます。
DGMGRL> SHOW CONFIGURATION; Configuration Name: DRSolution Enabled: YES Protection Mode: MaxPerformance Databases: North_Sales - Primary database DR_Sales - Physical standby database Fast-Start Failover: DISABLED Current status for "DRSolution": SUCCESS
DGMGRLは次のメッセージを戻します。このメッセージは、コマンドによりDR_Salesデータベース情報がData Guard構成ファイルから正常に削除されたことを示します。
DGMGRL> REMOVE DATABASE 'DR_Sales'; Removed database "DR_Sales" from the configuration DGMGRL> SHOW CONFIGURATION; Configuration Name: DRSolution Enabled: YES Protection Mode: MaxPerformance Databases: North_Sales - Primary database Fast-Start Failover: DISABLED Current status for "DRSolution": SUCCESS
最大保護モードまたは最大可用性モードのいずれかで動作している場合、ブローカでは、保護モードをサポートする最後の1つのスタンバイ・データベースを削除できません。
手順2 ブローカ構成の削除
次のコマンドを使用すると、構成全体がブローカによって管理および監視されなくなります。
DGMGRL> REMOVE CONFIGURATION;
|
注意: ファスト・スタート・フェイルオーバーが有効化されている場合、構成を削除できません。 |
DGMGRLは次のメッセージを戻します。このメッセージは、コマンドによりData Guard構成ファイルからすべての構成情報が正常に削除されたことを示します。
Removed configuration DGMGRL> SHOW CONFIGURATION; Error: ORA-16532: Data Guard broker configuration does not exist Configuration details cannot be determined by DGMGRL
プライマリ・データベースとスタンバイ・データベースのロールは、SWITCHOVERコマンドを使用して切り替えることができます。SWITCHOVERコマンドを発行する前に、次のことを確認する必要があります。
プライマリ・データベースとスタンバイ・データベースの状態がそれぞれTRANSPORT-ONおよびAPPLY-ONであること。
関係するすべてのデータベースが健全な状態で、エラーや警告がないこと。
スタンバイ・データベースのプロパティがプライマリ・データベース上で設定されていること。これにより、プライマリ・データベースはスタンバイ・データベースへ推移するときに正常に機能できます(次の例の太字表記を参照してください)。
プライマリ・データベース上でスタンバイREDOログ・ファイルが設定されていること。さらに、最大可用性モードまたは最大保護モードのいずれかで動作している場合、構成可能なデータベース・プロパティLogXptModeがSYNCに設定されていること。
ファスト・スタート・フェイルオーバーが有効化されている場合は、ターゲット・スタンバイ・データベースとして指定されたスタンバイ・データベースへのスイッチオーバーのみ実行できる。
手順1 プライマリ・データベースのチェック
次のように、SHOW DATABASE VERBOSEコマンドを使用して、プライマリ・データベースの状態、健全性およびプロパティをチェックします。
DGMGRL> SHOW DATABASE VERBOSE 'North_Sales'; Database Name: North_Sales Role: PRIMARY Enabled: YES Intended State: TRANSPORT-ON Instance(s): sales1 Properties: DGConnectIdentifier = 'North_Sales.foo.com' ObserverConnectIdentifier = '' LogXptMode = 'SYNC' DelayMins = '0' Binding = 'OPTIONAL' MaxFailure = '0' MaxConnections = '1' ReopenSecs = '300' NetTimeout = '30' RedoCompression = 'DISABLE' LogShipping = 'ON' PreferredApplyInstance = '' ApplyInstanceTimeout = '0' ApplyParallel = 'AUTO' StandbyFileManagement = 'AUTO' ArchiveLagTarget = '0' LogArchiveMaxProcesses = '5' LogArchiveMinSucceedDest = '1' DbFileNameConvert = 'dbs/bt, dbs/t' LogFileNameConvert = 'dbs/bt, dbs/t' FastStartFailoverTarget = 'DR_Sales' StatusReport = '(monitor)' InconsistentProperties = '(monitor)' InconsistentLogXptProps = '(monitor)' SendQEntries = '(monitor)' LogXptStatus = '(monitor)' RecvQEntries = '(monitor)' HostName = 'North_Sales.foo.com' SidName = 'sales1' StandbyArchiveLocation = '/archfs/arch/' AlternateLocation = '' LogArchiveTrace = '8191' LogArchiveFormat = 'db1r_%d_%t_%s_%r.arc' LatestLog = '(monitor)' TopWaitEvents = '(monitor)' Current status for "North_Sales": SUCCESS
特に、プライマリ・データベースの太字のプロパティおよび現在のステータスをチェックする必要があります。データベースの管理方法については、第4章を参照してください。
手順2 スイッチオーバーのターゲットとなるスタンバイ・データベースのチェック
SHOW DATABASE VERBOSEコマンドを使用して、スイッチオーバーのターゲットとなるスタンバイ・データベースの状態、健全性およびプロパティをチェックします。次に例を示します。
DGMGRL> SHOW DATABASE VERBOSE 'DR_Sales'; Database Name: DR_Sales Role: PHYSICAL STANDBY Enabled: NO Intended State: APPLY-ON Instance(s): dr_sales1 Properties: DGConnectIdentifier = 'DR_Sales.foo.com' ObserverConnectIdentifier = '' LogXptMode = 'SYNC' DelayMins = '0' Binding = 'OPTIONAL' MaxFailure = '0' MaxConnections = '1' ReopenSecs = '300' NetTimeout = '30' RedoCompression = 'DISABLE' LogShipping = 'ON' PreferredApplyInstance = '' ApplyInstanceTimeout = '0' ApplyParallel = 'AUTO' StandbyFileManagement = 'AUTO' ArchiveLagTarget = '0' LogArchiveMaxProcesses = '5' LogArchiveMinSucceedDest = '1' DbFileNameConvert = 'dbs/t, dbs/bt' LogFileNameConvert = 'dbs/t, dbs/bt' FastStartFailoverTarget = '' StatusReport = '(monitor)' InconsistentProperties = '(monitor)' InconsistentLogXptProps = '(monitor)' SendQEntries = '(monitor)' LogXptStatus = '(monitor)' RecvQEntries = '(monitor)' HostName = 'dr_sales.foo.com' SidName = 'dr_sales1' StandbyArchiveLocation = '/archfs/arch' AlternateLocation = '' LogArchiveTrace = '8191' LogArchiveFormat = 'db2r_%d_%t_%s_%r.arc' LatestLog = '(monitor)' TopWaitEvents = '(monitor)' Current status for "DR_Sales": SUCCESS
特に、データベースの現在のステータスをチェックする必要があります。
手順3 スイッチオーバー・コマンドの発行
SWITCHOVERコマンドを発行して、プライマリ・データベースとスタンバイ・データベースのロールを交換します。次の例では、ブローカが、元のプライマリ・データベースの停止および再起動を、スイッチオーバーの一部として自動的に実行する方法を示します。(DGMGRLによってプライマリ・データベースとスタンバイ・データベースが自動的に再起動されるようにブローカ環境を設定する方法については、8.1.3項を参照してください。)
DGMGRL> switchover to 'DR_Sales'; Performing switchover NOW, please wait... New primary database "DR_Sales" is opening... Operation requires shutdown of instance "sales1" on database "North_Sales" Shutting down instance "sales1"... ORA-01109: database not open Database dismounted. ORACLE instance shut down. Operation requires startup of instance "sales1" on database "North_Sales" Starting instance "sales1"... ORACLE instance started. Database mounted. Switchover succeeded, new primary is "DR_Sales"
スイッチオーバーの完了後、SHOW CONFIGURATIONおよびSHOW DATABASEコマンドを使用して、スイッチオーバー操作が正常終了したかどうかを検証します。
手順4 構成の表示
SHOW CONFIGURATIONコマンドを発行し、スイッチオーバーが正常終了したことを確認します。
DGMGRL> SHOW CONFIGURATION;
Configuration
Name: DRSolution
Enabled: YES
Protection Mode: MaxAvailability
Databases:
DR_Sales - Primary database
North_Sales - Physical standby database
- Fast-Start Failover target
Fast-Start Failover: ENABLED
Current status for "DRSolution":
SUCCESS
フェイルオーバー操作は、緊急時(通常はプライマリ・データベースにアクセスできない場合または使用できない場合)の対応策として起動します。フェイルオーバー前に5.2項を参照し、どのスタンバイ・データベースをフェイルオーバーのターゲットにするかを判断してください。次の使用例では、リモート・データベースDR_Salesへのフェイルオーバーについて説明します。
|
注意: ファスト・スタート・フェイルオーバーが有効化されている場合、ファスト・スタート・フェイルオーバーのターゲットとして指定されているスタンバイ・データベースにかぎり、またオブザーバが実行中の場合のみ、手動フェイルオーバーを実行できます。ファスト・スタート・フェイルオーバーのターゲットではないスタンバイ・データベースへの手動フェイルオーバーを実行する場合は、まずフェイルオーバー先のスタンバイ・データベースで |
手順1 ターゲット・スタンバイ・データベースへの接続
フェイルオーバー操作を実行するには、SYSDBA権限を持つユーザーとしてフェイルオーバー先のスタンバイ・データベースに接続する必要があります。次に例を示します。
DGMGRL> CONNECT sys@DR_Sales.foo.com;
Password: password
Connected.
手順2 フェイルオーバー・コマンドの発行
フェイルオーバー・コマンドを発行すると、ターゲットのスタンバイ・データベースを構成の新しいプライマリ・データベースにできます。フェイルオーバーの完了後は、5.4.3項の説明に従って再有効化しないかぎり、元のプライマリ・データベースは新しいプライマリ・データベースのスタンバイ・データベースとして使用できないことに注意してください。
手順3 構成の表示
SHOW CONFIGURATIONコマンドを発行してフェイルオーバーを確認します。
DGMGRL> SHOW CONFIGURATION; Configuration Name: DRSolution Enabled: YES Protection Mode: MaxAvailability Databases: DR_Sales - Primary database North_Sales - Physical standby database (disabled) Fast-Start Failover: DISABLED Current status for "DRSolution": Warning: ORA-16608: one or more databases have warnings
この例では、構成は最大可用性モードで動作していました。フェイルオーバーの後、保護モードは保持されました。構成では、警告ステータスも表示されています。新しいプライマリの監視可能なデータベース・プロパティStatusReportを表示すると、有効なフィジカル・スタンバイ・データベースがないために警告が発生したことがわかります。その結果、警告ステータスは、構成の保護レベルと構成済のモードが同じでないことを示しています。
手順4 新しいプライマリ・データベースのStatusReportプロパティの表示
DGMGRL> SHOW DATABASE 'DR_Sales' StatusReport;
STATUS REPORT
INSTANCE_NAME SEVERITY ERROR_TEXT
* WARNING ORA-16629: database reports a different protection level from the protection mode
手順5 データベースの表示
SHOW DATABASEコマンドを発行し、フェイルオーバーの結果として(障害が発生した)元のプライマリ・データベースがブローカにより無効化されたことを確認します。元のプライマリ・データベースは、5.4.3項の説明に従って再有効化する必要があります。
DGMGRL> SHOW DATABASE 'North_Sales'; Database Name: North_Sales Role: PHYSICAL STANDBY Enabled: NO Intended State: APPLY-ON Instance(s): sales1 Current status for "North_Sales": Error: ORA-16661: the standby database needs to be reinstated
プライマリ・データベースがフラッシュバック・データベースを使用して構成されている場合は、障害が発生したプライマリ・データベースを新しいプライマリ・データベースのスタンバイ・データベースとしてすぐに回復できます。障害が発生したプライマリ・データベースは、元のスタンバイ・データベースと同じスタンバイ・タイプとして回復します。たとえば、フィジカル・スタンバイ・データベースへのフェイルオーバーであった場合、元のプライマリはフィジカル・スタンバイ・データベースとして回復されます。
障害が発生したプライマリ・データベースを回復するには、データベースを起動してマウントされた状態にします。次に、DGMGRLを実行し、新しいプライマリ・データベースに接続して元のプライマリ・データベースを回復します。
手順1 元のプライマリ・データベースの再起動
% sqlplus sys as sysdba
Enter password: password
SQL> STARTUP MOUNT;
ORACLE instance started.
Total System Global Area 234364928 bytes
Fixed Size 1296352 bytes
Variable Size 209717280 bytes
Database Buffers 16777216 bytes
Redo Buffers 6574080 bytes
Database mounted.
手順2 元のプライマリ・データベースの回復
% dgmgrl connect sys
Password: password
Connected.
DGMGRL> REINSTATE DATABASE 'North_Sales';
Reinstating database "North_Sales", please wait...
Operation requires shutdown of instance "sales1" on database "North_Sales"
Shutting down instance "sales1"...
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "sales1" on database "North_Sales"
Starting instance "sales1"...
ORACLE instance started.
Database mounted.
Continuing to reinstate database "North_Sales" ...
Reinstatement of database "North_Sales" succeeded
プライマリの回復が完了したら、SHOW CONFIGURATIONコマンドおよびSHOW DATABASEコマンドを発行して、元のプライマリが正常に回復したことを確認してください。
手順3 構成およびデータベースの表示
DGMGRL> SHOW CONFIGURATION; Configuration Name: DRSolution Enabled: YES Protection Mode: MaxAvailability Databases: DR_Sales - Primary database North_Sales - Physical standby database Fast-Start Failover: DISABLED Current status for "DRSolution": SUCCESS DGMGRL> SHOW DATABASE 'DR_Sales'; Database Name: DR_Sales Role: PRIMARY Enabled: YES Intended State: TRANSPORT-ON Instance(s): dr_sales1 Current status for "DR_Sales": SUCCESS DGMGRL> SHOW DATABASE 'North_Sales'; Database Name: North_Sales Role: PHYSICAL STANDBY Enabled: YES Intended State: APPLY-ON Instance(s): sales1 Current status for "North_Sales": SUCCESS
スナップショット・スタンバイ・データベースに変換するフィジカル・スタンバイ・データベースがある場合は、DGMGRLのCONVERT DATABASEコマンドを使用します。データベースがスナップショット・スタンバイ・データベースとして動作中の間は、REDOデータはデータベースで引き続き受信されますが、スナップショット・スタンバイ・データベースが元のフィジカル・スタンバイ・データベースに変換されるまでREDOデータは適用されません。
スナップショット・スタンバイ・データベースの作成にはフラッシュバック・データベース機能が必要です。フラッシュバック・データベースが無効な場合、この機能はスナップショット・スタンバイ・データベースへの変換中に自動的に有効になります。フラッシュバック・データベースが無効な状態でデータベースが開かれている場合は、ブローカは自動的にデータベースを再起動してマウント済状態にします。ユーザーによる処理は不要です。
DGMGRL> CONVERT DATABASE 'DR_Sales' to SNAPSHOT STANDBY; Converting database "DR_Sales" to a Snapshot Standby database, please wait... Database "DR_Sales" converted successfully DGMGRL> SHOW CONFIGURATION; Configuration Name: DRSolution Enabled: YES Protection Mode: MaxPerformance Databases: North_Sales - Primary database DR_Sales - Snapshot standby database Fast-Start Failover: DISABLED Current status for "DRSolution": SUCCESS
データベースを元のフィジカル・スタンバイ・データベースに戻すときは、次に示すように、DGMGRLのCONVERT DATABASEコマンドを再び使用します。スナップショット・スタンバイ・データベースとして動作中にデータベースに加えられた更新はすべて破棄されます。データベースが元のフィジカル・スタンバイ・データベースに変換されると、REDO Applyによって、すべての累積REDOデータが適用されます。
DGMGRL> CONVERT DATABASE 'DR_Sales' to PHYSICAL STANDBY; Converting database "DR_Sales" to a Physical Standby database, please wait... Operation requires shutdown of instance "dr_sales1" on database "DR_Sales" Shutting down instance "dr_sales1"... Database closed. Database dismounted. ORACLE instance shut down. Operation requires startup of instance "dr_sales1" on database "DR_Sales" Starting instance "dr_sales1"... ORACLE instance started. Database mounted. Continuing to convert database "DR_Sales" ... Operation requires shutdown of instance "dr_sales1" on database "DR_Sales" Shutting down instance "dr_sales1"... ORA-01109: database not open Database dismounted. ORACLE instance shut down. Operation requires startup of instance "dr_sales1" on database "DR_Sales" Starting instance "dr_sales1"... ORACLE instance started. Database mounted. Database "DR_Sales" converted successfully
この項の使用例は、SHOWコマンドとデータベースの監視可能なプロパティを使用し、障害条件を識別して解決する方法を示しています。
手順1 構成のステータス・チェック
ブローカ構成のステータスは、ブローカ構成のすべてのデータベースとインスタンスのステータスが集計されたものです。最初に構成ステータスをチェックすると、さらに処置が必要かどうかを判断できます。構成ステータスがSUCCESSの場合は、ブローカ構成全体が正常に動作しています。ただし、次のエラーが表示される場合は、構成の一部に問題があることを意味します。
DGMGRL> SHOW CONFIGURATION; Configuration Name: DRSolution Enabled: NO Protection Mode: MaxPerformance Fast-Start Failover: DISABLED Databases: North_Sales - Primary database DR_Sales - Physical standby database Current status for "DRSolution": Warning: ORA-16607: one or more databases have failed
この場合は、手順2に進んで実際の障害を判別する必要があります。
手順2 データベースのステータス・チェック
障害が発生しているデータベースを識別するには、構成内のデータベースすべてを1つずつチェックする必要があります。この例では、プライマリ・データベースNorth_Sales上でエラーが発生しています。
DGMGRL> SHOW DATABASE 'North_Sales';
このコマンドは次の出力を戻します。
Database
Name: North_Sales
Role: PRIMARY
Enabled: YES
Intended State: TRANSPORT-ON
Instance(s):
sales1
Current status for "North_Sales":
Error: ORA-16810: multiple errors or warnings detected for the database
手順3 監視可能なデータベース・プロパティStatusReportのチェック
メッセージORA-16810が表示される場合は、監視可能なデータベース・プロパティStatusReportを使用して各エラーまたは警告を識別できます。
DGMGRL> SHOW DATABASE 'North_Sales' 'StatusReport';
STATUS REPORT
INSTANCE_NAME SEVERITY ERROR_TEXT
sales1 ERROR ORA-16737: the redo transport service for
standby "DR_Sales" has an error
sales1 WARNING ORA-16714: the value of property
LogArchiveTrace is inconsistent with the database setting
sales1 WARNING ORA-16715: redo transport-related property
ReopenSecs of standby database "DR_Sales" is inconsistent
手順4 監視可能なデータベース・プロパティLogXptStatusのチェック
手順3に示したステータス・レポートには、エラーORA-16737が表示されています。正確なログ転送エラーを識別するには、監視可能なデータベース・プロパティLogXptStatusを使用します。
DGMGRL> SHOW DATABASE 'North_Sales' 'LogXptStatus';
LOG TRANSPORT STATUS
PRIMARY_INSTANCE_NAME STANDBY_DATABASE_NAME STATUS
sales1 DR_Sales ORA-12541: TNS:no listener
これで、REDO転送サービスが失敗した原因が正確にわかります。このエラーを解決するには、フィジカル・スタンバイ・データベースDR_Salesのリスナーを起動します。
手順5 監視可能なデータベース・プロパティInconsistentPropertiesのチェック
手順3のステータス・レポートには、警告ORA-16714も表示されています。LogArchiveTraceプロパティに関して一貫性のない値を識別するには、監視可能なデータベース・プロパティInconsistentPropertiesを使用します。
DGMGRL> SHOW DATABASE 'North_Sales' 'InconsistentProperties';
INCONSISTENT PROPERTIES
INSTANCE_NAME PROPERTY_NAME MEMORY_VALUE SPFILE_VALUE BROKER_VALUE
sales1 LogArchiveTrace 255 0 0
現在のデータベース・メモリー値(255)が、サーバー・パラメータ・ファイル(SPFILE)の値(0)ともData Guard Brokerのプロパティ値(0)とも異なっています。データベース・メモリー値が正しいと判断した場合は、次のコマンドを使用してData Guard Brokerのプロパティ値を更新できます。
DGMGRL> EDIT DATABASE 'North_Sales' SET PROPERTY 'LogArchiveTrace'=255; Property "LogArchiveTrace" updated
このコマンドを発行すると、LogArchiveTraceの値の一貫性が保たれるようにサーバー・パラメータ・ファイルの値も更新されます。
手順6 監視可能なデータベース・プロパティInconsistentLogXptPropsのチェック
手順3のステータス・レポートには、もう1つの警告ORA-16715も表示されています。REDO転送の構成可能なデータベース・プロパティReopenSecsについて一貫性のない値を識別するには、監視可能なデータベース・プロパティInconsistentLogXptPropsを使用します。
DGMGRL> SHOW DATABASE 'North_Sales' 'InconsistentLogXptProps';
INCONSISTENT LOG TRANSPORT PROPERTIES
INSTANCE_NAME STANDBY_NAME PROPERTY_NAME MEMORY_VALUE BROKER_VALUE
sales1 DR_Sales ReopenSecs 600 300
現行のデータベース・メモリー値(600)は、Data Guard Brokerのプロパティ値(300)と一致しません。ブローカのプロパティ値が正しいと判断した場合は、次の例に示すように、スタンバイ・データベースのプロパティを同じ値で再編集して一貫性のある値にできます。
DGMGRL> EDIT DATABASE 'DR_Sales' SET PROPERTY 'ReopenSecs'=300; Property "ReopenSecs" updated
スタンバイ・データベースを再び有効化するか、プライマリ・データベースの状態をTRANSPORT-ONにリセットして、非一貫性を解決することもできますが、プロパティを再編集するのが最も簡単な方法です。