フラッシュバック・データベースのメンテナンス

フラッシュバック・データベースにおける個別表領域のフラッシュバック無効化

特定の表領域のフラッシュバック・ロギングを無効にして、オーバーヘッドを軽減できる。
SQL> alter tablespace INDX flashback off;
各表領域のフラッシュバックの有効性を確認する。 V$TABLESPACE
SQL> select name,flashback_on from v$tablespace;
 
NAME                                                                                       FLASHBACK
------------------------------------------------------------------------------------------ ---------
SYSTEM                                                                                     YES
UNDOTBS                                                                                    YES
SYSAUX                                                                                     YES
TEMP                                                                                       YES
USERS                                                                                      YES
BATCH                                                                                      YES
INDX                                                                                       NO
EXAMPLE                                                                                    YES
OLTP                                                                                       YES
 
9 rows selected.
 
SQL>

※ 表領域に対してOracle Flashback Databaseを無効にする場合は、FLASHBACK DATABASEを実行する前に、データ・ファイルをオフラインにする必要がある。
フラッシュバックを無効にした表領域を有効化にする。
SQL> alter tablespace indx flashback on;
alter tablespace indx flashback on
*
ERROR at line 1:
ORA-01126: database must be mounted in this instance and not open in any instance
 
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
 
Total System Global Area  314572800 bytes
Fixed Size                  1260612 bytes
Variable Size             104858556 bytes
Database Buffers          205520896 bytes
Redo Buffers                2932736 bytes
Database mounted.
SQL> alter tablespace indx flashback on;
 
Tablespace altered.
 
SQL> alter database open;
 
Database altered.
 
SQL>

フラッシュバックログの領域管理

フラッシュバックログのDisk領域の見積り V$FLASHBACK_DATABASE_LOG

一定期間データベースを通常のワークロードで実行して、フラッシュバック・ログの典型的なサンプルを作成することができる。フラッシュバックを設定したばかりで、0となってしまった。

SQL> select estimated_flashback_size from v$flashback_database_log;
 
ESTIMATED_FLASHBACK_SIZE
------------------------
                       0
 
SQL>
フラッシュバック・ログの保持と削除の規則
  1. フラッシュバック・ログは、フラッシュ・リカバリ領域に十分な領域があるかぎり、フラッシュバックの保存ターゲットを満たす必要がある場合に必ず作成される。
  2. フラッシュバック・ログは、古くなり、フラッシュバックの保存ターゲットを満たすために必要とされなくなると再利用できる。
  3. データベースで新しいフラッシュバック・ログを作成する必要がある場合に、フラッシュ・リカバリ領域が一杯になっていたり、ディスク領域がない場合は、最も古いフラッシュバック・ログがかわりに再利用される。
  4. フラッシュ・リカバリ領域が一杯になると、フラッシュ・リカバリ領域によってアーカイブREDOログが自動的に削除され、その他のファイル用の領域が確保されます。この場合、FLASHBACK DATABASEを使用するために、そのREDOログ・ファイルを使用する必要があるフラッシュバック・ログも削除される。

現行のデータベースのフラッシュバックの期間の確認

SQL> SELECT OLDEST_FLASHBACK_SCN, TO_CHAR(OLDEST_FLASHBACK_TIME,'YYYY/MM/DD HH24:MI:SS') FROM V$FLASHBACK_DATABASE_LOG;
 
OLDEST_FLASHBACK_SCN TO_CHAR(OLDEST_FLASHBACK_TIME,'YYYY/MM/DDHH24:MI:SS')
-------------------- ---------------------------------------------------------
              520762 2009/04/15 02:14:18
 
SQL>
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License