• 検索結果がありません。

このリリースにはXDKリリース9.2.0.6が含まれています。

ネットワーク障害時の ネットワーク障害時の ネットワーク障害時の

ネットワーク障害時の Oracle Real Application Clusters と と と と Oracle Data Guard

この項では、フィジカル・スタンバイ・データベースを使用し、Oracle Data Guard構成を最大保護モー ドで実行する場合について説明します。Oracle Real Application Clusters環境でプライマリ・データベー スをサポートするようにOracle Data Guardを構成し、プライマリ・データベースを最大保護モードで実 行している場合に、プライマリ・データベースとそのすべてのフィジカル・スタンバイ・データベース の間でネットワーク障害が発生すると、ネットワーク接続が回復するまでプライマリ・データベースは 使用できなくなります。最大保護モードの場合、最後に参加しているフィジカル・スタンバイ・データ ベースが使用不能になると、プライマリ・データベースの処理は中断します。

ネットワークの切断期間が長引くと予想される場合は、ネットワーク接続が回復するまで、最大可用性 モードか最大パフォーマンス・モードで実行するように、プライマリ・データベースを切り替えること を検討してください。プライマリ・データベースを最大可用性モードに切り替える場合は、プライマ リ・データベースとスタンバイ・データベース間に時間差が生じる可能性がありますが、ネットワーク 障害が解決するまでプライマリ・データベースを使用し続けることができます。

プライマリ・データベースを最大可用性モードに切り替える場合は、次の手順を使用して、データの損 傷を防ぐことが重要です。

ネットワークが切断される場合は、次の手順を実行して、Oracle Real Application Clusters構成の保護 モードを変更することができます。

1. フィジカル・スタンバイ・データベースを停止します。

2. 『Oracle Data Guard概要および管理』の説明に従い、最大保護モードを最大可用性モードか最大パ フォーマンス・モードに切り替えます。

3. Oracle Real Application Clustersプライマリ・データベースを一般アクセス用にオープンします。

4. ネットワークを再起動します。

5. Oracle Real Application Clustersプライマリ・データベースを停止します。

6. プライマリ・データベースを、一般アクセス用にオープンしないでマウントします。

7. フィジカル・スタンバイ・データベースをマウントします。

8. Real Application Clustersプライマリ・データベースのモードを、現在の最大可用性モードまたは最

大パフォーマンス・モードから最大保護モードに切り替えます。

9. Oracle Real Application Clustersプライマリ・データベースをオープンします。

製品の問題

ALTER TABLE SET COLUMN UNUSED は、ロジカル・スタンバイ・データベー は、ロジカル・スタンバイ・データベー は、ロジカル・スタンバイ・データベー は、ロジカル・スタンバイ・データベー スのサポート対象外

スのサポート対象外 スのサポート対象外 スのサポート対象外

ロジカル・スタンバイ・データベースを使用しているプライマリ・データベースには、ALTER TABLE SET COLUMN UNUSED文を発行しないでください。ALTER TABLE文を使用して未使用の列を設定しよ うとすると、失敗してエラー・メッセージ「ORA-26689: LCRで列データ型が一致していません。」が表 示される場合があります。このエラー・メッセージが表示された場合は、DBA_LOGSTDBY_EVENTS ビューに表示された表にDBMS_LOGSTDBY.INSTANTIATE_TABLEプロシージャを使用して、SQL適用 操作を再開します。

DBMS_LOGSTDBY.INSTANTIATE_TABLEプロシージャによって、ロジカル・スタンバイ・データベー

スにある表のコピーがリフレッシュされる一方、その表に対するその後の更新はすべて失敗します。こ の問題を回避する手順は次のとおりです。

1. プライマリ・データベースの列を削除します。

2. DBMS_LOGSTDBY.INSTANTIATE_TABLE PL/SQLプロシージャを実行して、ロジカル・スタンバ

イ・データベースに表を再作成します。

3. ロジカル・スタンバイ・データベースでSQL適用操作を再開します。

ロジカル・スタンバイ・データベースでのネストした表の作成 ロジカル・スタンバイ・データベースでのネストした表の作成 ロジカル・スタンバイ・データベースでのネストした表の作成 ロジカル・スタンバイ・データベースでのネストした表の作成

このリリースのOracle Data Guardでは、ロジカル・スタンバイ・データベースはネストした表の作成を サポートしていません。ロジカル・スタンバイ・データベースでネストした表を作成しようとすると、

エラー・メッセージ「ORA-02320: ネストされた表の列stringの記憶表作成時にエラーが発生しました。」 が表示されます。

DDL文によって、ロジカル・スタンバイ・データベースでのSQL適用操作が停止した場合は、

(DBA_LOGSTDBY_EVENTSビューに問い合せて得た)トランザクションID情報を、

DBMS_LOGSTDBY.SKIP_TRANSACTIONプロシージャに指定して、SQL適用操作を再開します。ロジ

カル・スタンバイ・データベースに表を作成することはできますが、行は維持されません。

データベース・リンクを使用する データベース・リンクを使用する データベース・リンクを使用する

データベース・リンクを使用する DDL 文 文 文 文

CREATE TABLE tablename AS SELECT * FROM bar@dblinkなどのSQL文は、ロジカル・スタ ンバイ・データベースでは失敗する場合があります。このタイプの文は発行しないでください。このよ うな操作から多数のエラーが発生する可能性があります。

この文がロジカル・スタンバイ・データベースで実行された場合、その時点でデータベース・リンクに アクセスされるので、ロジカル・スタンバイ・データベース上の情報と、その文がプライマリ・データ ベースで実行されたときの情報とが同一であるかどうかがわかりません。たとえば、別の列を追加した り削除した場合、その後の行を適用することが不可能になる場合もあります。最初の表の作成が成功す るようにネットワークを設定した場合、ネストした表の列が含まれる表には、エラー・メッセージ

