真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle更新如何撤回 如何徹底刪除oracle

oracle更新表字段錯了怎么恢復(fù)

通過下面的語句看看是否能查到未改之前的記錄數(shù)據(jù):

為延川等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及延川網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站建設(shè)、延川網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

SELECT * FROM table_name AS OF TIMESTAMP SYSDATE – 40/1440;

在這里SYSDATE – 40/1440的意思是向前推40分鐘,時間可以根據(jù)當(dāng)時操作時間的情況來任意更改,如果查到之前沒修改時的數(shù)據(jù),那我們就可以使用下面的語句來恢復(fù)之前的記錄了:

update table_name t1 set t1.param = (SELECT param FROM table_name AS OF TIMESTAMP SYSDATE – 40/1440 where t1.id = id);

這里是通過id來關(guān)聯(lián)的,這個可以根據(jù)實際情況變動。

oracle 提交之后怎么回滾

execute執(zhí)行后

可以回滾

commit提交后

不可以回滾

其實Oracle提交數(shù)據(jù)是分兩步操作的,第一步execute執(zhí)行,第二步commit提交。對應(yīng)的PL\SQL也是要先點execute執(zhí)行,執(zhí)行后再點commit提交。

但是

commit提交后

可以用閃回查詢恢復(fù)原來的數(shù)據(jù)

因為oracle會將近期的數(shù)據(jù)保存到快照中

如:

SELECT

*

FROM

TABLE_1

AS

OF

TIMESTAMP

TO_TIMESTAMP('20080606

20:00:00','YYYYMMDD

HH24:MI:SS');

這里'20080606

20:00:00'就是你想恢復(fù)數(shù)據(jù)到哪個時間狀態(tài)

TABLE_1是數(shù)據(jù)庫的表名

這樣查詢到的數(shù)據(jù)就是執(zhí)行更新操作之前的數(shù)據(jù)

oracle update后怎么保存或者取消更新啊

輸入COMMIT;就代表確定

如果更新后你還沒COMMIT;那輸入rollback;就取消了

要是已經(jīng)COMMIT;了想取消,那就麻煩一點,要用到flashback table功能閃回表,具體用法可以GOOGLE下

oracle 請問有什么方法可以回滾insert,update,delete操作

update本身就可以理解為是insert,delete

你可以想象成,update一條數(shù)據(jù)的時候,是先把這條數(shù)據(jù)copy到內(nèi)存中,然后delete掉原來的數(shù)據(jù),然后把更新過的數(shù)據(jù)insert到表里面。

oracle update 數(shù)據(jù)更新錯誤,想恢復(fù)更新前的數(shù)據(jù),該如何恢復(fù)

flashback table與9i的flashback query相似,利用undo信息來恢復(fù)一個或者一些表到現(xiàn)在以前的一個時間點(一個快照)。Undo相關(guān)參數(shù)如下,需要確保AUM與足夠的retention值。

SQL show parameter undo

NAME TYPE VALUE

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

undo_management string AUTO

undo_retention integer 900

undo_tablespace string UNDOTBS1

首先要說明的是,flashback table不等于flashback query,所謂query,僅僅是查詢以前的一個快照點而已,并不改變當(dāng)前表的狀態(tài),而flashback table不一樣,將改變當(dāng)前表及附屬對象一起回到以前的時間點。

其實9i的flashback query在10g中也有了新的變化,10g中可以簡單的利用以下語句實現(xiàn)flashback query,而不再需要象9i那樣需要調(diào)用DBMS_FLASHBACK包。

SELECT * FROM TABLENAME AS OF TIMESTAMP

TO_TIMESTAMP('2003-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS')

WHERE ……;

10g的flashback table有如下特性

· 在線操作

· 恢復(fù)到指定時間點或者SCN的任何數(shù)據(jù).

· 自動恢復(fù)相關(guān)屬性,如索引,觸發(fā)器等

· 滿足分布式的一致性

· 滿足數(shù)據(jù)一致性,所有相關(guān)對象將自動一致

語法為:

FLASHBACK TABLE tablename TO TIMESTAMP (JUL-07-2003, 02:33:00)

FLASHBACK TABLE employee TO SCN 123456;

FLASHBACK TABLE t1 TO TIMESTAMP '2003-03-03 12:05:00' ENABLE TRIGGERS;

其中ENABLE TRIGGERS表示觸發(fā)器恢復(fù)之后為enable狀態(tài),而默認為disable狀態(tài)。

注意:如果需要flashback一個表,需要保證

需要有flashback any table的系統(tǒng)權(quán)限或者是該表的flashback對象權(quán)限。

需要有該表的SELECT, INSERT, DELETE, ALTER權(quán)限

必須保證該表ROW MOVEMENT

下面,我們用一個詳細的例子來說明這個過程:

16:16:51 SQL create user flash identified by flash;

User created.

16:17:04 SQL grant connect,resource to flash;

Grant succeeded.

16:17:19 SQL connect flash/flash;

Connected.

16:26:35 SQL create table t1 as select * from all_objects;

Table created.

16:37:24 SQL create table t2 as select * from t1;

Table created.

16:37:35 SQL select count(*) from t1;

COUNT(*)

----------

38949

16:37:43 SQL select count(*) from t2;

COUNT(*)

----------

38949

16:38:06 SQL create index inx_test1 on T1 (object_name);

Index created.

16:39:55 SQL create index inx_test2 on T1 (object_id);

Index created.

16:40:47 SQL select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY

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

2004-04-06 16:41:18

以上獲得一個時間戳,假定我們要恢復(fù)該表到這個時間,那么以下對該表的操作都將被前滾。

16:41:18 SQL drop index inx_test1;

Index dropped.

16:41:33 SQL delete from t1;

38949 rows deleted.

16:41:46 SQL commit;

Commit complete.

16:41:49 SQL truncate table t2;

Table truncated.

在以上的操作中,我們delete一個表,然后truncate一個表,下面,我們將來看看flashback table的效果,能恢復(fù)到什么程度

16:37:55 SQL ALTER TABLE t1 ENABLE ROW MOVEMENT;

Table altered.

16:38:03 SQL ALTER TABLE t2 ENABLE ROW MOVEMENT;

Table altered.

16:43:10 SQL flashback table t1 TO TIMESTAMP to_timestamp('2004-04-06 16:41:18','yyyy-mm-dd hh24:mi:ss');

Flashback complete.

16:43:49 SQL flashback table t2 TO TIMESTAMP to_timestamp('2004-04-06 16:41:18','yyyy-mm-dd hh24:mi:ss');

flashback table t2 TO TIMESTAMP to_timestamp('2004-04-06 16:41:18','yyyy-mm-dd hh24:mi:ss')

*

ERROR at line 1:

ORA-01466: unable to read data - table definition has changed

我們可以發(fā)現(xiàn),執(zhí)行delete操作的表是可以恢復(fù)的,而執(zhí)行truncate操作的表是不可以恢復(fù)的,這正好也說明了flashback table利用undo的結(jié)論。

看看我們的結(jié)果:

SQL select count(*) from t1;

COUNT(*)

----------

38949

SQL select count(*) from t2;

COUNT(*)

----------

SQL select t.index_name from user_indexes t where t.table_name='T1';

INDEX_NAME

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

INX_TEST2

還可以看到,對于drop的索引,也是沒有辦法恢復(fù)的,因為drop并不記錄undo,所以所謂索引的恢復(fù),僅僅是相關(guān)索引樹的改變而不能找回刪除掉的索引。


新聞名稱:oracle更新如何撤回 如何徹底刪除oracle
分享地址:http://weahome.cn/article/hghsdo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部