元のデータベースに復元すると、元の本番環境アプリケーション データが、指定したポイントインタイム バックアップに置き換えられます。この復元では、アプリケーションがバックアップ作成時の状態に復元されるため、現在のアプリケーション データがすべて失われます。この操作は元に戻せません。復元オペレーションの完了に必要な時間は、対象となるデータの量によって異なります。データベースを別のターゲットに復元することもできます。
制限事項
Backup Vault を参照する OnVault プールに保存されている Oracle データベースのバックアップに対してマウント オペレーションを実行することはできません。
Oracle データベースをクローンされた仮想マシンに復元することはできません。
Oracle データベースを復元すると、Backup and DR はバックアップ プランのオプション([Run Schedule]、[Expire Data])を無効にします。
RMAN を使用して Oracle データベースを復元する
アプライアンス管理コンソールから Oracle データベースを復元する手順は次のとおりです。
データベースが復元されると、元の本番環境データベースが上書きされます。
アプライアンス管理コンソールを開いて [App Manager] に移動し、データベース アプリケーション名を入力するか、フィルタを使用して必要なデータベース バックアップを見つけます。
アプリケーションを右クリックして、[アクセス] を選択します。
[アクセス] ページで、バックアップを選択し、[マウント] メニューの [復元] をクリックします。
[復元] ページで、[従来] を選択します。
[Restore Range] スライダーを使用して、データベースを復元する特定の時点を選択します。スライダー ツールを一番左まで動かすと、ログが適用されていないデータベースのみが復元されます。
[ユーザー名] フィールドに、選択したターゲット サーバーの Oracle ソフトウェア所有者を入力します。
[Number of Channels] フィールドで、データベース復元の並列処理を構成する RMAN チャネルの数を指定します。
[送信] をクリックします。
警告ダイアログが表示されます。
「
DATA LOSS」と入力して、元の本番環境データベースを上書きし、データ損失の可能性を受け入れることを確認します。ジョブは、次に使用可能なジョブスロットのキューに追加されます。キューの進行状況は、ジョブモニターで確認できます。
アプライアンス管理コンソールを使用してデータベースを任意のターゲットに復元する
アプライアンス管理コンソールから RMAN を使用して、Oracle データベースを新しいターゲットに復元します。
[App Manager] で [Applications] をクリックします。
データベースを右クリックして、[アクセス] を選択します。
復元するバックアップを選択して、[Restore] を選択します。
[復元] ページで、[従来] を選択します。
- ターゲット: すべての構成で、対象となるすべての Oracle データベース サーバーをプルダウンから選択できます。プルダウンから、復元のターゲット サーバーを選択します。
- 元のアプリケーション ID を置き換える: このオプションは、バックアップが最初に生成された同じアプライアンス上の新しいサーバーに復元する場合にのみ使用できます。
- はい: 元のアプリケーションを置き換え、元のアプリケーションと同じアプリケーション ID、ジョブ履歴、バックアップ、バックアップ プランを使用します。
- いいえ: 元のアプリケーションは置き換えられません。新しいデータベースは、復元ジョブの一環として新しいアプリケーションとして検出されます。
- ロールフォワード時間: ログで保護されたデータベースを必要な時点に復元する日時を選択します。
Application Options:
- DATABASESID: 保護されたデータベースの SID 名が事前入力されており、変更できません。
- USERNAME: ソース データベースの Oracle ソフトウェア所有者が事前入力されています。選択したターゲット サーバーの Oracle ソフトウェア所有者が異なる場合は、USERNAME を更新します。
- ORAHOME: ソース データベースの Oracle Home パスが事前入力されています。選択したターゲット サーバーで Oracle ホームが異なる場合は、Oracle ホーム ディレクトリを更新します。
- 詳細オプション: これは事前入力されており、バックアップ時にソースのすべてのデータベース パラメータ設定(pfile から)が表示されます。パラメータ値が、復元のターゲット データベース サーバー(ソースまたは新しいターゲット)に対して正しいことを確認します。
Mapping Options:
ターゲット データベース タイプ: プルダウン リストから、データベースのデータベース ターゲット タイプ(ASM ディスク グループまたはファイル システム)を選択します。ASM 形式のバックアップでは、ファイル システム ターゲット タイプはサポートされていません。
ソース データベース バックアップ形式 復元ターゲット ASM ASM ASM ASM ファイル システム ASM ファイル システム ファイル システム ファイル システム 3 つのファイルタイプ(データベースのデータファイル、制御ファイル、REDO ファイル)のターゲット ASM ディスク グループとファイル システムのマッピングをプルダウン リストから選択します。
[事前チェック] をクリックします。事前チェックが失敗した場合は、問題を修正して事前チェックを再度実行します。
[送信] をクリックして、復元ジョブを送信します。
RMAN を使用して Oracle データベースを手動で復元する
Oracle データベースを手動で復元するには、次の手順をご覧ください。
非 RAC、非 ASM、ファイル システム
ファイル システムにデータファイルがあり、ファイルベースのステージング ディスク形式で保護されている Oracle データベースを復元する
保護されたソース データベースからバックアップをマウントします。
[Mount] ウィンドウの [Mapping Options] で、バックアップのマウント ポイント(
/acttestdbなど)を指定します。データベース バックアップをマウントする手順については、データアクセス用にファイル システムで保護された Oracle データベース バックアップをマウントするをご覧ください。データベース バックアップは
/acttestdbにマウントされます。保護されたアーカイブ ログは
/acttestdb_Logにマウントされます。Oracle 環境を設定し、sqlplus を使用してデータベースをシャットダウンします。
sqlplus / as sysdba sql> shutdown immediate;データベースがシャットダウンされていることを確認します。データベースの残りのプロセスを終了します。
ps -ef | grep database sidマウントされたボリュームのバックアップ パラメータ ファイルを使用して、データベースを nomount 状態で起動します。バックアップ パラメータ ファイルは、最上位のマウントされたフォルダ(
/acttestdbなど)の下にあります。Oracle 環境を設定し、sqlplus を使用してデータベースを起動します。
sqlplus / as sysdba sql> startup nomount pfile='/acttestdb/database sid___backup.ora';既存の pfile から新しい spfile を作成し、データベースを再起動します。
pfile から spfile を作成します。
create spfile='$ORACLE_HOME/dbs/spfile_database sid.ora' from pfile='/acttestdb/database sid___backup.ora';spfile を使用して、データベースを nomount 状態で再起動します。
shutdown immediate; startup nomount;Backup and DR でマウントされたアーカイブ ログのバックアップから RMAN を使用して制御ファイルを復元します。ログがマウントされたバックアップの最新の制御ファイルを使用します。次に例を示します。
/acttestdb_Log/cf D_sid-id_Target SID.ctlまたは、複数のログ バックアップがある場合:
/acttestdb_Log_1/cf-D_sid-id_Target SID.ctl
rman target / restore controlfile from '/acttestdb_Log_1/cf-D_<var>sid</var>-id_<var>id</var>.ctl' ;データベースをマウントします。
alter database mount;Backup and DR でマウントされたデータベース バックアップとアーカイブログ バックアップから、データファイルとアーカイブログ フォルダを RMAN にカタログ化します。
run { catalog start with '+acttestdg/db_name/datafile' noprompt; catalog start with '+acttestdg/db_namearchivelog' noprompt; catalog start with 'mountpoint_log' noprompt; }データベースを復元して復旧します。
run { restore database ; recover database; }特定の時点の復元(yyyymmddhh24mi 形式)の場合:
run { restore database; recover database until time "to_date('timestamp','yyyymmddhh24mi')"; }リセットログ オプションを使用してデータベースを開きます。
プライマリ データベースの復元の場合:
alter database open resetlogs;Data Guard スタンバイ データベースの復元を行うには、Data Guard 管理の復元プロセスを開始します。
alter database recover managed standby database nodelay disconnect;
データベースは読み取りと書き込みに使用できます。
RAC またはスタンドアロン ASM、ファイル システム
ASM ディスク グループにデータファイルがあり、ファイルベースのステージング ディスク形式で保護されている Oracle データベースを復元する
保護されたソース データベースからバックアップをマウントします。
[Mount] ウィンドウの [Mapping Options] で、バックアップのマウント ポイント(
/acttestdbなど)を指定します。データベース バックアップをマウントする手順については、データアクセスのためにファイル システムで保護された Oracle データベース バックアップをマウントするをご覧ください。データベース バックアップは、マウント場所
/acttestdbにマウントされます。保護されたアーカイブ ログは
/acttestdb_Logにマウントされます。Oracle データベースをシャットダウンします。ノード 1 から Oracle OS ユーザーに su します。
su - oracleOracle 環境を設定し、srvctl を使用してすべてのノードでデータベースを停止します。
srvctl stop database -d <var>database_name</var>データベースがシャットダウンされていることを確認します(すべてのノード)。データベースの残りのプロセスを終了します。
ps -ef | grep <var>database_name</var>マウントされたボリュームのバックアップ パラメータ ファイルを使用して、データベースを no-mount 状態で起動します。バックアップ パラメータ ファイルは、最上位のマウントされたフォルダ(
/acttestdbなど)の下にあります。Oracle 環境を設定し、sqlplus を使用してデータベースを起動します。
sqlplus / as sysdba startup nomount pfile='/acttestdb/<var>database_name</var>___backup.ora';新しい spfile を作成し、データベースを再起動します。
ディスク グループの下にある元の spfile のパスを取得するには:
cat $ORACLE_HOME/dbs/init{database sid}.ora
例: spfile=+{preferred disk group}/db_name/spfiledb_name.ora`
create spfile='+{preferred disk group}/{db name}/spfile<var>db_name</var>.ora' from pfile='/acttestdb/<var>db_name</var>___backup.ora';spfile を使用して、データベースを nomount 状態で再起動します。
shutdown immediate; startup nomount;Backup and DR でマウントされたアーカイブ ログのバックアップから RMAN を使用して制御ファイルを復元します。ログにマウントされたバックアップの最新の制御ファイルを使用します。次に例を示します。
/acttestdb_Log/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctlまたは、複数のログ バックアップがある場合:
/acttestdb_Log_1/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctltarget / restore controlfile from '/acttestdb_Log_1/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl' ; ```データベースをマウントします。
alter database mount;Backup and DR でマウントされたデータベース バックアップとアーカイブログ バックアップから、データファイルとアーカイブログ フォルダを RMAN にカタログ化します。
run { catalog start with '/acttestdb/datafile' noprompt; catalog start with '/acttestdb/archivelog' noprompt; catalog start with '/acttestdb_Log' noprompt;}データベースを復元して復旧します。
run { restore database ; recover database; }特定の時点の復元(yyyymmddhh24mi 形式)の場合:
run { restore database; recover database until time "to_date('<var>timestamp</var>','yyyymmddhh24mi')"; }リセットログ オプションを使用してデータベースを開きます。
- プライマリ データベースの復元の場合:
alter database open resetlogs;RAC 構成では、ログのリセット後に別の手順が必要です。ノード 1 でデータベースをシャットダウンし、すべてのノードでデータベースを起動します。
sqlplus を使用してデータベースをシャットダウンします。
sqlplus / as sysdba shutdown immediate; ``` Use srvctl to start the database across all nodes: ```srvctl srvctl start database -d <var>database_name</var> ``` + For Data Guard standby database recovery: + For non-RAC config: Start the Data Guard managed recovery process ```rman alter database recover managed standby database nodelay disconnect; ``` + For RAC config: Shut down the database on node 1 and start the database in mounted state across all nodes. 1. Use sqlplus to shut down the database: ```sqlplus / as sysdba shutdown immediate; ``` 1. Use srvctl to start the database in a mount state across all nodes: ```srvctl srvctl start database -d <var>database_name</var> -o mount ``` 1. Start the Data Guard managed recovery process: ```rman alter database recover managed standby database nodelay disconnect; ```
データベースは読み取りと書き込みに使用できます。
RAC またはスタンドアロン ASM、ASM ディスク グループ
ASM ディスク グループにデータファイルがあり、ASM ディスク グループのステージング ディスク形式で保護されている Oracle データベースを復元する
保護されたソース データベースからバックアップをマウントします。[Mount] ウィンドウで、RAC ノード 1 の ASM のバックアップ マウントに優先ディスク グループを指定します。データベース バックアップをマウントする方法については、データアクセスのために ASM ディスクグループで保護された Oracle データベース バックアップをマウントするをご覧ください。
たとえば、マウント画面では次のようになります。
Select Host: RAC ノード 1 データベース サーバー
優先ディスク グループ: acttestdg
RAC node list: RAC ノード 1 の IP
バックアップ パラメータ ファイルは
/act/touch/<var>preferred_disk_group</var>/にコピーされます。次に例を示します。/act/touch/acttestdg/<var>database_name</var>___backup.ora
Oracle データベースをシャットダウンします。
ノード 1 から Oracle OS ユーザーに su します。
su - oracleOracle 環境を設定します。srvctl を使用して、すべてのノードでデータベースを停止します。
srvctl stop database -d <var>database_name</var>データベースが(すべてのノードで)シャットダウンされていることを確認します。データベースの残りのプロセスを終了します。
ps -ef | grep <var>db_name</var>/act/touch/acttestdg にコピーされたバックアップ パラメータ ファイルを使用して、データベースを nomount 状態で起動します。
Oracle 環境を設定します。sqlplus を使用してデータベースを起動します。
```sqlplus / as sysdba startup nomount pfile='/act/touch/acttestdg/<var>db_name</var>___backup.ora'; ```新しい spfile を作成し、データベースを再起動します。
ディスク グループの下にある元の spfile のパスを取得するには:
```sqlplus cat $ORACLE_HOME/dbs/init(database sid).ora ```例: spfile=+preferred disk group/db_name/spfiledb_name.ora
create spfile='+<var>preferred disk group</var>/<var>db_name</var>/spfile<var>db_name</var>.ora' from pfile='/act/touch/acttestdg/<var>db_name</var>___backup.ora';spfile を使用して、データベースを nomount 状態で再起動します。
```sql shutdown immediate; startup nomount; ```Backup and DR でマウントされたアーカイブ ログ バックアップから RMAN を使用して制御ファイルを復元します。ログにマウントされたバックアップの最新の制御ファイルを使用します。例:
/acttestdb_Log/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl複数のログ バックアップが存在する場合:/acttestdb_Log_1/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl```rman rman target / restore controlfile from '/acttestdg_Log_1/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl' ; ```データベースをマウントします。
```rman alter database mount; ```Backup and DR でマウントされたデータベース バックアップとアーカイブログ バックアップから、データファイルとアーカイブログ フォルダを RMAN にカタログ化します。
```rman run { catalog start with '+acttestdg/<var>db_name</var>/datafile' noprompt; catalog start with '+acttestdg/<var>db_name</var>/archivelog' noprompt; catalog start with '/acttestdg_Log' noprompt;} ```データベースを復元して復旧します。
```rman run { restore database ; recover database ; } ```特定の時点の復元を行うには、次のように recover コマンドを実行します。
```rman run { restore database; recover database until time "to_date('<var>timestamp</var>','yyyymmddhh24mi')"; } ```リセットログ オプションを使用してデータベースを開きます。
プライマリ データベースの復元の場合:
alter database open resetlogs;RAC 構成には別の手順が必要です。ログをリセットした後、ノード 1 のデータベースをシャットダウンし、すべてのノードでデータベースを起動します。sqlplus を使用してデータベースをシャットダウンします。
/ as sysdba shutdown immediate;srvctl を使用して、すべてのノードでデータベースを起動します。
start database -d <var>database_name</var>Data Guard スタンバイ データベースの復元の場合:
RAC 以外の構成の場合: Data Guard 管理の復元プロセスを開始します。
alter database recover managed standby database nodelay disconnect;RAC 構成の場合: ノード 1 のデータベースをシャットダウンし、すべてのノードでマウントされた状態でデータベースを起動します。
sqlplus を使用してデータベースをシャットダウンします。
as sysdba shutdown immediate;srvctl を使用して、すべてのノードでデータベースをマウント状態で起動します。
start database -d <var>database_name</var> -o mountData Guard マネージド リカバリ プロセスを開始します。
alter database recover managed standby database nodelay disconnect;
データベースは読み取りと書き込みに使用できます。
Oracle の表領域とデータファイルを復元する
データの破損などにより、単一のテーブルスペース データファイルを復元するには:
バックアップ / リカバリ アプライアンスから Oracle サーバーに最新のデータベース スナップショットをマウントします。
データベース バックアップのスナップショットを RMAN にカタログ化します。
こちらで説明されているように、バックアップ スナップショットを使用してテーブルスペースを復元します。
ASM ディスク グループ上の本番環境データベースの単一のテーブルスペースを復元する
本番環境データベースの単一のテーブルスペースをプライマリ ノードに復元するには:
Oracle データベースを標準マウントとしてマウントするの説明に従って、データベースのポイントインタイム スナップショットをマウントします。
[Mount] ウィンドウの [Mapping Options] で、バックアップのマウント ポイントを指定します。たとえば、ASM ディスク グループのバックアップの場合は、[Preferred Disk Group] にディスク グループ名を指定します。ファイル システムのバックアップの場合は、
/acttestdbなどのマウント場所を指定します。ファイル システムで保護されているデータベース バックアップをマウントする手順については、ファイル システムで保護されている Oracle データベース バックアップをデータアクセス用にマウントするをご覧ください。
ASM ディスク グループで保護されているデータベース バックアップをマウントする方法については、ASM ディスク グループで保護されている Oracle データベース バックアップをデータアクセス用にマウントするをご覧ください。
プライマリ ノードから、Oracle OS ユーザーとしてデータベース サーバーにログインします。
データベース環境を設定し、RMAN にログインします。
rman target /RMAN プロンプトで、バックアップ データファイルとアーカイブ ログ フォルダをカタログ化します。
例: ASM ディスク グループで保護されているデータベース バックアップ(マウントされた ASM ディスク グループ名「+ acttestdg」):
```rman catalog start with '+acttestdg/<var>db_name</var>/datafile' noprompt; catalog start with '+acttestdg/<var>db_name</var>/archivelog' noprompt; catalog start with ‘/<var>mountpoint_log</var>'; noprompt; (If archivelogs are protected by Backup and DR) ```例: ファイル システム(マウントされたファイル システム名「/acttestdb」)で保護されているデータベース バックアップ:
```rman catalog start with '/acttestdb/datafile' noprompt; catalog start with '/acttestdb/archivelog' noprompt; catalog start with '/acttestdb_log/archivelog' noprompt; ``` (If archivelogs are protected by Backup and DR)これで、次のようなすべての RMAN 復元コマンドを実行できます。
完了したら、バックアップをマウント解除して削除します。
表領域を復元する
表領域を復元するには:
```rman
restore tablespace <var>tablespace name</var>;
recover tablespace <var>tablespace name</var>;
```
データファイルを復元する
データファイルを復元するには:
```rman
restore datafile <var>file#</var>;
recover datafile <var>file#</var>;
```
破損したデータベース ブロックを復元する
破損したデータベース ブロックを復元するには:
Oracle データベースを標準マウントとしてマウントするの説明に従って、データベースのポイントインタイム スナップショットをマウントします。
[Mount] ウィンドウの [Mapping Options] で、バックアップのマウント ポイントを指定します。たとえば、ASM ディスク グループのバックアップの場合は、[Preferred Disk Group] にディスク グループ名を指定します。ファイル システムのバックアップの場合は、マウント場所(例: /acttestdb)を指定します。
ファイル システムで保護されているデータベース バックアップをマウントする手順については、ファイル システムで保護されている Oracle データベース バックアップをデータアクセス用にマウントするをご覧ください。
ASM ディスク グループで保護されているデータベース バックアップをマウントする方法については、ASM ディスク グループで保護されている Oracle データベース バックアップをデータアクセス用にマウントするをご覧ください。
プライマリ ノードから、Oracle OS ユーザーとしてデータベース サーバーにログインします。
データベース環境を設定して sqlplus にログインし、v$database_block_corruption をクエリして破損したブロックを確認します。
```sh sqlplus / as sysdba sql> SELECT * FROM V$DATABASE_BLOCK_CORRUPTION; ```RMAN にログインして、破損したすべてのブロックを復元します。
```rman rman target / RECOVER CORRUPTION LIST; ```ブロックが復元されると、データベースは V$DATABASE_BLOCK_CORRUPTION からブロックを削除します。
破損した個々のブロック(データファイル 8 とブロック 13 など)を復元するには:
RMAN プロンプトから
```rman recover datafile 8 block 13; ```
失われた制御ファイルを復元する
失われた制御ファイルを復元するには:
Oracle データベースを標準マウントとしてマウントするの説明に従って、データベースのポイントインタイム スナップショットをマウントします。
[Mount] ウィンドウの [Mapping Options] で、バックアップのマウント ポイントを指定します。たとえば、ASM ディスク グループのバックアップの場合は、[Preferred Disk Group] にディスク グループ名を指定します。ファイル システムのバックアップの場合は、
/acttestdbなどのマウント場所を指定します。ファイル システムで保護されているデータベース バックアップをマウントする手順については、ファイル システムで保護されている Oracle データベース バックアップをデータアクセス用にマウントするをご覧ください。
ASM ディスク グループで保護されているデータベース バックアップをマウントする方法の詳細については、データアクセス用に ASM ディスク グループで保護されている Oracle データベース バックアップをマウントするをご覧ください。
プライマリ ノードから、Oracle OS ユーザーとしてデータベース サーバーにログインします。
データベース環境を設定して sqlplus にログインし、データベースをシャットダウンして nomount 状態で起動します。
スタンドアロン データベースの場合:
```sql sqlplus / as sysdba sql> shutdown immediate; sql> startup nomount; ```マウントされたバックアップ ノードの RAC データベースの場合、すべてのノードでデータベースをシャットダウンします。
```sh srvctl stop database -d <var>db_name</var> sql> startup nomount; ```Backup and DR でマウントされたバックアップから制御ファイルを復元します。
例:
/acttestdb(ファイル システム)と+acttestdg(ASM 用)```rman rman target / restore controlfile from '/acttestdb/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl' ; (Filesystem mount) restore controlfile from '+acttestdb/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl' ; (ASM mount) ```sqlplus からデータベースをマウントして開きます。
```sql sqlplus / as sysdba sql> alter database mount; sql> recover database until cancel; sql> alter database open resetlogs; ```
Oracle プラグイン可能データベースを復元する
Oracle 12c 以降のプラガブル データベース(PDB)を復元するには:
ソース データベース サーバーからバックアップをマウントして復元します。[マウント] ウィンドウで、RAC ノード 1 の ASM のバックアップ マウントに優先ディスク グループを指定します。データベース バックアップをマウントする方法については、データアクセス用に ASM ディスク グループで保護された Oracle データベース バックアップをマウントするをご覧ください。
プラガブル データベースを閉じます。
ノード 1、
suから Oracle ユーザーsu - oracleOracle 環境を設定します。「sysdba」ユーザーとして Oracle データベースに接続します。
/ as sysdba alter pluggable database <var>pluggable_db_name</var> close;
Backup and DR でマウントされたデータベース バックアップとアーカイブログ バックアップから、データファイルとアーカイブログ フォルダを RMAN にカタログ化します。
run { catalog start with '+acttestdg/<var>db_name</var>/datafile' noprompt; catalog start with '+acttestdg/<var>db_name</var>/archivelog' noprompt; catalog start with '/acttestdg_Log' noprompt; }プラガブル データベースを復元して復旧する
run { restore pluggable database <var>pluggable_db_name</var>; recover pluggable database <var>pluggable_db_name</var> until time "to_date('<var>required time stamp</var>>';,';yyyymmddhh24mi')"; }プラガブル データベースを開きます。
alter pluggable database <var>pluggable_db_name</var> open;
プラガブル データベースは読み取りと書き込み用に開いています。
Oracle DBA ガイド
- Oracle データベースの Backup and DR
- Oracle データベースを保護するための前提条件
- Oracle のパッチと既知の問題
- 保護する Oracle データベースを準備する
- Oracle データベースを検出して保護する
- Oracle データベースの詳細と設定
- Backup and DR で dNFS を使用する
- 検出された Oracle データベースを保護する
- Oracle データベースを標準マウントとしてマウントする
- Oracle データベースのインスタント仮想コピーを作成する
- Oracle データベースを復元して復旧する
- マウントと移行を使用した Oracle データベースのインスタント リカバリ
- Backup and DR ワークフローを使用して環境をプロビジョニングする