1. 程式人生 > >【Oracle】閃回表

【Oracle】閃回表

語法:

FLASHBACK TABLE [ schema. ] table [, [ schema. ] table ]...

TO { { { SCN | TIMESTAMP } expr| RESTORE POINT restore_point}

[ { ENABLE | DISABLE } TRIGGERS ]| BEFORE DROP [ RENAME TO table ]} ;

注  flashback table  為 ddl

1.建立測試表T1,並插入資料

[email protected]> create table t1 (x number(2),d date);

Table created.

[email protected]> insert into t1 (x) values(1);

1 row created.

[email protected]> insert into t1 values(2,sysdate);

1 row created.

[email protected]> commit;

Commit complete.

[email protected]> select * from t1;

         X D

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

         1

         2 2017-02-19,10:53:41

2.記錄當前的時間

[email protected]> select sysdate from dual;

SYSDATE

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

2017-02-19,10:54:49

3.刪除T1表中的一條資料

[email protected]> delete t1 where x=2;

1 row deleted.

[email protected]> commit;

Commit complete.

[email protected]

> select * from t1;

         X D

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

         1

4.此時對錶進行閃回,會出現錯誤。原因很明顯,因為表T1沒有開啟行移動

[email protected]> flashback table t1 to timestamp to_date('2017-02-19,10:54:49','yyyy-mm-dd,hh24:mi:ss');

flashback table t1 to timestamp to_date('2017-02-19,10:54:49','yyyy-mm-dd,hh24:mi:ss')

                *

ERROR at line 1:

ORA-08189: cannot flashback the table because row movement is not enabled

[email protected]> select table_name,row_movement from user_tables where table_name='T1';

TABLE_NAME                     ROW_MOVE

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

T1                             DISABLED

5.對錶T1開啟行移動

[email protected]> alter table t1 enable row movement;

Table altered.

6.對錶T1進行基於時間點的閃回操作

[email protected]> flashback table t1 to timestamp to_date('2017-02-19,10:54:49','yyyy-mm-dd,hh24:mi:ss');

Flashback complete.

[email protected]> select * from t1;

         X D

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

         1

         2 2017-02-19,10:53:41

相關推薦

Oracle

