「RECYCLEBINをonに設定すると、削除された表はごみ箱に入り、リカバリが可能です。」と書かれていたので、RECYCLEBIN(ゴミ箱)もバックアップセットに含まれているかを検証した。
【Oracle Databaseリファレンス 11gリリース2 (11.2)】
-> RECYCLEBIN
RECYCLEBINは、フラッシュバック・ドロップ機能がオンかオフかを制御するために使用します。
このパラメータをoffに設定すると、削除された表はごみ箱に入りません。
このパラメータをonに設定すると、削除された表はごみ箱に入り、リカバリが可能です。
この記事では11gリリース2 (11.2)を使っています。
■結論
RECYCLEBINに格納された領域に関しては、RECYCLEBINがPurgeされない限りバックアップセットに含まれる。
■検証結果
10万件を挿入した表を用意
SQL> select count(*) from tabA;
COUNT(*)
----------
100000
RECYCLEBINに何も入っていないことを確認
SQL> show recyclebin;
SQL> ※RECYCLEBINに何も入っていない
バックアップを取得(※1)
RMAN> backup database;
$ ll
-rw-r----- 1 oracle oinstall 9830400 6月 10 18:16 2019 o1_mf_ncsnf_TAG20190610T181545_fsdfmj4x_.bkp
-rw-r----- 1 oracle oinstall 1004937216 6月 10 18:16 2019 o1_mf_nnndf_TAG20190610T181545_fsdfl3qv_.bkp ※1
10万件のデータが挿入された状態のサイズ
表を削除して、RECYCLEBINへ
SQL> drop table tabA;
表が削除されました。
表tabA がRECYCLEBINに入っていることを確認
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TABA BIN$dYHZHSm1DILgUKjADDgYeA==$0 TABLE 2019-06-10:18:19:02
バックアップを取得(※2)
RMAN> backup database;
$ ll
-rw-r----- 1 oracle oinstall 9830400 6月 10 18:16 2019 o1_mf_ncsnf_TAG20190610T181545_fsdfmj4x_.bkp
-rw-r----- 1 oracle oinstall 9830400 6月 10 18:19 2019 o1_mf_ncsnf_TAG20190610T181932_fsdfsyyr_.bkp
-rw-r----- 1 oracle oinstall 1004937216 6月 10 18:16 2019 o1_mf_nnndf_TAG20190610T181545_fsdfl3qv_.bkp ※1
-rw-r----- 1 oracle oinstall 1004969984 6月 10 18:19 2019 o1_mf_nnndf_TAG20190610T181932_fsdfs509_.bkp ※2
表を削除(purgeは未実行)してもサイズはほぼ変わらない
バックアップ(※2)からリストア・リカバリ
RMAN> restore database;
RMAN> recover database;
RECYCLEBINの確認
SQL> sho recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TABA BIN$dYHZHSm1DILgUKjADDgYeA==$0 TABLE 2019-06-10:18:19:02
※リカバリした環境でもRECYCLEBINに入っていた
purgeした状態でバックアップ(※3)を取得
SQL> purge recyclebin;
リサイクルビンがパージされました。
SQL> show recyclebin
SQL> ※Purgeの結果消えた
RMAN> backup database;
$ ll
-rw-r----- 1 oracle oinstall 9830400 6月 10 18:16 2019 o1_mf_ncsnf_TAG20190610T181545_fsdfmj4x_.bkp
-rw-r----- 1 oracle oinstall 9830400 6月 10 18:19 2019 o1_mf_ncsnf_TAG20190610T181932_fsdfsyyr_.bkp
-rw-r----- 1 oracle oinstall 9830400 6月 10 18:41 2019 o1_mf_ncsnf_TAG20190610T184111_fsdh2l2n_.bkp
-rw-r----- 1 oracle oinstall 1004937216 6月 10 18:16 2019 o1_mf_nnndf_TAG20190610T181545_fsdfl3qv_.bkp
-rw-r----- 1 oracle oinstall 1004969984 6月 10 18:19 2019 o1_mf_nnndf_TAG20190610T181932_fsdfs509_.bkp
-rw-r----- 1 oracle oinstall 987848704 6月 10 18:41 2019 o1_mf_nnndf_TAG20190610T184111_fsdh1r2k_.bkp ※3
ゴミ箱をpurgeしたことでファイルの容量も減った
■まとめ
- オブジェクトを削除することにより、RMANのバックアップセットのサイズを小さくすることが出来るが、
RECYCLEBINに格納されたままだとバックアップセットのサイズは小さくならない。
■関連リンク
RMANバックアップ検証1 バックアップセットの「未使用ブロック」とは何か?
以上