| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==Oracle Database10g バックアップおよびリカバリ概要==
[[Oracle][Oracle Database10g]]
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/backup.102/B19193-02/intro.htm#2297
*表の過去の状態を問い合せるには、SELECT文のAS OF句を使用
=====データを登録 09-07-12 23:54:50=====
SQL> > insert into test values (1, 'abcdefg', systimestamp);
1行が作成されました。
SQL> > select * from test;
ID VALUE UPD_DATE
=====更新しコミット 09-07-12 23:58:24=====
SQL> > update test set value = 'hijklmn', upd_date = systimestamp where id = 1;
1行が更新されました。
SQL> > select * from test;
ID VALUE UPD_DATE
1 hijklmn 09-07-12 23:58:24.976423
SQL> > commit;
コミットが完了しました。
=====変更前の状態を検索 09-07-12 23:58:00=====
*変更前の情報が検索された
SQL> > select * from test as of timestamp to_timestamp('2009-07-12 23:58:00', 'YYYY-MM-DD HH24:MI-SS')
2 where id = 1
3 /
1 abcdefg 09-07-12 23:54:50.411615
=====変更前の状態に復元=====
SQL> > delete from test where id = 1;
1行が削除されました。
SQL> > insert into test (select * from test as of timestamp to_timestamp
2 ('2009-07-12 23:58:00', 'YYYY-MM-DD HH24:MI-SS'))
3 /
1行が作成されました。
SQL> > select * from test;
ID VALUE UPD_DATE
=====Timestampを指定してFlashback Tableを実行する=====
*行移動を有効に
SQL> > alter table test enable row movement;
表が変更されました。
*時間とを確認し行を削除
SQL> > select systimestamp from dual;
SYSTIMESTAMP
09-07-13 00:31:50.401411 +09:00
SQL> > select * from test;
ID VALUE UPD_DATE
1 abcdefg 09-07-12 23:54:50.411615
SQL> > delete from test;
1行が削除されました。
SQL> > commit;
コミットが完了しました。
*Flashback Tableを実行
SQL> > flashback table test to timestamp to_timestamp('2009-07-13 00:31:50', 'YYYY-MM-DD HH24:MI-SS');
フラッシュバックが完了しました。
*戻った
SQL> > select * from test;
ID VALUE UPD_DATE
=====SCNを指定して Flashback Tableを実行する=====
*行を挿入しコミット
SQL> > insert into test values (3, 'aaaaa', systimestamp);
1行が作成されました。
SQL> > commit;
コミットが完了しました。
*行を変更しコミット
SQL> > update test set value = 'bbbbb', upd_date = systimestamp where id = 3;
1行が更新されました。
SQL> > commit;
コミットが完了しました。
*SCNのバージョンを確認し、更新前に戻す
SQL> > select id,value,versions_startscn, versions_operation
2 from test versions between scn minvalue and maxvalue
3 where id = 3
SQL> > flashback table test to scn 3103865;
フラッシュバックが完了しました。
*戻った
SQL> > select * from test where id = 3;
ID VALUE UPD_DATE
=====テーブルを削除してみる=====
*ゴミ箱に移動させない削除は、drop table table_name purge とする
SQL> > drop table test;
表が削除されました。
*削除された
SQL> > select * from test;
select * from test
*
=====ゴミ箱の内容を問い合わせる=====
SQL> > show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
=====Flashback Tableでもとに戻す=====
SQL> > flashback table test to before drop;
フラッシュバックが完了しました。
*これでもよい
SQL> > flashback table "BIN$boRfKFw95+vgQAB/AQAnzw==$0" to before drop;
=====元に戻った=====
SQL> > select * from test;
ID VALUE UPD_DATE

案内メニュー