「ORA-26689: LCRで列データ型が一致していません。」が表示されます。また、ロジカル・スタンバイ・

データベースでデータベース・リンクまたはTNSサービスが定義されていない場合は、エラー・メッ

セージ「ORA-02019: 指定されたリモート・データベースは存在しません。」が表示される場合がありま

す。

このエラー・メッセージが表示された場合は、作成した表にDBMS_LOGSTDBY.INSTANTIATE_TABLE プロシージャを使用して、SQL適用操作を再開します。

プライマリ・データベースと同じノードにあるロジカル・スタンバイ・データ プライマリ・データベースと同じノードにあるロジカル・スタンバイ・データ プライマリ・データベースと同じノードにあるロジカル・スタンバイ・データ プライマリ・データベースと同じノードにあるロジカル・スタンバイ・データ ベース ベース

ベース ベース

ロジカル・スタンバイ・データベースがプライマリ・データベースと同じコンピュータ・システムに配 置されている場合、両方のOracleインスタンスが同じディレクトリ構造にアクセスする可能性がありま

す。Oracleコマンドには、データファイルを再利用するものがあります。データファイルを再利用する

Oracleコマンドがプライマリ・データベースに適用された場合、そのコマンドはロジカル・スタンバ

製品の問題

そのため、プライマリ・データベースとロジカル・スタンバイ・データベースを同じコンピュータ・シ ステムで実行する場合は、次の設定を使用することをお薦めします。

EXECUTE DBMS_LOGSTDBY.SKIP('ALTER TABLESPACE');

SYS への権限の付与により返されるエラー への権限の付与により返されるエラー への権限の付与により返されるエラー への権限の付与により返されるエラー ORA-01749

SQL適用操作がロジカル・スタンバイ・データベースで失敗し、エラー・メッセージ「ORA-01749: 自 分自身に対して、権限をGRANT/REVOKEすることはできません。」が表示された場合、これは、

GRANT DDL文を実行して、SYSに権限またはロールを付与しようとしたことが原因と考えられます。

これが問題であることを確認するには、DBA_LOGSTDBY_EVENTSビューを問い合せて、失敗した DDL文と、そのビューのXIDUSN、XIDSLT、XIDSQN各列に表示されるトランザクションIDを調べま す。この問題を解決する手順は次のとおりです。

1. DBMS_LOGSTDBY.GUARD_BYPASS_ON PL/SQLプロシージャを実行します。

2. 失敗したDDL文を実行します。

3. XIDUSN、XIDSLT、XIDSQN各列の値を、パラメータとして

DBMS_LOGSTDBY.SKIP_TRANSACTION PL/SQLプロシージャに入力します。

4. ロジカル・スタンバイ・データベースでSQL適用操作を再開します。

ロジカル・スタンバイ・データベースでのマテリアライズド・ビューのリフレッ ロジカル・スタンバイ・データベースでのマテリアライズド・ビューのリフレッ ロジカル・スタンバイ・データベースでのマテリアライズド・ビューのリフレッ ロジカル・スタンバイ・データベースでのマテリアライズド・ビューのリフレッ シュ

シュ シュ シュ

マテリアライズド・ビューは、DBMS_LOGSTDBYパッケージのGUARD_BYPASS_ONプロシージャお

よびGUARD_BYPASS_OFFプロシージャを使用して、ロジカル・スタンバイ・データベースで別々に

リフレッシュする必要があります。たとえば、次のように入力します。

EXECUTE DBMS_LOGSTDBY.GUARD_BYPASS_ON;

EXECUTE DBMS_MVIEW.REFRESH ( 'BMVIEW', 'F', '',TRUE,FALSE,0,0,0,FALSE);

EXECUTE DBMS_LOGSTDBY.GUARD_BYPASS_OFF;

DBMS_LOGSTDBY.APPLY_SETプロシージャを使用していても、TRANSACTION_CONSISTENCYパラ

メータにデフォルト値FULLを使用していない場合は、SQL適用操作を中止してから、ロジカル・スタ ンバイ・データベースでマテリアライズド・ビューをリフレッシュする必要があります。

ロジカル・スタンバイの最初の起動で失敗し、表示される ロジカル・スタンバイの最初の起動で失敗し、表示される ロジカル・スタンバイの最初の起動で失敗し、表示される

ロジカル・スタンバイの最初の起動で失敗し、表示される ORA-1652 エラー エラー エラー エラー

LogMinerは、REDOストリームから内部ディクショナリをマイニングするときに、一時表を使用してス

テージングします。一時表領域が、領域不足や一時ファイルでバックアップされていないなどの理由 で、適切に構成されていない場合は、ロジカル・スタンバイ・データベースの初期化フェーズに失敗 し、次のエラー・メッセージが表示されます。

ORA-1652: unable to extend segment by 512 in tablespace TEMP ORA-01332: internal Logminer Dictionary error

この問題を回避するには、一時表領域のサイズを増やしてからロジカル・スタンバイ・データベースを 起動します。

不要な警告の確認 不要な警告の確認 不要な警告の確認 不要な警告の確認

Data Guardのブローカ処理の実行中に、Data Guard構成ログ・ファイルに次のメッセージが表示される

場合があります。

RSM: error in accessing metadata.

このメッセージは無視できます。このメッセージにはあまり意味がなく、ブローカや、ブローカ構成に 含まれるデータベースに操作上の問題があることを示していません。

関連項目関連項目関連項目

関連項目: DBMS_LOGSTDBYパッケージの詳細は、『Oracle9i

PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参

照してください。

関連したドキュメント