3

最初のデータ: Oracle 11g データベースを使用しています。専用サーバーで実行されるプライマリ データベースと、別の専用サーバーで実行されるフィジカル スタンバイ データベース。DataGuard 機能を使用して、プライマリ データベースをフィジカル スタンバイ データベースにリアルタイムで自動的に複製します。プライマリ データベースも RMAN を介してバックアップされます。

現在、フィジカル・スタンバイ・データベースの問題に対処できません。どういうわけか、プライマリ データベースからフィジカル スタンバイ データベースへのアーカイブ ログの転送が停止しました。さらに悪いことに、一部のアーカイブ ログが一部の従業員からすでに削除されているため、次のステートメントを実行してもリカバリを発行できません。 :

RECOVER MANAGED STANDBY DATABASE THROUGH ALL SWITCHOVER DISCONNECT USING CURRENT LOGFILE;

必要なアーカイブ ログがなくなっているためです。

そこで、フィジカル・スタンバイ・データベースを再複製することを考えました。フィジカル スタンバイ データベースをシャットダウンし、STARTUP NOMOUNT で再起動しました。次に、プライマリ データベースをホストしているサーバーにログオンし、次のコマンドで RMAN セッションを開始しました。

RMAN target / auxiliary sys@PRIMARY_DB_DG
   RMAN> sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
   RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER
         NOFILENAMECHECK;

しかし、フィジカル・スタンバイ・データベースを MOUNT ステータスに変更した直後に、いずれかの理由でプロセスがクラッシュします。

  1. RMAN-04006: 補助データベースからのエラー: ORA-12537: TNS: 接続がクローズされました。

  2. RMAN-03009: 2011 年 11 月 15 日 11:13:58 の clone_default チャネルでの切り替えコマンドの失敗 ORA-03113: 通信チャネルのファイルの終わりまたは

  3. RMAN-06136: 補助データベースからのORACLEエラー: ORA-03113: 通信チャネルでファイルの終わりです

解決策をグーグルで検索しましたが、フィジカル スタンバイ データベースを最初からセットアップするためのガイドしか見つかりませんでした。それで、完全に新しく設定せずに物理データベースを修正する方法を知っている人はいますか?

こんにちは、CB

4

3 に答える 3

3

これが私のために働いた私の解決策です:

  1. フィジカル・スタンバイ・データベースをシャットダウンします

    SQL> shutdown immediate;
    
  2. (省略可能、障害発生時の安全性向上) すべてのデータファイル (*.dbf)、再実行ログ、アーカイブ ログ、オンライン ログ、フラッシュバック ログ、およびシャットダウンされたインスタンスで使用される制御ファイルをバックアップします。

  3. すべてのデータファイル (*.dbf)、redolog、アーカイブ ログ、オンライン ログ、フラッシュバック ログ、および制御ファイルを参照先の場所から削除しますが、ディレクトリは保持してください。

  4. NOMOUNT オプションを使用してフィジカル スタンバイ データベースを起動する

    SQL> startup nomount;
    
  5. 次に、プライマリ データベース環境に切り替えます。

  6. プライマリ環境で rman を開始します。

    $> rman target / auxiliary sys@Dataguard_instance
    

    Dataguard_instance は、DataGuard インスタンス名に置き換える必要があります。接続後、接続されたターゲット データベースがプライマリ データベースであることを確認します。

    connected to target database: PRIM_DB (DBID=4135917300)
    auxiliary database Password:
    connected to auxiliary database: PRIM_DB (not mounted)
    

    フィジカル・スタンバイ・データベースは、マウントされていないプライマリ・データベースとしてリストされていることに注意してください。ターゲット データベースと同じ情報が表示される場合は、プライマリ データベースに 2 回接続されている可能性があります。その場合、フィジカル スタンバイ データベースではなく、100% のコピーを作成します。そのため、正しい DataGuard インスタンスを使用していることを確認してください。

  7. したがって、開始する前に、ログの切り替えを強制します。

    RMAN> sql 'alter system archive log current';
    
  8. 次に、フィジカル スタンバイ データベースの完全なレプリケーションを開始します。

    RMAN> duplicate target database for standby from active database dorecover  nofilenamecheck;
    
  9. ここで、rman はフィジカル スタンバイ データベースの複製を実行します。データファイルのサイズによっては、数時間から最後までかかる場合があります (プライマリ データベースが約 1.5T のファイルでアイドル状態だった夜間に約 4 時間かかりました)。

  10. rman が終了したら、rman を終了できます。

  11. フィジカル スタンバイ データベースに再接続し、シャットダウンします。

    SQL> shutdown immediate;
    
  12. フラッシュバック オプションを使用する場合 (それ以外の場合は手順 13 に進みます):

    SQL> startup mount;
    SQL> alter database flashback on;
    SQL> alter database open;
    
  13. フィジカル スタンバイを再起動します。

    SQL> startup;
    
  14. 終了した!

必要な場合に役立つことを願っています。

于 2012-03-13T10:31:03.470 に答える
2

スタンバイ サイトの alert.log を調べて、rman セッションが失敗した前後のエラーを確認します。

さらに、必ずしも完全な再インスタンス化を行う必要はありません。スタンバイ データベースに増分バックアップを適用して最新の状態にすることができます。たとえば、http://jarneil.wordpress.com/2008/06/03/applying-an-incremental-backup-to-a-physical-standby/を参照してください。

ニール

于 2011-11-15T15:37:45.730 に答える
-1

Oracle Enterprise Manager Grid Controlをセットアップしていますか? Data Guard のセットアップはポイント アンド クリックです。フィジカルまたはロジカルスタンバイデータベースを設定する最も簡単な方法。

于 2011-11-15T14:04:32.970 に答える