始める前に
Windows 環境で Oracle データベースを検出、保護、マウントする前に、次のことを確認してください。
データベース サーバーで次の設定を確認します。
Oracle データベースと Oracle Listener が稼働している(Windows サービスを確認)。
SID という名前の tns エントリがあることを確認します。tnsnames.ora ファイルは次の場所にあります。
%ORACLE_HOME%\network\admin次のコマンドを実行して、tns エントリが有効であることを確認します。
%ORACLE_HOME%\bin\tnsping <SID>
ログモードがアーカイブログ モードに設定されているかどうかを確認します。
sql> archive log listデータベースが no-archive log モードの場合は、archive log モードに戻します。
sql> shutdown immediate; sql> startup mount; sql> alter database archivelog; sql> alter database open;データベースの変更ブロック トラッキングを有効にします。データベース 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 データベースをバックアップする手順は次のとおりです。
アプライアンス管理コンソールで、Oracle データベースのアプリケーションの詳細と設定を設定します。
バックアップ プランを適用してデータベースを保護します。
報告されている問題
Oracle 19c SQL*Plus(sqlplus.exe)が、Windows で exit コマンドを実行するとハングすることがあります(ドキュメント ID 2820655.1)。このバグは 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 データベース全体を復元するには:
Oracle データベースを標準マウントとしてマウントするで説明されているように、Backup and DR からデータベース バックアップ スナップショットを Oracle サーバーにマウントします。
データベース環境を設定し、Backup and DR のマウントされたボリューム(たとえば、E: にマウントされたデータベース ボリューム)のパラメータ ファイルを使用して、データベースを no-mount 状態で起動します。
sqlplus / as sysdba sql> startup nomount pfile='E:\<sid>___backup.ora';pfile から spfile を作成します。
sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from pfile='E:\<sid>___backup.ora';nomount状態の spfile でデータベースを起動します。sql> shutdown immediate; sql> startup nomount;Backup and DR のマウントされたボリュームから RMAN を使用して制御ファイルを復元します。
rman target / rman> restore controlfile from 'E:\cf-D_<sid>-id_<id>.ctl';データベースをマウントします。
rman> alter database mount;Backup and DR のマウントされたボリュームから RMAN にデータファイルとアーカイブ ファイル フォルダをカタログ化します。
rman> run { catalog start with 'E:\datafile' noprompt; catalog start with 'E:\archivelog' noprompt; }データベースを復元して復旧します。
rman> run { restore database; recover database; }リセットログ オプションを使用してデータベースを開きます。
rman> alter database open resetlogs;
RMAN を使用して、Backup and DR で保護されたアーカイブログのロールフォワードを使用して、Windows 環境で Oracle データベースをスケジュールされたバックアップ ポイントに手動で復元する
復元するソース データベース サーバーからバックアップをマウントします。Oracle データベースを標準マウントとしてマウントするで説明されているように、Backup and DR から Oracle サーバーにバックアップ スナップショットをマウントします。
データベース環境を設定し、Backup and DR のマウントされたボリュームのパラメータ ファイルを使用して、データベースを no-mount 状態で起動します。この例では、データベース バックアップは E:\ にマウントされ、保護されたアーカイブ ログは Z: にマウントされます。
sqlplus / as sysdbastartup nomount pfile='E:\<sid>___backup.ora';pfile から spfile を作成します。
sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from pfile='E:\<sid>___backup.ora';spfile を使用してデータベースを nomount 状態で起動します。
```sql shutdown immediate; startup nomount; ```Backup and DR のマウントされたアーカイブ ログ バックアップから RMAN を使用して制御ファイルを復元します。
```rman rman target / rman> restore controlfile from 'Z:\cf-D_<sid>-id_<id>.ctl'; ```データベースをマウントします。
```rman rman> alter database mount; ```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; } ```データベースを復元して復旧します。
```rman rman> run { restore database; recover database; } ```特定の時点の復元を行うには、次のように recover コマンドを実行します。
```rman rman> run { restore database; recover database until time "to_date('<time stamp>','yyyymmddhh24mi')"; } ```リセットログ オプションを使用してデータベースを開きます。
```rman rman> alter database open resetlogs; ```データベースは読み取りと書き込みに使用できます。
データベース ボリュームがマウントされるのを監視するスクリプト
アプリケーション対応マウントを作成すると、ウォッチ スクリプトを使用して、Backup and DR からマウントされているボリュームと実行中の Oracle プロセスを表示できます。アプリケーション認識型マウントについては、Oracle Database を仮想アプリケーションとしてマウントするをご覧ください。
アプリケーション認識マウントを実行する場合は、このウォッチ スクリプトを使用できます。スクリプトの場所は 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