この章では、Data Guardコマンドライン・インタフェース(DGMGRL)の使用を開始するための前提条件について説明します。また、DGMGRLを使用してブローカ構成を作成、管理および監視する方法について例をあげて説明します。
この章の内容は、次のとおりです。
DGMGRL使用の前提条件の1つは、1つのプライマリ・データベースと任意の数のスタンバイ・データベースが存在していることです。構成内のすべてのデータベースについて、DG_BROKER_START
初期化パラメータをTRUE
に設定する必要があります。ブローカではサーバー・パラメータ・ファイルを使用してください(2.1項および7.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
)はSouth_Sales
です。
保護モードは最大パフォーマンス・モードです。
プライマリ・データベースおよびスタンバイ・データベースの両方にスタンバイREDOログ・ファイルが構成されます。両方のデータベースの転送モードはASYNC
です。
スタンバイ・データベースはフィジカル・スタンバイ・データベースです。
この項では、プライマリ・データベースNorth_Salesおよびスタンバイ・データベースSouth_Salesを含むDRSolutionというブローカ構成の作成例を示します。
次の手順では、構成を作成してフィジカル・スタンバイ・データベースを1つ追加する方法について説明します。
DGMGRLを起動するには、Oracle Data Guardがインストールされているシステム上で、コマンドライン・プロンプトからdgmgrl
と入力します。
$ dgmgrl
DGMGRLプロンプトが表示されます。
DGMGRL>
任意のコマンド(HELP
、EXIT
またはQUIT
以外)を指定する前に、まずDGMGRL CONNECT
コマンドを使用してプライマリ・データベースに接続する必要があります。
データベースへの接続に使用するアカウント(この例ではSYS
)には、プライマリ・データベースとスタンバイ・データベースでのSYSDBA
権限が必要です。
注意: SYSDBA はCONNECT コマンドのデフォルト設定であるため、このコマンドでAS SYSDBA を指定する必要はありません。 |
次の例は、CONNECT
コマンドの2つのバリエーションを示しています。例6-1に、ローカル・システム上のデフォルト・データベースに接続する方法を示し、例6-2に、リモート・システムにあるデータベースに接続するためのOracle Net Services接続識別子(
North_Sales.example.com)を示します。
この2つの例ではどちらもパスワードの入力を要求されます。
ブローカ構成を作成するには、まずプライマリ・データベース(この例ではNorth_Sales
)のプロファイルを含む構成を定義します。後のコマンドで、スタンバイ・データベースSouth_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.example.com;
DGMGRLは次の情報を戻します。
Configuration "DRSolution" created with primary database "North_Sales"
名前North_Sales
は、このデータベースのDB_UNIQUE_NAME
初期化パラメータの値です。
SHOW CONFIGURATION
コマンドを使用して、構成に関する簡単なサマリーを表示します。
DGMGRL> SHOW CONFIGURATION;
DGMGRLは次の情報を戻します。
Configuration - DRSolution Protection Mode: MaxPerformance Databases: North_Sales - Primary database Fast-Start Failover: DISABLED Configuration Status: DISABLED
DRSolution
構成にスタンバイ・データベースを追加するには、ADD DATABASE
コマンドを使用してスタンバイ・データベース用のブローカ構成プロファイルを作成します。
次のコマンドは、スタンバイ・データベースとしてSouth_Sales
を定義しています。これは、プライマリ・データベースNorth_Sales
に関連付けられているスタンバイ・データベースです。
DGMGRL> ADD DATABASE 'South_Sales' AS > CONNECT IDENTIFIER IS South_Sales.example.com;
DGMGRLは次の情報を戻します。
Database "South_Sales" added
名前South_Sales
は、データベースのDB_UNIQUE_NAME
初期化パラメータの値です。
SHOW CONFIGURATION
コマンドを使用して、South_Sales
データベースがDRSolution
構成に追加されたことを確認します。
DGMGRL> SHOW CONFIGURATION;
DGMGRLは次の情報を戻します。
Configuration - DRSolution Protection Mode: MaxPerformance Databases: North_Sales - Primary database South_Sales - Physical standby database Fast-Start Failover: DISABLED Configuration Status: DISABLED DGMGRL>
DGMGRLを使用して構成を作成した後は、いつでもデータベース・プロパティを設定できます。たとえば、次の文は、South_Sales
スタンバイ・データベースのデータベース・プロパティLogArchiveFormat
およびStandbyArchiveLocation
を設定します。
DGMGRL> EDIT DATABASE 'South_Sales' SET PROPERTY 'LogArchiveFormat'='log_%t_%s_%r_%d.arc'; Property "LogArchiveFormat" updated. DGMGRL> EDIT DATABASE 'South_Sales' SET PROPERTY 'StandbyArchiveLocation'='/archfs/arch/'; Property "StandbyArchiveLocation" updated.
データベースのすべてのプロパティとその値を表示するには、SHOW DATABASE VERBOSE
コマンドを使用します。次の例は、South_Sales
データベースのプロパティを示しています。
DGMGRL> SHOW DATABASE VERBOSE 'South_Sales'; Database - South_Sales Role: PHYSICAL STANDBY Intended State: OFFLINE Transport Lag: (unknown) Apply Lag: (unknown) Real Time Query: OFF Instance(s): south_sales1 Properties: DGConnectIdentifier = 'South_Sales.example.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 = '' InconsistentProperties = '(monitor)' InconsistentLogXptProps = '(monitor)' SendQEntries = '(monitor)' LogXptStatus = '(monitor)' RecvQEntries = '(monitor)' SidName = 'south_sales1' StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=south_sales1.example.com)(PORT=2840)) (CONNECT_DATA=(SERVICE_NAME=South_Sales_DGMGRL.example.com) (INSTANCE_NAME=south_sales1)(SERVER=DEDICATED)))' StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST' AlternateLocation = '' LogArchiveTrace = '255' LogArchiveFormat = 'db2r_%d_%t_%s_%R.arc' LatestLog = '(monitor)' TopWaitEvents = '(monitor)' Database Status: DISABLED
データベースのブローカ管理が有効な場合は、データベース・プロパティ値を設定すると、対応するデータベースの基礎となるパラメータ値が変更され、変更されたパラメータの値がサーバー・パラメータ・ファイルに反映されます。したがって、データベースがOracle Enterprise ManagerおよびDGMGRL以外(SQL*Plusインタフェースなど)から停止および再起動された場合は、更新されたサーバー・パラメータ・ファイルの新規パラメータ値がデータベースの起動時に使用されます。ただし、SQL文を使用してREDO転送サービスの初期化パラメータを変更しないでください。それを行うと、データベースとブローカ間の一貫性が失われます。
注意: 通常、データベース・プロパティは、対応する初期化パラメータ、SQL文またはPL/SQLプロシージャ(通常は大文字)と視覚的に区別しやすいように、大/小文字混合表記(LogArchiveFormat など)で表示されます。 ただし、プロパティ管理コマンドでは大/小文字は区別されないため、大文字、小文字または混合表記でコマンドを発行できます。 |
プロパティは、データベースが有効な場合でも無効な場合でも変更できます。ただし、プロパティの変更時にデータベースが無効な場合、変更結果はデータベースが有効化されるまで有効になりません。
これまでDRSolution
構成は無効化されており、Data Guard Brokerの制御下にはありませんでした。ブローカ構成に対するデータベースの構成および必要なデータベース・プロパティの設定を完了した後に、構成を有効化してData Guard Brokerで管理できるようにする必要があります。
次のいずれかを有効化できます。
すべてのデータベースを含む構成全体
スタンバイ・データベース
次のコマンドを使用すると、すべてのデータベースを含む構成全体を有効化できます。
DGMGRL> ENABLE CONFIGURATION; Enabled.
構成の表示
SHOW
コマンドを使用して、構成とそのデータベースが正常に有効化されていることを確認します。
DGMGRL> SHOW CONFIGURATION;
DGMGRLは次の情報を戻します。
Configuration - DRSolution Protection Mode: MaxPerformance Databases: North_Sales - Primary database South_Sales - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS
データベースの有効化
この手順は、前にDISABLE DATABASE
コマンドを使用してスタンバイ・データベースを無効化している場合にのみ実行します。通常は、構成を有効化するとスタンバイ・データベースも有効化されます。
DGMGRL> ENABLE DATABASE 'South_Sales'; Enabled.
データベースの表示
DGMGRL> SHOW DATABASE 'South_Sales'; Database - South_Sales Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds Apply Lag: 0 seconds Real Time Query: OFF Instance(s): south_sales1 Database Status: SUCCESS
構成の保護モードはいつでも変更できます。ただし、最大保護モードまたは最大可用性モードに移行する場合は、構成内でアクティビティが発生していないときに変更することをお薦めします。
注意: 保護モードを最大パフォーマンス・モードから最大保護モードに変更すると、ブローカによりプライマリ・データベースが自動的に再起動されます。データベースの再起動を回避するには、まず保護モードを最大可用性モードに変更してから、次に保護モードを最大保護モードに変更します。保護モードを次のように変更する場合、プライマリ・データベースの再起動は不要です。
|
この使用例では、構成の保護モードをMAXAVAILABILITY
モードに設定します。この保護モードに設定するには、少なくとも1つのスタンバイ・データベースをスタンバイREDOログ・ファイルを使用するように構成し、データベース・プロパティLogXptMode
をSYNC
に設定する必要があります。
保護モードをMAXAVAILABILITY
モードに設定するため、スタンバイ・データベースに十分なスタンバイREDOログ・ファイルが構成されていることを確認する必要があります。
EDIT DATABASE
(プロパティ)コマンドをスタンバイ・データベースで使用し、設定する保護モードに対応するREDO転送サービスを設定します。保護モードをMAXAVAILABILITY
に設定する場合は、少なくとも1つのスタンバイ・データベースのREDO転送サービスをSYNC
に設定する必要があります。次に例を示します。
DGMGRL> EDIT DATABASE 'South_Sales' SET PROPERTY 'LogXptMode'='SYNC'; Property "LogXptMode" updated
スタンバイREDOログ・ファイルを使用するように構成されたスタンバイ・データベースが構成内に含まれていないかぎり、このコマンドは正常終了しません。
EDIT
CONFIGURATION
コマンドを使用して、ブローカ構成の保護モードをMAXAVAILABILITY
にアップグレードします。
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY; Succeeded.
このコマンドを入力したときに構成が無効な場合、実際の保護モードの変更は、ENABLE CONFIGURATION
コマンドで構成が有効化されるまで適用されません。保護モードの要件をサポートできるスタンバイ・データベースが構成内に存在しない場合、構成は有効化できません。
SHOW CONFIGURATION
コマンドを使用して構成の現在の保護モードを表示します。
DGMGRL> SHOW CONFIGURATION; Configuration - DRSolution Protection Mode: MaxAvailability Databases: North_Sales - Primary database South_Sales - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS
ブローカ構成のデータベースに接続されているかぎり、オブザーバ・サイトを含め、任意のサイトからファスト・スタート・フェイルオーバーを有効化できます。ファスト・スタート・フェイルオーバーを有効化しても、フェイルオーバーは起動されません。かわりに、フェイルオーバーの条件が満たされた場合に、構成を監視しているオブザーバがファスト・スタート・フェイルオーバーを起動できるようになります。
ファスト・スタート・フェイルオーバーは、最大パフォーマンス保護モードまた最大可用性保護モードで動作している構成で有効化できます。この項では、ファスト・スタート・フェイルオーバーを有効化し、構成の保護モードが最大可用性モードに設定されるオブザーバを起動する手順を説明します。
スタンバイREDOログは、プライマリ・データベースおよびスタンバイ・データベースで構成されている必要があります。スタンバイREDOログを構成する前に、ログ適用サービスを停止する必要があります。
参照: スタンバイREDOログ・ファイルの構成方法は、『Oracle Data Guard概要および管理』を参照してください。 |
データベース・プロパティLogXptMode
は、プライマリ・データベースとターゲット・スタンバイ・データベースでSYNC
に設定されている必要があります。
設定する保護モードに対応するREDO転送サービスを設定するには、プライマリ・データベースおよびターゲット・スタンバイ・データベースでEDIT DATABASE
(プロパティ)コマンドを使用します。たとえば、保護モードをMAXAVAILABILITY
に設定する場合、次の例に示すように、プライマリ・データベースおよびターゲット・スタンバイ・データベースで、LogXptMode
プロパティをSYNC
に設定する必要があります。
DGMGRL> EDIT DATABASE 'North_Sales' SET PROPERTY 'LogXptMode'='SYNC'; Property "LogXptMode" updated
DGMGRL> EDIT DATABASE 'South_Sales' SET PROPERTY 'LogXptMode'='SYNC'; Property "LogXptMode" updated
データベースがスタンバイREDOログ・ファイルで構成されていないかぎり、ブローカではこれらのコマンドが正常終了しません。
2つ以上のスタンバイ・データベースがある場合、プライマリ・データベースのFastStartFailoverTarget
構成プロパティを設定して目的のターゲット・スタンバイ・データベースを指定します。ファスト・スタート・フェイルオーバーが実際に有効化される際、ブローカにより、今度は反対にターゲット・スタンバイ・データベースのこのプロパティが将来のターゲット・スタンバイ・データベースとしてプライマリ・データベースを指すように設定されます。このプロパティは自動的に設定されるため、ターゲット・スタンバイ・データベースでこのプロパティを設定する必要はありません。次に例を示します。
DGMGRL> EDIT DATABASE 'North_Sales' SET PROPERTY FastStartFailoverTarget='South_Sales'; Property "FastStartFailoverTarget" updated
MAXAVAILABILITY
へのアップグレード(必要な場合)保護モードのアップグレードが必要な場合、次のDGMGRL EDIT CONFIGURATION
コマンドを使用します。次に例を示します。
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
プライマリ・データベースおよびスタンバイ・データベースでまだ有効化されていない場合、各データベース上で次の文を発行し、「データベースをフラッシュバック」を有効にします。
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
初期化パラメータが十分に大きな値に設定されていることを確認します。
オブザーバを起動するには、オブザーバ・コンピュータにログインし、DGMGRLを実行します。SYSDBA
権限を持つユーザーとして構成に接続し、START OBSERVER
コマンドを発行します。このコマンドでは戻り値がない点に注意してください。つまり、コマンドを発行してもDGMGRLプロンプトを取得しません。
DGMGRL> CONNECT sys@North_Sales.example.com;
Password: password
Connected.
DGMGRL> START OBSERVER;
Observer started
対話形式でオブザーバを起動する場合、接続資格証明をDGMGRL接続コマンドに対するコマンドライン・パラメータとして指定しないことをお薦めします。この処理により、システムの他のユーザーがユーティリティ(UNIXのpsユーティリティなど)を使用して接続資格証明を表示することを回避できます。また、クリアテキストのパスワードがユーザーの端末に表示されるのを防ぐことができます。
スクリプトからオブザーバを起動する場合、データベース接続資格証明をスクリプト内に埋め込まなくてすむように、「connect/」をサポートする方法を使用することをお薦めします。クライアント側のOracleウォレットをセキュアな外部パスワード・ストアとして使用する場合(『Oracle Database Advanced Security管理者ガイド』を参照)、プライマリ・データベースおよびファスト・スタート・フェイルオーバーのターゲット・スタンバイ・データベースの資格証明を追加する必要があります。各データベースの資格証明を追加するとき、指定するデータベース接続文字列は、データベース・プロパティObserverConnectIdentifer
またはDGConnectIdentifier
と一致している必要があります。
ブローカ構成のデータベースに接続されている間は、ファスト・スタート・フェイルオーバーを有効化できます。次に例を示します。
DGMGRL> ENABLE FAST_START FAILOVER; Enabled.
SHOW FAST_START FAILOVER
コマンドを使用して、ファスト・スタート・フェイルオーバーの設定を表示します。
DGMGRL> SHOW FAST_START FAILOVER; Fast-Start Failover: ENABLED Threshold: 30 seconds Target: South_Sales Observer: observer.example.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)
次のコマンドは、ファスト・スタート・フェイルオーバーが有効化された後、相互に指定しあうようにFastStartFailoverTarget
プロパティが設定されることを示しています。最初のコマンドは現在のプライマリ・データベースNorth_Sales
に対して発行されており、FastStartFailoverTarget
プロパティの値として現在のターゲット・スタンバイSouth_Sales
を指定しています。2つめのコマンドはターゲット・スタンバイSouth_Sales
に対して発行されており、プライマリとして引き継ぐ際、ターゲット・スタンバイの将来のターゲット・スタンバイとして現在のプライマリNorth_Sales
を指定しています。
DGMGRL> SHOW DATABASE 'North_Sales' FastStartFailoverTarget; FastStartFailoverTarget='South_Sales'; DGMGRL> SHOW DATABASE 'South_Sales' FastStartFailoverTarget; FastStartFailoverTarget='North_Sales';
1つ以上のデータベースの定期的なメンテナンスを実行するために、ブローカ構成に含まれるデータベースの状態やプロパティの変更が必要になる場合があります。また、構成に含まれるデータベースのブローカ管理を一時的に無効化する必要が生じる場合もあります。
構成の監視中に、データベースやそのプロパティの状態を動的に変更する操作が必要になる場合があります。次の各項で、構成内のデータベースの状態またはプロパティを変更する方法について説明します。
データベース・プロパティの値は、データベースが有効か無効かに関係なくいつでも変更できます。
例6-3に、EDIT DATABASE
コマンドを使用してNorth_Sales
データベースのデータベース・プロパティLogXptMode
を値ASYNCに変更する方法を示します。
フィジカル・スタンバイのREDO Applyを一時的に停止します。スタンバイ・データベースの状態をAPPLY-OFF
に変更するには、例6-4のようにEDIT DATABASE
コマンドを入力します。
ブローカ構成またはそのデータベースのいずれかを無効化すると、それらのオブジェクトのブローカによる管理が無効化されるため、DGMGRLを使用して無効なオブジェクトを管理および監視できなくなります。ただし、ブローカによるブローカ構成の管理を無効にしても、基礎となるData Guard構成またはデータベースの実際の操作には影響しません。たとえば、Data Guard構成内のREDO転送サービスとログ適用サービスは、管理できなくなりますが、そのまま機能し続けます。
プライマリ・データベースを含むブローカ構成全体の管理を無効化するには、例6-5
のように、DISABLE CONFIGURATIONコマンドを使用する必要があります。
DGMGRL> DISABLE CONFIGURATION;
プライマリ・データベースのブローカ管理を無効化するには、DISABLE CONFIGURATION
コマンドを使用する必要があります。DISABLE DATABASE
コマンドで無効化されるのは、スタンバイ・データベースの管理のみです。
注意: スタンバイ・データベースへの接続中に構成の管理を無効化した場合は、構成を再び有効化するために、プライマリ・データベースに接続する必要があります。 |
ブローカによるオブジェクトの管理を無効にしても、そのプロファイルはブローカ構成ファイルから削除されません。該当するENABLE
CONFIGURATION
またはENABLE DATABASE
コマンドを入力すると、DGMGRL(またはEnterprise Manager)によるオブジェクト管理機能を再び有効化できます。
ブローカによるスタンバイ・データベースの管理と監視が一時的に不要になった場合は、DISABLE DATABASE
コマンドを使用します。
構成の他の部分が有効な場合は、スタンバイ・データベースが有効化されないようにブローカ管理を明示的に無効化できます。例6-6に、スタンバイ・データベースSouth_Sales
を無効化する方法を示します。
注意: 構成内のスタンバイ・データベースを無効にするとき、ファスト・スタート・フェイルオーバーが有効化されている場合、ターゲット・スタンバイ・データベースは無効化できません。 |
注意: スタンバイ・データベースへの接続中にそのスタンバイ・データベースの管理を無効化した場合は、スタンバイ・データベースのブローカ管理を再び有効化するために、プライマリ・データベースまたは別の有効化されたスタンバイ・データベースに接続する必要があります。 |
注意: ブローカ構成内のスタンバイ・データベースに関してブローカによる管理を無効化すると、プライマリ・データベースが消失した場合にも、そのスタンバイ・データベースはブローカでフェイルオーバー・ターゲットとして使用できなくなります。 |
最大保護モードまたは最大可用性モードのいずれかで動作している場合、ブローカでは、保護モードをサポートする最後の1つのスタンバイ・データベースを無効化できません。
REMOVE CONFIGURATION
またはREMOVE DATABASE
コマンドを使用すると、ブローカ構成ファイルから構成またはスタンバイ・データベースのプロファイルが削除され、Data Guard Brokerによる構成の管理機能またはスタンバイ・データベース管理機能がそれぞれ削除されます。
削除操作でPRESERVE DESTINATIONS
句を使用した場合、実際のData Guard構成は削除されず、実際のData Guard構成とそのデータベースの操作には影響しません。
注意: REMOVE CONFIGURATION またはREMOVE DATABASE コマンドを使用した後は、ブローカ構成ファイルから削除された構成またはデータベース・プロファイルをリカバリできません。必要な場合は6.2項の手順に従って、DGMGRL(またはEnterprise Manager)で管理できるブローカ構成を作成する必要があります。 |
注意: 構成内のスタンバイ・データベースを削除するとき、ファスト・スタート・フェイルオーバーが有効化されている場合、ターゲット・スタンバイ・データベースは削除できません。 |
REMOVE DATABASE
コマンドを使用すると、ブローカによるデータベースの管理と監視が停止され、データベースのプロファイルがブローカ構成ファイルから削除されます。
South_Sales
スタンバイ・データベースを削除する前の構成を示します。
DGMGRL> SHOW CONFIGURATION; Configuration - DRSolution Protection Mode: MaxPerformance Databases: North_Sales - Primary database South_Sales - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS
DGMGRLのREMOVE DATABASE
コマンドを発行して、South_Sales
データベース情報をData Guard構成ファイルから削除します。
DGMGRL> REMOVE DATABASE 'South_Sales'; Removed database "South_Sales" from the configuration
South_Sales
スタンバイ・データベースを削除した後の構成を示します。
DGMGRL> SHOW CONFIGURATION; Configuration - DRSolution Protection Mode: MaxPerformance Databases: North_Sales - Primary database Fast-Start Failover: DISABLED Configuration Status: SUCCESS
最大保護モードまたは最大可用性モードのいずれかで動作している場合、ブローカでは、保護モードをサポートする最後の1つのスタンバイ・データベースを削除できません。
次のコマンドを使用すると、構成全体がブローカによって管理および監視されなくなります。
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
に設定されていること。
ファスト・スタート・フェイルオーバーが有効化されている場合は、ターゲット・スタンバイ・データベースとして指定されたスタンバイ・データベースへのスイッチオーバーのみ実行できる。
次のように、SHOW DATABASE VERBOSE
コマンドを使用して、プライマリ・データベースの状態、健全性およびプロパティをチェックします。
DGMGRL> SHOW DATABASE VERBOSE 'North_Sales'; Database - North_Sales Role: PRIMARY Intended State: TRANSPORT-ON Instance(s): north_sales1 Properties: DGConnectIdentifier = 'North_Sales.example.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 = 'South_Sales' InconsistentProperties = '(monitor)' InconsistentLogXptProps = '(monitor)' SendQEntries = '(monitor)' LogXptStatus = '(monitor)' RecvQEntries = '(monitor)' SidName = 'north_sales1' StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=North_Sales.example.com)(PORT=2840)) (CONNECT_DATA=(SERVICE_NAME=North_Sales_DGMGRL.example.com) (INSTANCE_NAME=north_sales1)(SERVER=DEDICATED)))' StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST' AlternateLocation = '' LogArchiveTrace = '255' LogArchiveFormat = 'db1r_%d_%t_%s_%R.arc' LatestLog = '(monitor)' TopWaitEvents = '(monitor)' Database Status: SUCCESS DGMGRL>
特に、プライマリ・データベースの太字のプロパティおよび現在のステータスをチェックする必要があります。データベースの管理方法については、第4章を参照してください。
SHOW DATABASE VERBOSE
コマンドを使用して、スイッチオーバーのターゲットとなるスタンバイ・データベースの状態、健全性およびプロパティをチェックします。次に例を示します。
DGMGRL> SHOW DATABASE VERBOSE 'South_Sales'; Database - South_Sales Role: PHYSICAL STANDBY Intended State: ONLINE Transport Lag: 0 Apply Lag: 0 Real Time Query: OFF Instance(s): south_sales1 Properties: DGConnectIdentifier = 'South_Sales.example.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 = 'North_Sales' InconsistentProperties = '(monitor)' InconsistentLogXptProps = '(monitor)' SendQEntries = '(monitor)' LogXptStatus = '(monitor)' RecvQEntries = '(monitor)' SidName = 'south_sales1' StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=south_sales1.example.com)(PORT=2840)) (CONNECT_DATA=(SERVICE_NAME=South_Sales_DGMGRL.example.com) (INSTANCE_NAME=south_sales1)(SERVER=DEDICATED)))' StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST' AlternateLocation = '' LogArchiveTrace = '255' LogArchiveFormat = 'db2r_%d_%t_%s_%R.arc' LatestLog = '(monitor)' TopWaitEvents = '(monitor)' Database Status: SUCCESS
特に、データベースの現在のステータスをチェックする必要があります。
SWITCHOVER
コマンドを発行して、プライマリ・データベースとスタンバイ・データベースのロールを交換します。次の例では、ブローカが、元のプライマリ・データベースの停止および再起動を、スイッチオーバーの一部として自動的に実行する方法を示します。(DGMGRLによってプライマリ・データベースとスタンバイ・データベースが自動的に再起動されるようにブローカ環境を設定する方法については、7.1.3項を参照してください。)
DGMGRL> switchover to 'South_Sales'; Performing switchover NOW, please wait... New primary database "South_Sales" is opening... Operation requires shutdown of instance "north_sales1" on database "North_Sales" Shutting down instance "north_sales1"... ORA-01109: database not open Database dismounted. ORACLE instance shut down. Operation requires startup of instance "north_sales1" on database "North_Sales" Starting instance "north_sales1"... ORACLE instance started. Database mounted. Switchover succeeded, new primary is "South_Sales"
スイッチオーバーの完了後、SHOW CONFIGURATION
およびSHOW DATABASE
コマンドを使用して、スイッチオーバー操作が正常終了したかどうかを検証します。
SHOW CONFIGURATION
コマンドを発行し、スイッチオーバーが正常終了したことを確認します。
DGMGRL> SHOW CONFIGURATION; Configuration - DRSolution Protection Mode: MaxAvailability Databases: South_Sales - Primary database North_Sales - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS
フェイルオーバー操作は、緊急時(通常はプライマリ・データベースにアクセスできない場合または使用できない場合)の対応策として起動します。フェイルオーバー前に5.2項を参照し、どのスタンバイ・データベースをフェイルオーバーのターゲットにするかを判断してください。次の使用例では、リモート・データベースSouth_Sales
へのフェイルオーバーについて説明します。
注意: ファスト・スタート・フェイルオーバーが有効化されている場合、ファスト・スタート・フェイルオーバーのターゲットとして指定されているスタンバイ・データベースにかぎり、またオブザーバが実行中で現在スタンバイ・データベースと接続されている場合のみ、手動フェイルオーバーを実行できます。ファスト・スタート・フェイルオーバーのターゲットではないスタンバイ・データベースへの手動フェイルオーバーを実行する場合は、まずフェイルオーバー先のスタンバイ・データベースで |
フェイルオーバー操作を実行するには、SYSDBA
権限を持つユーザーとしてフェイルオーバー先のスタンバイ・データベースに接続する必要があります。次に例を示します。
DGMGRL> CONNECT sys@South_Sales.example.com;
Password: password
Connected.
フェイルオーバー・コマンドを発行すると、ターゲットのスタンバイ・データベースを構成の新しいプライマリ・データベースにできます。
DGMGRL> FAILOVER TO 'South_Sales'; Performing failover NOW, please wait... Failover succeeded, new primary is "South_Sales"
フェイルオーバーの完了後は、5.4.3項の説明に従って回復または再作成しないかぎり、元のプライマリ・データベースは新しいプライマリ・データベースのスタンバイ・データベースとして使用できないことに注意してください。
SHOW CONFIGURATION
コマンドを発行してフェイルオーバーを確認します。
DGMGRL> SHOW CONFIGURATION; Configuration - DRSolution Protection Mode: MaxAvailability Databases: South_Sales - Primary database Warning: ORA-16629: database reports a different protection level from the protection mode North_Sales - Physical standby database (disabled) ORA-16661: the standby database needs to be reinstated Fast-Start Failover: DISABLED Configuration Status: WARNING
この例では、構成は最大可用性モードで動作していました。フェイルオーバーの後、保護モードは保持されました。構成では、警告ステータスも表示されています。新しいプライマリのSHOW DATABASE
コマンドにより、有効なフィジカル・スタンバイ・データベースがないために警告が発生したことがわかります。その結果、警告ステータスは、構成の保護レベルと構成済のモードが同じでないことを示しています。
DGMGRL> SHOW DATABASE South_Sales; Database - South_Sales Role: PRIMARY Intended State: TRANSPORT-ON Instance(s): south_sales1 Database Warning(s): ORA-16629: database reports a different protection level from the protection mode Database Status: WARNING
SHOW DATABASE
コマンドを発行し、フェイルオーバーの結果として(障害が発生した)元のプライマリ・データベースがブローカにより無効化されたことを確認します。元のプライマリ・データベースは、5.4.3項の説明に従って再作成する必要があります。
DGMGRL> SHOW DATABASE 'North_Sales'; Database - North_Sales Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: (unknown) Apply Lag: (unknown) Real Time Query: OFF Instance(s): north_sales1 Database Status: ORA-16661: the standby database needs to be reinstated
プライマリ・データベースがフラッシュバック・データベースを使用して構成されている場合は、障害が発生したプライマリ・データベースを新しいプライマリ・データベースのスタンバイ・データベースとしてすぐに回復できます。障害が発生したプライマリ・データベースは、元のスタンバイ・データベースと同じスタンバイ・タイプとして回復します。たとえば、フィジカル・スタンバイ・データベースへのフェイルオーバーであった場合、元のプライマリはフィジカル・スタンバイ・データベースとして回復されます。
障害が発生したプライマリ・データベースを回復するには、データベースを起動してマウントされた状態にします。次に、DGMGRLを実行し、新しいプライマリ・データベースに接続して元のプライマリ・データベースを回復します。
% 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.
% dgmgrl connect sys
Password: password
Connected.
DGMGRL> REINSTATE DATABASE 'North_Sales';
Reinstating database "North_Sales", please wait...
Operation requires shutdown of instance "north_sales1" on database "North_Sales"
Shutting down instance "north_sales1"...
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "north_sales1" on database "North_Sales"
Starting instance "north_sales1"...
ORACLE instance started.
Database mounted.
Continuing to reinstate database "North_Sales" ...
Reinstatement of database "North_Sales" succeeded
プライマリの回復が完了したら、SHOW CONFIGURATION
コマンドおよびSHOW DATABASE
コマンドを発行して、元のプライマリが正常に回復したことを確認してください。
DGMGRL> SHOW CONFIGURATION Configuration - DRSolution Protection Mode: MaxAvailability Databases: South_Sales - Primary database North_Sales - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS DGMGRL> SHOW DATABASE 'South_Sales'; Database - South_Sales Role: PRIMARY Intended State: TRANSPORT-ON Instance(s): south_sales1 Database Status: SUCCESS DGMGRL> SHOW DATABASE 'North_Sales' Database - North_Sales Role: PHYSICAL STANDBY Intended State: APPLY-ON Transport Lag: 0 seconds Apply Lag: 0 seconds Real Time Query: OFF Instance(s): north_sales1 Database Status: SUCCESS
スナップショット・スタンバイ・データベースに変換するフィジカル・スタンバイ・データベースがある場合は、DGMGRLのCONVERT DATABASE
コマンドを使用します。データベースがスナップショット・スタンバイ・データベースとして動作中の間は、REDOデータはデータベースで引き続き受信されますが、スナップショット・スタンバイ・データベースが元のフィジカル・スタンバイ・データベースに変換されるまでREDOデータは適用されません。
フィジカル・スタンバイ・データベースをスナップショット・スタンバイ・データベースに変換するには、フィジカル・スタンバイ・データベースをファスト・リカバリ領域で構成する必要があります。これは、変換プロセス中に作成される保証付きリストア・ポイントにファスト・リカバリ領域が必要であるためです。
DGMGRL> convert database 'South_Sales' to snapshot standby; Converting database "South_Sales" to a Snapshot Standby database, please wait... Database "South_Sales" converted successfully DGMGRL> SHOW CONFIGURATION; Configuration - DRSolution Protection Mode: MaxPerformance Databases: North_Sales - Primary database South_Sales - Snapshot standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS
データベースを元のフィジカル・スタンバイ・データベースに戻すときは、次に示すように、DGMGRLのCONVERT DATABASE
コマンドを再び使用します。スナップショット・スタンバイ・データベースとして動作中にデータベースに加えられた更新はすべて破棄されます。データベースが元のフィジカル・スタンバイ・データベースに変換されると、REDO Applyサービスによって、すべての累積REDOデータが適用されます。
DGMGRL> CONVERT DATABASE 'South_Sales' to PHYSICAL STANDBY; Converting database "South_Sales" to a Physical Standby database, please wait... Operation requires shutdown of instance "south_sales1" on database "South_Sales" Shutting down instance "south_sales1"... Database closed. Database dismounted. ORACLE instance shut down. Operation requires startup of instance "south_sales1" on database "South_Sales" Starting instance "south_sales1"... ORACLE instance started. Database mounted. Continuing to convert database "South_Sales" ... Operation requires shutdown of instance "south_sales1" on database "South_Sales" Shutting down instance "south_sales1"... ORA-01109: database not open Database dismounted. ORACLE instance shut down. Operation requires startup of instance "south_sales1" on database "South_Sales" Starting instance "south_sales1"... ORACLE instance started. Database mounted. Database "South_Sales" converted successfully
この項の使用例は、SHOW
コマンドとデータベースの監視可能なプロパティを使用し、障害状況を識別して解決する方法を示しています。
ブローカ構成のステータスは、ブローカ構成のすべてのデータベースとインスタンスのステータスが集計されたものです。最初に構成ステータスをチェックすると、さらに処置が必要かどうかを判断できます。構成ステータスがSUCCESSの場合は、ブローカ構成全体が正常に動作しています。一方、WARNINGまたはERRORステータスが表示される場合は、構成の一部に問題があることを意味します。
たとえば、次の例は、プライマリ・データベースに複数の警告があることを示しています。
DGMGRL> SHOW CONFIGURATION; Configuration - DRSolution Protection Mode: MaxPerformance Databases: North_Sales - Primary database Warning: ORA-16809: multiple warnings detected for the database South_Sales - Physical standby database Fast-Start Failover: DISABLED Configuration Status: WARNING
プライマリ・データベースの警告を確認するには、SHOW DATABASE
コマンドを使用してステータスを表示します。
DGMGRL> SHOW DATABASE 'North_Sales'; Database - North_Sales Role: PRIMARY Intended State: TRANSPORT-ON Instance(s): north_sales1 Warning: ORA-16737: the redo transport service for standby "South_Sales" has an error Warning: ORA-16714: the value of property LogArchiveTrace is inconsistent with the database setting Warning: ORA-16715: redo transport-related property ReopenSecs of standby database "South_Sales" is inconsistent Database Status: WARNING
手順2のSHOW DATABASE
の出力には、エラーORA-16737の警告が示されています。正確な転送エラーを確認するには、監視可能なデータベース・プロパティLogXptStatus
を使用します。
DGMGRL> SHOW DATABASE 'North_Sales' 'LogXptStatus'; LOG TRANSPORT STATUS PRIMARY_INSTANCE_NAME STANDBY_DATABASE_NAME STATUS north_sales1 South_Sales ORA-12541: TNS:no listener
出力は、フィジカル・スタンバイ・データベースのリスナーが実行されていないことを示しています。このエラーを修正するには、フィジカル・スタンバイ・データベースSouth_Sales
のリスナーを起動します。
手順2のSHOW DATABASE
の出力には、エラーORA-16714の警告が示されています。正確なエラーを確認するには、監視可能なデータベース・プロパティInconsistentProperties
を使用します。
DGMGRL> SHOW DATABASE 'North_Sales' 'InconsistentProperties'; INCONSISTENT PROPERTIES INSTANCE_NAME PROPERTY_NAME MEMORY_VALUE SPFILE_VALUE BROKER_VALUE north_sales1 LogArchiveTrace 511 255 255
現在のデータベース・メモリー値(511)が、サーバー・パラメータ・ファイル(SPFILE)の値(255)ともData Guard Brokerのプロパティ値(255)とも異なっています。データベース・メモリー値が正しいと判断した場合は、次のコマンドを使用してData Guard Brokerのプロパティ値を更新できます。
DGMGRL> EDIT DATABASE 'North_Sales' SET PROPERTY 'LogArchiveTrace'=511; Property "LogArchiveTrace" updated
このコマンドを発行すると、LogArchiveTrace
の値の一貫性が保たれるようにサーバー・パラメータ・ファイル(SPFILE)の値が更新されます。
手順2のSHOW DATABASE
の出力には、もう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 south_sales1 South_Sales ReopenSecs 600 300
現行のデータベース・メモリー値(600)は、Data Guard Brokerのプロパティ値(300)と一致しません。ブローカのプロパティ値が正しいと判断した場合は、次の例に示すように、スタンバイ・データベースのプロパティを同じ値で再編集して一貫性のある値にできます。
DGMGRL> EDIT DATABASE 'South_Sales' SET PROPERTY 'ReopenSecs'=300; Property "ReopenSecs" updated
スタンバイ・データベースを再び有効化するか、プライマリ・データベースの状態をTRANSPORT-ON
にリセットして、非一貫性を解決することもできます。