12cのrmanではマルチテナントが導入されたことに伴って、コンテナごとのバックアップ、およびにPDBごとのリストアが出来るようになります。
[oracle@DB01 ~]$ rman target /
Recovery Manager: Release 12.1.0.2.0 - Production on 日 7月 17 00:54:40 2016
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: CDB2 (データベースID=663406917)に接続されました
RMAN> backup database;
backupが開始されました(開始時間: 16-07-17)
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
・
・
・
チャネルORA_DISK_1: ピース1(16-07-17)を起動します
チャネルORA_DISK_1: ピース1(16-07-17)が完了しました
ピース・ハンドル=+FRA/CDB2/36D1F427301211C5E053C60911AC0FFB/BACKUPSET/2016_07_17/nnndf0_tag20160717t005453_0.462.917398655 タグ=TAG20160717T005453 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:45
backupが完了しました(完了時間: 16-07-17)
Control File and SPFILE Autobackupが開始されました(開始時間: 16-07-17)
ピース・ハンドル=+FRA/CDB2/AUTOBACKUP/2016_07_17/s_917398699.459.917398703 コメント=NONE
Control File and SPFILE Autobackupが完了しました(完了時間: 16-07-17)
rmanでターゲットデータベースに接続して、backup databaseを実行すると、PDBも含めたコンテナ全体のバックアップが取得されます。
[oracle@DB01 ~]$ sqlplus test/password@pdb1
SQL> set linesize 100
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7369 SMITH CLERK 7902 80-12-17 800 20
7499 ALLEN SALESMAN 7698 81-02-20 1600 300 30
7521 WARD SALESMAN 7698 81-02-22 1250 500 30
・
・
・
SQL> select systimestamp from dual;
SYSTIMESTAMP
---------------------------------------------------------------------------
16-07-17 00:59:51.559666 +09:00
SQL> drop table emp;
表が削除されました。
SQL> select * from emp;
select * from emp
*
行1でエラーが発生しました。:
ORA-00942: 表またはビューが存在しません。
バックアップを取得した後、試しにpdbに接続し、1つの表を削除してみます。
dropする前に時刻を確認しているので、drop前の時刻に戻る不完全リカバリを実行してみます。
[oracle@DB01 ~]$ rman target /
Recovery Manager: Release 12.1.0.2.0 - Production on 日 7月 17 01:00:16 2016
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: CDB2 (データベースID=663406917)に接続されました
RMAN> alter pluggable database pdb1 close;
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
文が処理されました
まず、コンテナの管理者でrmanに接続し、リカバリ対象のPDBをクローズします。
12cよりrmanのコマンドラインより直接SQL文が実行できるようになりました。
RMAN> restore pluggable database pdb1;
restoreが開始されました(開始時間: 16-07-17)
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=36 デバイス・タイプ=DISK
チャネルORA_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_DISK_1: データファイル00008を+DATA/CDB2/36D2894304212B74E053C60911AC5711/DATAFILE/system.298.916421277にリストアしています
チャネルORA_DISK_1: データファイル00009を+DATA/CDB2/36D2894304212B74E053C60911AC5711/DATAFILE/sysaux.297.916421277にリストアしています
チャネルORA_DISK_1: データファイル00010を+DATA/CDB2/36D2894304212B74E053C60911AC5711/DATAFILE/users.299.916421279にリストアしています
チャネルORA_DISK_1: データファイル00012を+DATA/test0706.dbfにリストアしています
チャネルORA_DISK_1: バックアップ・ピース+FRA/CDB2/36E03DC7689B77BBE053C60911AC5895/BACKUPSET/2016_07_17/nnndf0_tag20160717t005453_0.464.917398599から読取り中です
チャネルORA_DISK_1: ピース・ハンドル=+FRA/CDB2/36E03DC7689B77BBE053C60911AC5895/BACKUPSET/2016_07_17/nnndf0_tag20160717t005453_0.464.917398599 タグ=TAG20160717T005453
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:01:05
restoreが完了しました(完了時間: 16-07-17)
そして、対象のPDBをバックアップよりリストアします。
RMAN> recover pluggable database pdb1 until
2> time "to_timestamp('16-07-17 00:59:51','YY-MM-DD HH24:MI:SS')";
recoverが開始されました(開始時間: 16-07-17)
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=278 デバイス・タイプ=DISK
RMAN-05026: 警告: 次の表領域のセットは、指定したPoint-in-Timeへの適用が想定されています
・
・
・
スレッド1 (順序78)のアーカイブ・ログは、ファイル+FRA/CDB2/ARCHIVELOG/2016_07_17/thread_1_seq_78.458.917399165としてディスクに存在します
アーカイブ・ログ・ファイル名=+FRA/CDB2/ARCHIVELOG/2016_07_17/thread_1_seq_78.458.917399165 スレッド=1 順序=78
メディア・リカバリが完了しました。経過時間: 00:00:01
recoverが完了しました(完了時間: 16-07-17)
SQL文: alter database open read only
Oracleインスタンスがシャットダウンしました
自動インスタンスを削除しています
自動インスタンスが削除されました
補助インスタンス・ファイル+FRA/CDB2/DATAFILE/sysaux.451.917399399を削除しました
補助インスタンス・ファイル+FRA/CDB2/DATAFILE/current.453.917399385を削除しました
recoverが完了しました(完了時間: 16-07-17)
次に表削除前の時間を指定して、不完全リカバリを実行します。
これで、表はemp削除前の状態に戻りました。
RMAN> alter pluggable database pdb1 open resetlogs;
文が処理されました
resetlogsオプションでpdbをオープンします。
[oracle@DB01 ~]$ sqlplus test/password@pdb1
SQL> set linesize 100
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7369 SMITH CLERK 7902 80-12-17 800 20
7499 ALLEN SALESMAN 7698 81-02-20 1600 300 30
7521 WARD SALESMAN 7698 81-02-22 1250 500 30
7566 JONES MANAGER 7839 81-04-02 2975 20
7654 MARTIN SALESMAN 7698 81-09-28 1250 1400 30
・
・
・
削除した表が復活していることがわかります。
これでリストア完了です。
[oracle@DB01 ~]$ rman target /
Recovery Manager: Release 12.1.0.2.0 - Production on 日 7月 17 00:54:40 2016
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: CDB2 (データベースID=663406917)に接続されました
RMAN> backup database;
backupが開始されました(開始時間: 16-07-17)
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
・
・
・
チャネルORA_DISK_1: ピース1(16-07-17)を起動します
チャネルORA_DISK_1: ピース1(16-07-17)が完了しました
ピース・ハンドル=+FRA/CDB2/36D1F427301211C5E053C60911AC0FFB/BACKUPSET/2016_07_17/nnndf0_tag20160717t005453_0.462.917398655 タグ=TAG20160717T005453 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:45
backupが完了しました(完了時間: 16-07-17)
Control File and SPFILE Autobackupが開始されました(開始時間: 16-07-17)
ピース・ハンドル=+FRA/CDB2/AUTOBACKUP/2016_07_17/s_917398699.459.917398703 コメント=NONE
Control File and SPFILE Autobackupが完了しました(完了時間: 16-07-17)
rmanでターゲットデータベースに接続して、backup databaseを実行すると、PDBも含めたコンテナ全体のバックアップが取得されます。
[oracle@DB01 ~]$ sqlplus test/password@pdb1
SQL> set linesize 100
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7369 SMITH CLERK 7902 80-12-17 800 20
7499 ALLEN SALESMAN 7698 81-02-20 1600 300 30
7521 WARD SALESMAN 7698 81-02-22 1250 500 30
・
・
・
SQL> select systimestamp from dual;
SYSTIMESTAMP
---------------------------------------------------------------------------
16-07-17 00:59:51.559666 +09:00
SQL> drop table emp;
表が削除されました。
SQL> select * from emp;
select * from emp
*
行1でエラーが発生しました。:
ORA-00942: 表またはビューが存在しません。
バックアップを取得した後、試しにpdbに接続し、1つの表を削除してみます。
dropする前に時刻を確認しているので、drop前の時刻に戻る不完全リカバリを実行してみます。
[oracle@DB01 ~]$ rman target /
Recovery Manager: Release 12.1.0.2.0 - Production on 日 7月 17 01:00:16 2016
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: CDB2 (データベースID=663406917)に接続されました
RMAN> alter pluggable database pdb1 close;
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
文が処理されました
まず、コンテナの管理者でrmanに接続し、リカバリ対象のPDBをクローズします。
12cよりrmanのコマンドラインより直接SQL文が実行できるようになりました。
RMAN> restore pluggable database pdb1;
restoreが開始されました(開始時間: 16-07-17)
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=36 デバイス・タイプ=DISK
チャネルORA_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_DISK_1: データファイル00008を+DATA/CDB2/36D2894304212B74E053C60911AC5711/DATAFILE/system.298.916421277にリストアしています
チャネルORA_DISK_1: データファイル00009を+DATA/CDB2/36D2894304212B74E053C60911AC5711/DATAFILE/sysaux.297.916421277にリストアしています
チャネルORA_DISK_1: データファイル00010を+DATA/CDB2/36D2894304212B74E053C60911AC5711/DATAFILE/users.299.916421279にリストアしています
チャネルORA_DISK_1: データファイル00012を+DATA/test0706.dbfにリストアしています
チャネルORA_DISK_1: バックアップ・ピース+FRA/CDB2/36E03DC7689B77BBE053C60911AC5895/BACKUPSET/2016_07_17/nnndf0_tag20160717t005453_0.464.917398599から読取り中です
チャネルORA_DISK_1: ピース・ハンドル=+FRA/CDB2/36E03DC7689B77BBE053C60911AC5895/BACKUPSET/2016_07_17/nnndf0_tag20160717t005453_0.464.917398599 タグ=TAG20160717T005453
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:01:05
restoreが完了しました(完了時間: 16-07-17)
そして、対象のPDBをバックアップよりリストアします。
RMAN> recover pluggable database pdb1 until
2> time "to_timestamp('16-07-17 00:59:51','YY-MM-DD HH24:MI:SS')";
recoverが開始されました(開始時間: 16-07-17)
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=278 デバイス・タイプ=DISK
RMAN-05026: 警告: 次の表領域のセットは、指定したPoint-in-Timeへの適用が想定されています
・
・
・
スレッド1 (順序78)のアーカイブ・ログは、ファイル+FRA/CDB2/ARCHIVELOG/2016_07_17/thread_1_seq_78.458.917399165としてディスクに存在します
アーカイブ・ログ・ファイル名=+FRA/CDB2/ARCHIVELOG/2016_07_17/thread_1_seq_78.458.917399165 スレッド=1 順序=78
メディア・リカバリが完了しました。経過時間: 00:00:01
recoverが完了しました(完了時間: 16-07-17)
SQL文: alter database open read only
Oracleインスタンスがシャットダウンしました
自動インスタンスを削除しています
自動インスタンスが削除されました
補助インスタンス・ファイル+FRA/CDB2/DATAFILE/sysaux.451.917399399を削除しました
補助インスタンス・ファイル+FRA/CDB2/DATAFILE/current.453.917399385を削除しました
recoverが完了しました(完了時間: 16-07-17)
次に表削除前の時間を指定して、不完全リカバリを実行します。
これで、表はemp削除前の状態に戻りました。
RMAN> alter pluggable database pdb1 open resetlogs;
文が処理されました
resetlogsオプションでpdbをオープンします。
[oracle@DB01 ~]$ sqlplus test/password@pdb1
SQL> set linesize 100
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7369 SMITH CLERK 7902 80-12-17 800 20
7499 ALLEN SALESMAN 7698 81-02-20 1600 300 30
7521 WARD SALESMAN 7698 81-02-22 1250 500 30
7566 JONES MANAGER 7839 81-04-02 2975 20
7654 MARTIN SALESMAN 7698 81-09-28 1250 1400 30
・
・
・
削除した表が復活していることがわかります。
これでリストア完了です。

コメント