バックアップ/リカバリ アプライアンスで Backup and DR を使用するために Windows 環境で Oracle データベースを準備する

始める前に

Windows 環境で Oracle データベースを検出、保護、マウントする前に、次のことを確認してください。

  1. データベース サーバーで次の設定を確認します。

    1. Oracle データベースと Oracle リスナーが起動して実行されている(Windows サービスを確認)。

    2. SID という名前の tns エントリがあることを確認します。 ファイル tnsnames.ora は

      %ORACLE_HOME%\network\admin
      
    3. 次のコマンドを実行して、tns エントリが有効であることを確認します。

      %ORACLE_HOME%\bin\tnsping <SID>
      
  2. ログモードがアーカイブログ モードに設定されているかどうかを確認します。

    sql> archive log list
    

    データベースが no-archive ログモードの場合は、アーカイブログ モードに戻します。

    sql> shutdown immediate;
    sql> startup mount;
    sql> alter database archivelog;
    sql> alter database open;
    
  3. データベースの変更ブロック トラッキングを有効にします。データベース BCT がオフの場合、増分バックアップ時間に影響します。変更ブロック トラッキング機能は Oracle Enterprise Edition で使用できます。SQL クエリを実行して、変更ブロック トラッキングが有効になっていることを確認します。クエリを実行します。

    sqlplus / as sysdba
    sql> select * from v$block_change_tracking;
    

変更ブロック トラッキングを有効にするには:

    sql> alter database enable block change tracking
    using file '<Oracle home directory>\orcl.bct';

Windows 環境で Oracle データベースをバックアップする

Windows 環境で Oracle データベースをバックアップする手順は次のとおりです。

  1. アプライアンス管理コンソールで、 Oracle データベースのアプリケーションの詳細と設定を設定します。

  2. バックアップ プランを適用してデータベースを保護します。

報告されている問題

Oracle 19c SQL*Plus(sqlplus.exe)は、exit コマンド(Doc ID 2820655.1)の実行時に Windows でハングすることがあります。 このバグは Windows 固有のものです。Oracle は、この問題が SQL*Plus バージョン 19.10、19.11、19.12 で発生することを確認しています。Oracle は次の解決策を提供しています。

  • SQL*Plus 21.1 以降を使用する(または)
  • パッチ 31466370 を適用する。このパッチは 19.11 と 19.13 で使用できます。

Backup and DR でアーカイブログが保護されていない場合は、RMAN を使用して Windows 環境の Oracle データベースをスケジュールされたバックアップ ポイントに手動で復元する

Windows 環境で Oracle データベース全体を復元するには:

  1. Oracle データベースを標準マウントとしてマウントするで説明されているように、Backup and DR からデータベース バックアップ スナップショットを Oracle サーバーにマウントします。

  2. データベース環境を設定し、Backup and DR マウント ボリュームのパラメータ ファイルを使用して、データベースをマウントなし状態で起動します(たとえば、マウントされたデータベース ボリュームを E: にする場合)。

    sqlplus / as sysdba
    sql> startup nomount pfile='E:\<sid>___backup.ora';
    
  3. pfile から spfile を作成します。

    sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora'
    from pfile='E:\<sid>___backup.ora';
    
  4. spfile を使用してデータベースを nomount 状態で起動します。

    sql> shutdown immediate;
    sql> startup nomount;
    
  5. Backup and DR マウント ボリュームから RMAN を使用して制御ファイルを復元します。

    rman target /
    rman> restore controlfile from 'E:\cf-D_<sid>-id_<id>.ctl';
    
  6. データベースをマウントします。

    rman> alter database mount;
    
  7. Backup and DR マウント ボリュームからデータファイルとアーカイブ ファイル フォルダを RMAN にカタログします。

    rman> run
    {
    catalog start with 'E:\datafile' noprompt;
    catalog start with 'E:\archivelog' noprompt;
    }
    
  8. データベースを復元して復旧します。

    rman> run
    {
    restore database;
    recover database;
    }
    
  9. reset log オプションを使用してデータベースを開きます。

    rman> alter database open resetlogs;
    