語法: FLASHBACK TABLE [ schema. ] table [, [ schema. ] table ]... TO { { { SCN | TIMESTAMP } expr| RES

oracleoralce 恢復資料

今天在做專案的時候,改錯了oracle資料庫表裡面的一個欄位,真的嚇到了一下,要是恢復不過來就悲劇了,肯定要被批。。。 好在成功的恢復了回來,下面給出恢復方法。情景:在Linux下,假設有一個表TAB

Oracle空間相關集合

長度 例如 參數說明 height ace 並且 報錯 mage 數據 創建表空間 1.語法 CREATE [SMALLFILE/BIGFILE] TABLESPACE tablespace_nameDATAFILE ‘/path/filename‘ SIZE num[k/

oracle使用資料泵導使用者每張部分資料

oracle使用資料泵導使用者每張表部分資料 (每張表5000行資料,少於5000的匯入全部下每張表5000行資料,少於5000的匯入全部) 資料庫版本:11.2.0.4;系統版本:Oracle Linux 6.4 場景: 開發提出一個需求,需要把tods使用者下的資料全部匯入到UA

oracleoracle使用utl_file和sqlloard實現A資料遷移至B資料(欄位數和順序不一樣)

oracle使用utl_file和sqlloard實現A表資料遷移至B表資料(欄位數和順序不一樣) 資料庫版本:11.2.0.4;系統版本:CentOS Linux 6.8 使用utl_file方式從A表匯出部分欄位至文字,再使用sqlload方式載入進B表; 表test欄位: 

oracle查詢某張重建以前的記錄操作(如能找到哪臺機器執行的更好)

oracle查詢某張表重建以前的記錄操作(如能找到哪臺機器執行的更好) 需求: 開發下午反饋測試環境有一張表不知道誰動過導致資料變了,然後他們十一點多的時候把表重建了; 但他們想知道重建表之前誰動過這張表(猜測肯定是覺得資料丟失了給他們帶來了諸多不便才想起來找DBA誰動過這張表),主要是想知

oracle查詢、資料庫(轉)

/* 一、 要使用閃回查詢,資料庫必須開啟automatic undo management,必須有undo表空間,必須設定好回滾段的保留時間 */ -- 在sqlplus中檢視undo_management引數值是否為AUTO,如果是“MANUAL”手動,需要修改為“A

OracleOracle查詢資料庫中所有的記錄數

方法一: 首先建立一個計算函式 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g

ORACLEdmp格式匯入匯出,沒有資料的情況下,該匯入會缺失

使用過oralce很多種匯入匯出的方式,pde,sql(匯出不支援blog格式),dmp格式,覺得.dmp最為方便,可以匯出所有的表結構、資料、SEQ及儲存過程等,下面就開始具體流程,並說明到如果表中沒有資料時如何匯入。匯入匯出.dmp命令,在cmd視窗執行,其中file為儲

oracle資料功能(恢復誤刪除的資訊)

1  ORACLE用PL/SQL提交資料後執行回滾的方法  1、如果資料庫表,不支援閃回功能   alter table A enable row movement;  2、查詢刪除資料的時間點的資料(也就是閃回至該時間點之前的資料)    select * from A

Oracle資料庫資料與

 --閃回 --1.查看錶歷史時刻資料 select * from table_name  AS OF TIMESTAMP to_timestamp('20150501 00:00:00','yyyymmdd hh24:mi:ss'); alter table tab

Pythondesc獲取結構建立oracle語句

由於某些oracle系統許可權管理的特別嚴格,或者某些表或檢視由多張表組成, 從而導致獲取建表語句十分困難或者根本不可能,只能通過sqlplus連線到oracle, 只能通過desc命令獲取簡單的表結構。如下圖這樣: 複製到文字檔案後是這樣的: 對於數量較少的

Oracle技術之一Oracle 11g 利用FlashTable ()恢復(用delete)誤刪的資料

閃回表,實際上就是將表中的資料快速恢復到過去的一個時間點或者系統改變號SCN上。實現表的閃回,需要用到撤銷表空間相關的UNDO資訊,通過SHOW PARAMETER UNDO命令就可以瞭解這些資訊。使用者對錶的資料的修改操作,都記錄在撤銷表空間中,這為表的閃回提供的資料恢

oracleOracle兩種臨時的建立與使用詳解

ORACLE資料庫除了可以儲存永久表外,還可以建立臨時表temporary tables。這些臨時表用來儲存一個會話SESSION的資料,或者儲存在一個事務中需要的資料。當會話退出或者使用者提交commit和回滾rollback事務的時候,臨時表的資料自動清空,但是臨時表的

oracle資料庫查詢和測試

閃回版本查詢測試 實現步驟: 1. 使用SQLPLUS連線Oracle資料庫 2. 構建簡單SQL語句 3. 閃回版本查詢測試 實驗操作如下: 1.  以SYS使用者通過SQLPLUS連線上Orac

oracle 差異計算

建測試表create table t_A ( id VARCHAR2(36) not null, name VARCHAR2(100), age NUMBER, sex VARCHAR2(2) ); insert into t_A (id, name

Oracle整庫匯出後怎麼恢復到指定使用者的指定

在匯出的時候,整庫匯出 這裡使用的是dba許可權 $exp "'/ as sysdba'" file=full20180227.dmp log=exp_full20180227.log buffer=40960000 full=y 或者 $exp \"/ as sysd

oracle詳解

[email protected]>conn tyger/tyger Connected. [email protected]>create table tyger as select * from scott.emp; Table created. [email p

Oracle刪除(釋放)資料檔案/空間流程

oracle刪除(釋放)資料檔案/表空間流程 生產環境:資料庫裡空間不足,niptest 表空間251G,只使用了17G 再alter database datafile '...../niptest1' resize 10G; 的時候說超出了範圍要求  由於表變動比較頻繁

Oracle詳解Oracle中NLS_LANG變量的使用

make fault tro territory font pin onclick 添加 其中 目錄結構: // contents structure [-] 關於NLS_LANG參數 NSL_LANG常用的值 在MS-DOS模式和Batch模式中