管理コンソールを使用してデータベースを復元する
元のデータベースに復元すると、元の本番環境アプリケーション データが指定された特定の時点のイメージに置き換えられます。この復元により、アプリケーションがイメージの作成時点の状態に復元されるため、現在のアプリケーション データはすべて失われます。この操作は元に戻せません。復元オペレーションの完了に必要な時間は、関連するデータ量によって異なります。データベースを別のターゲットに復元することもできます。
次の手順に沿って、管理コンソールから RMAN を使用して Oracle データベースを自動的に復元し、元の本番環境データベースを上書きします。
管理コンソールで App Manager を開き、データベース アプリケーション名を入力するか、フィルタを使用して必要なデータベース イメージを見つけます。
アプリケーションを右クリックして、[アクセス] を選択します。
[アクセス] ページで、イメージを選択し、[マウント] メニューの [復元] をクリックします。
[復元] ページで、[従来](マウントと移行ではない)を選択します。
[Restore Range] スライダーを使用して、データベースを復元する特定の時点を選択します。ログが適用されていないデータベースだけを復元するには、スライダー ツールを一番左まで動かします。
[Username] に、選択したターゲット サーバーの Oracle ソフトウェア オーナーを入力します。
[チャネル数] で、データベース復元の並列処理を構成する RMAN チャネルの数を指定します。
[送信] をクリックします。
警告ダイアログが表示されます。内容を読んでから、[
DATA LOSS
] と入力して確定します。ジョブは、次に使用可能なジョブスロットのキューに入れられます。進行状況は [ジョブ モニター] で確認できます。
管理コンソールを使用してデータベースを任意のターゲットに復元する
管理コンソールから RMAN を使用して、Oracle データベースを新しいターゲットに復元するには、次の操作を行います。
- [App Manager] > [Applications] のリストで、データベースを右クリックして [Access] を選択します。
- 復元するバックアップ イメージを選択して、[Restore] を選択します。
[復元] ページで、[従来] を選択します。
- ターゲット: すべての構成で、対象となるすべての Oracle データベース サーバーをプルダウンから選択できます。プルダウンから復元先のターゲット サーバーを選択します。
- 元のアプリケーション ID を置き換える: このオプションは、バックアップが元々生成された同じアプライアンス上の新しいサーバーに復元する場合にのみ使用できます。
- はい: 元のアプリケーションを置き換え、元のアプリケーションと同じアプリケーション ID、ジョブ履歴、バックアップ イメージ、バックアップ プランを使用します。
- No: 元のアプリケーションは置き換えられません。新しいデータベースは、復元ジョブの一環として新しいアプリケーションとして検出されます。
- ロールフォワード時間: ログで保護されているデータベースを必要な時点に復元する日時を選択します。
[Application Options]:
- DATABASESID: 保護されたデータベースの SID 名が事前入力されており、変更できません。
- ユーザー名: ソース データベースの Oracle ソフトウェアの所有者が事前に入力されています。選択したターゲット サーバーの Oracle ソフトウェアの所有者が異なる場合は、USERNAME を更新します。
- ORAHOME: これは、移行元データベースの Oracle Home パスで事前入力されます。選択したターゲット サーバーで Oracle ホームが異なる場合は、Oracle ホーム ディレクトリを更新します。
- 詳細オプション: 事前入力され、バックアップ時のソースのすべてのデータベース パラメータ設定(pfile から)が表示されます。復元先のターゲット データベース サーバー(ソースまたは新しいターゲット)のパラメータ値が正しいことを確認します。
マッピング オプション:
Target Database Type: プルダウン リストから、データベースのデータベース ターゲット タイプ(ASM ディスク グループまたはファイル システム)を選択します。ASM 形式のバックアップ イメージでは、ファイル システムのターゲット タイプはサポートされていません。
ソース データベース 代替画像の形式 復元ターゲット ASM ASM ASM ASM ファイル システム ASM ファイル システム ファイル システム ファイル システム プルダウン リストから、3 つのファイルタイプ(データベースのデータファイル、制御ファイル、REDO ファイル)のターゲット ASM ディスク グループとファイル システムのマッピングを選択します。
[フライト前のチェック] をクリックします。プリフライト チェックが失敗した場合は、問題を修正してプリフライト チェックを再度実行します。
[送信] をクリックして復元ジョブを送信します。
RMAN を使用して Oracle データベースを手動で復元する
Oracle データベースを手動で復元するには、次の手順をご覧ください。
非 RAC、非 ASM、ファイル システム
ファイル システムにデータファイルがあり、ファイルベースのステージング ディスク形式で保護されている Oracle データベースを復元する
保護されたソース データベースからイメージをマウントします。
[マウント] ウィンドウの [マッピング オプション] で、イメージのマウント ポイント(例:
/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';
nomount 状態で spfile を使用してデータベースを再起動します。
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;
バックアップと 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 データベースを復元する
保護されたソース データベースからイメージをマウントします。
[Mapping Options] の [Mount] ウィンドウで、イメージのマウント ポイント(例:
/acttestdb
)を指定します。データベース イメージをマウントする手順については、データ アクセス用のファイル システムで保護された Oracle Database イメージをマウントするをご覧ください。データベース バックアップ イメージは、マウント場所
/acttestdb
にマウントされます。保護されたアーカイブ ログは
/acttestdb_Log
にマウントされます。Oracle データベースをシャットダウンします。ノード 1 から Oracle OS ユーザーに su します。
su - oracle
Oracle 環境を設定し、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{データベース SID}.ora
例: spfile=+{優先ディスク グループ}/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';
nomount 状態で spfile を使用してデータベースを再起動します。
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
target / restore controlfile from '/acttestdb_Log_1/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl' ; ```
データベースをマウントします。
alter database mount;
バックアップと 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 データベースを復元する
保護されたソース データベースからイメージをマウントします。[マウント] ウィンドウで、RAC ノード 1 の ASM でイメージ マウントに使用する優先ディスク グループを指定します。データベース イメージのマウント方法の詳細については、データ アクセス用の ASM ディスク グループで保護された Oracle Database イメージのマウントをご覧ください。
たとえば、マウント画面では次のようになります。
ホストを選択: 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 - oracle
Oracle 環境を設定します。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';
nomount 状態で spfile を使用してデータベースを再起動します。
```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; ```
バックアップと 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 mount
Data 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 Database イメージをマウントするをご覧ください。
プライマリ ノードから、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 データベース イメージをマウントするをご覧ください。
プラガブル データベースを閉じます。
Node 1 から
su
への Oracle ユーザーsu - oracle
Oracle 環境を設定します。「sysdba」ユーザーとして Oracle データベースに接続します。
/ as sysdba alter pluggable database <var>pluggable_db_name</var> close;
バックアップと 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 データベースの詳細と設定
- バックアップと DR で dNFS を使用する
- 検出された Oracle データベースを保護する
- Oracle データベースを標準マウントとしてマウントする
- Oracle データベースのインスタント仮想コピーを作成する
- Oracle データベースを復元して復旧する
- マウントと移行を使用した Oracle データベースの瞬時復元
- バックアップと DR のワークフローを使用して環境をプロビジョニングする