oracle資料庫恢復

1、根據時間點去找表的快照

select * from sj_jbsj

AS OF TIMESTAMP TO_TIMESTAMP('2013-12-13 16:10:25','YYYY-MM-DDHH24:MI:SS');

2、將快照創建到一張緩存表中

create table guohaotemp2 as

select * from sj_jbsj

AS OF TIMESTAMP TO_TIMESTAMP('2013-12-13 16:10:25','YYYY-MM-DDHH24:MI:SS')

3、將表中的數據更新為緩存表中是數據

update sj_jbsj set jkzzb=(select jkzzb from guohaotemp2 whereguohaotemp2.jh=sj_jbsj.jh)

Advertisements

ok

參考:

1.查詢

SQL> select * from gametable ;

2.刪除

SQL> delete from gametable where GAMEID=1008;

1 row deleted.

SQL> commit;

Commit complete.

3.使用FlashBack查詢(過5分鐘)

SQL> select * from tdcs_layout AS OF TIMESTAMPTO_TIMESTAMP('2009-04-16 09:10:25','YYYY-MM-DD HH24:MI:SS');

4.使用FlashBack查詢恢復錶行數據

Advertisements

SQL> INSERT INTO gametable SELECT * FROM gametable AS OFTIMESTAMP

2 TO_TIMESTAMP('2005-12-15 14:37:25','YYYY-MM-DDHH24:MI:SS')

3 WHERE GAMEID=1008;

1 row created.

SQL> COMMIT;

Commit complete.

Oracle 9i中FlashBack閃回查詢操作實例

進行閃回查詢必須設置自動回滾段管理,在init.ora設置參數UNDO_MANAGEMENT=AUTO,參數UNDO_RETENTION=n,決定了能往前閃回的最大

時間,值越大就需要越多Undo空間。

*.undo_management='AUTO'

*.undo_retention=10800

*.undo_tablespace='UNDOTBS1'

1.查詢

SQL> select * from gametable ;

GAMEID NAME STATUS CREATIOND

------------ ---------------------------------------------------- ---------

HTTPPORT HTTPADDRESS TCPPORT

------------ -------------------- ------------

DESCRIPTION

--------------------------------------------------------------------------------

1008 帝國時代 0 26-MAR-05

0 0

1009 麻將 0 26-MAR-05

0 0

2 rows selected.

2.刪除

SQL> delete from gametable where GAMEID=1008;

1 row deleted.

SQL> commit;

Commit complete.

SQL> select * from gametable ;

GAMEID NAME STATUS CREATIOND

------------ ---------------------------------------------------- ---------

HTTPPORT HTTPADDRESS TCPPORT

------------ -------------------- ------------

DESCRIPTION

--------------------------------------------------------------------------------

1009 麻將 0 26-MAR-05

0 0

2 rows selected.

3.使用FlashBack查詢(過5分鐘)

SQL> select GAMEID from gametable AS OF TIMESTAMP

2 TO_TIMESTAMP('2005-12-15 14:37:25','YYYY-MM-DDHH24:MI:SS')

3 WHERE GAMEID=1008;

GAMEID

------------

1008

SQL> select GAMEID from gametable ;

GAMEID

------------

1009

2 rows selected.

4.使用FlashBack查詢恢復錶行數據

SQL> INSERT INTO gametable SELECT * FROM gametable AS OFTIMESTAMP

2 TO_TIMESTAMP('2005-12-15 14:37:25','YYYY-MM-DDHH24:MI:SS')

3 WHERE GAMEID=1008;

1 row created.

SQL> COMMIT;

Commit complete.

SQL> select GAMEID from gametable ;

GAMEID

------------

1009

1008

2 rows selected.

SQL> select * from gametable ;

GAMEID NAME STATUS CREATIOND

------------ ---------------------------------------------------- ---------

HTTPPORT HTTPADDRESS TCPPORT

------------ -------------------- ------------

DESCRIPTION

--------------------------------------------------------------------------------

1009 麻帝國將 0 26-MAR-05

0 0

1008 小時代 0 26-MAR-05

0 0

GAMEID NAME STATUS CREATIOND

------------ ---------------------------------------------------- ---------

HTTPPORT HTTPADDRESS TCPPORT

------------ -------------------- ------------

DESCRIPTION

--------------------------------------------------------------------------------

2 rows selected.

SQL>

Advertisements

你可能會喜歡