Backup and DR で保護されたアーカイブログのロールフォワードを使用して、RMAN を使用して Windows 環境の Oracle データベースをスケジュールされたバックアップ ポイントに手動で復元する

  1. 復元するソース データベース サーバーからバックアップをマウントします。Oracle データベースを標準マウントとしてマウントするで説明されているように、Backup and DR からデータベース バックアップ スナップショットを Oracle サーバーにマウントします。

  2. データベース環境を設定し、Backup and DR マウント ボリュームのパラメータ ファイルを使用して、データベースをマウントなし状態で起動します。この例では、データベース バックアップ backup は E:\ にマウントされ、保護されたアーカイブログは Z: にマウントされます。

       sqlplus / as sysdba
    
       startup nomount pfile='E:\<sid>___backup.ora';
    
  3. pfile から spfile を作成します。

    sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from
    pfile='E:\<sid>___backup.ora';
    
  4. spfile を使用してデータベースを nomount 状態で起動します。

    ```sql
    shutdown immediate;
    startup nomount;
    ```
    
  5. Backup and DR マウント アーカイブログ バックアップから RMAN を使用して制御ファイルを復元します。

    ```rman
    rman target /
    rman> restore controlfile from 'Z:\cf-D_<sid>-id_<id>.ctl';
    ```
    
  6. データベースをマウントします。

    ```rman
    rman> alter database mount;
    ```
    
  7. Backup and DR マウント データベース バックアップとアーカイブログ バックアップからデータファイルとアーカイブログ フォルダを RMAN にカタログします。

    ```rman
    rman> run
    {
    catalog start with 'E:\datafile' noprompt;
    catalog start with 'E:\archivelog' noprompt;
    catalog start with 'Z:\archivelog' noprompt;
    }
    ```
    
  8. データベースを復元して復旧します。

    ```rman
    rman> run
    {
    restore database;
    recover database;
    }
    ```
    

    特定の時点に復元するには、次のように recover コマンドを実行します。

    ```rman
    rman> run
     {
      restore database;
      recover database until time "to_date('<time stamp>','yyyymmddhh24mi')";
     }
     ```
    
  9. reset log オプションを使用してデータベースを開きます。

    ```rman
    rman> alter database open resetlogs;
    ```
    

    データベースは読み取りと書き込みに使用できます。

データベース ボリュームがマウントされているかどうかを監視するスクリプト

アプリケーション認識型マウントを作成すると、監視スクリプトを使用して、Backup and DR からマウントされているボリュームと実行中の Oracle プロセスを表示できます。アプリケーション認識型マウントについては、 Oracle データベースを仮想アプリケーションとしてマウントするをご覧ください。

アプリケーション認識型マウントを実行する場合は、この監視スクリプトを使用できます。 スクリプトの場所は C:\Program Files\Backup and DR\scripts である必要があります。 Windows ホストで実行されるスクリプトは、.bat ファイルまたは .vbs ファイルである必要があります。

    ```Windows
    @echo off
    :loop
    echo. > watchtemp
    echo ------------------ >> watchtemp
    echo  Oracle Processes >> watchtemp
    echo ------------------ >> watchtemp
    tasklist /svc | findstr oracle >> watchtemp
    echo. >> watchtemp
    echo ------------------ >> watchtemp
    echo   Backup and DR Mounts >> watchtemp
    echo ------------------ >> watchtemp
    wmic volume get label, name | findstr Backup and DR >> watchtemp
    echo. >> watchtemp
    cls
    type watchtemp
    timeout 2 > null
    goto loop
    ```

次のような出力が生成されます。

    Oracle Processes
    ------------------
    oracle.exe                    1492 OracleServiceORCL
    oracle.exe                    3768 OracleServiceTestDB
    oracle.exe                     872 OracleServiceTestDB2
    ------------------
      Backup and DR Mounts
    ------------------
    Backup and DR-Backup-ORCL    D:\mount_1