始める前に
Windows 環境で Oracle データベースを検出、保護、マウントする前に、次のことを確認してください。
データベース サーバーで次の設定を確認します。
Oracle データベースと Oracle リスナーが起動して実行されている(Windows サービスを確認)。
SID という名前の tns エントリがあることを確認します。 ファイル tnsnames.ora は
%ORACLE_HOME%\network\admin次のコマンドを実行して、tns エントリが有効であることを確認します。
%ORACLE_HOME%\bin\tnsping <SID>
ログモードがアーカイブログ モードに設定されているかどうかを確認します。
sql> archive log listデータベースが no-archive ログモードの場合は、アーカイブログ モードに戻します。
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)は、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 データベース全体を復元するには:
Oracle データベースを標準マウントとしてマウントするで説明されているように、Backup and DR からデータベース バックアップ スナップショットを Oracle サーバーにマウントします。
データベース環境を設定し、Backup and DR マウント ボリュームのパラメータ ファイルを使用して、データベースをマウントなし状態で起動します(たとえば、マウントされたデータベース ボリュームを E: にする場合)。
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';spfile を使用してデータベースを
nomount状態で起動します。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; }reset log オプションを使用してデータベースを開きます。
rman> alter database open resetlogs;
Backup and DR で保護されたアーカイブログのロールフォワードを使用して、RMAN を使用して Windows 環境の Oracle データベースをスケジュールされたバックアップ ポイントに手動で復元する
復元するソース データベース サーバーからバックアップをマウントします。Oracle データベースを標準マウントとしてマウントするで説明されているように、Backup and DR からデータベース バックアップ スナップショットを Oracle サーバーにマウントします。
データベース環境を設定し、Backup and DR マウント ボリュームのパラメータ ファイルを使用して、データベースをマウントなし状態で起動します。この例では、データベース バックアップ backup は 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')"; } ```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