日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
oracle誤刪表怎么辦,oracle刪除表怎么恢復(fù)

oracle誤刪數(shù)據(jù)恢復(fù)方法小結(jié)

如果用戶誤刪/更新了數(shù)據(jù)后,作為用戶并沒有什么直接的方法來進行恢復(fù),他們必須求助DBA來對數(shù)據(jù)庫進行恢復(fù),到了Oracle9i,這一個難堪局面有所改善。Or()acle

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)治多,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

9i中提供了一項新的技術(shù)手段--閃回查詢,用戶使用閃回查詢可以及時取得誤操作前的數(shù)據(jù),并可以針對錯誤進行相應(yīng)的恢復(fù)措施,而這一切都無需DBA干預(yù)

因為一時手賤,生產(chǎn)上的數(shù)據(jù)被我給delete掉了。

用的是delete語句,然后很迅速的還給commit了

下面這兩個語句:

ALTER

TABLE

tablename

ENABLE

row

movement

;

flashback

table

tablename

to

timestamp

to_timestamp('2012-09-13

13:00:00','yyyy-mm-dd

hh24:mi:ss');

記得大概是兩點半左右運行的delete---commit;

具體執(zhí)行流程我們可從以下幾個示例圖中體會;

1.原表記錄

$

sqlplus

eygle/eygle

SQL*Plus:

Release

10.1.0.2.0

-

Production

on

Wed

Mar

30

08:52:04

2005

Copyright

(c)

1982,

2004,

Oracle.

All

rights

reserved.

Connected

to:

Oracle

Database

10g

Enterprise

Edition

Release

10.1.0.2.0

-

64bit

Production

With

the

Partitioning,

OLAP

and

Data

Mining

options

SQLselect

count(*)

from

t1;

COUNT(*)

----------

9318

2.誤刪除所有記錄

并且提交更改。

SQLdelete

from

t1;

9318

rows

deleted.

SQLcommit;

Commit

complete.

SQLselect

count(*)

from

t1;

COUNT(*)

----------

3.獲得當(dāng)前SCN

如果能夠確切知道刪除之前SCN最好,如果不知道,可以進行閃回查詢嘗試.

SQLselect

dbms_flashback.get_system_change_number

from

dual;

GET_SYSTEM_CHANGE_NUMBER

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

10671006

SQLselect

count(*)

from

t1

as

of

scn

10671000;

COUNT(*)

----------

SQLselect

count(*)

from

t1

as

of

scn

10670000;

COUNT(*)

----------

9318

我們看到在SCN=10670000時,數(shù)據(jù)都在。

4.恢復(fù)數(shù)據(jù).

SQLinsert

into

t1

select

*

from

t1

as

of

scn

10670000;

9318

rows

created.

SQLcommit;

Commit

complete.

SQLselect

count(*)

from

t1;

COUNT(*)

----------

9318

其它網(wǎng)友用的教程

進行數(shù)據(jù)庫操作,delete后面一定要加where”。今天無意中在網(wǎng)上看到了關(guān)于oracle誤刪除數(shù)據(jù)恢復(fù)的一條信息,發(fā)現(xiàn)的確很好使,下面就我的測試向大家匯報下。

1.

select

*

from

t_viradsl2

t

//查詢t_viradsl2中所有的數(shù)據(jù),可以看到三條數(shù)據(jù)

2.

delete

t_viradsl2

//刪除t_viradsl2中所有的數(shù)據(jù),三條數(shù)據(jù)消失

3.

select

*

from

t_viradsl2

t

//無數(shù)據(jù)。

4.

insert

into

t_viradsl2

select

*

from

t_viradsl2

as

of

timestamp

to_Date('2011-01-19

15:28:00',

'yyyy-mm-dd

hh24:mi:ss')

//已將誤刪除數(shù)據(jù)插入表中

5.

select

*

from

t_viradsl2

t

//又會看到三條數(shù)據(jù)。

我們來分析下第四步,注意這句:

select

*

from

t_viradsl2

as

of

timestamp

to_Date('2011-01-19

15:28:00',

'yyyy-mm-dd

hh24:mi:ss'),什么意思呢,

找到t_viradsl2在2011-01-19

15:28:00這個時間點的所有數(shù)據(jù),既然找到了,你想怎么操作都可以了。

在此分享給大家

oracle數(shù)據(jù)庫誤操作把表刪除了,怎么找回?

一:表的恢復(fù)\x0d\x0a\x0d\x0a 對誤刪的表,只要沒有使用PURGE永久刪除選項,那么從flash back區(qū)恢復(fù)回來希望是挺大的。一般步驟有:\x0d\x0a\x0d\x0a1、從flash back里查詢被刪除的表\x0d\x0a\x0d\x0a select * from recyclebin\x0d\x0a\x0d\x0a2.執(zhí)行表的恢復(fù)\x0d\x0a\x0d\x0a flashback table tb to before drop,這里的tb代表你要恢復(fù)的表的名稱。\x0d\x0a\x0d\x0a二:表數(shù)據(jù)恢復(fù)\x0d\x0a\x0d\x0a 對誤刪的表記錄,只要沒有truncate語句,就可以根據(jù)事務(wù)的提交時間進行選擇恢復(fù),一般步驟有:\x0d\x0a\x0d\x0a1、先從flashback_transaction_query視圖里查詢,視圖提供了供查詢用的表名稱、事務(wù)提交時間、UNDO_SQL等字段。\x0d\x0a\x0d\x0a 如:select * from flashback_transaction_query where \x0d\x0atable_name='TEST';\x0d\x0a\x0d\x0a 2、執(zhí)行表記錄恢復(fù)\x0d\x0a\x0d\x0a 一般先根據(jù)時間進行查詢,查詢語句模式為select * from tb as of timestamp \x0d\x0ato_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名稱,time指某個時間點\x0d\x0a\x0d\x0a 如select * from scott.test as of timestamp to_timestamp('2009-12-11 \x0d\x0a20:53:57','yyyy-mm-dd hh24:mi:ss');\x0d\x0a\x0d\x0a 若有數(shù)據(jù),恢復(fù)極為簡單了,語句為flashback table tb to timestamp \x0d\x0ato_timestamp(time,'yyyy-mm-dd hh24:mi:ss');\x0d\x0a\x0d\x0a 如flashback table scott.test to timestamp to_timestamp('2009-12-11 \x0d\x0a20:47:30','yyyy-mm-dd hh24:mi:ss');\x0d\x0a\x0d\x0a注意:alter table testvarchar enable row movement;\x0d\x0a\x0d\x0a 這個命令的作用是,允許Oracle 修改分配給行的rowid。在Oracle \x0d\x0a中,插入一行時就會為它分配一個rowid,而且這一行永遠(yuǎn)擁有這個rowid。閃回表處理會對EMP \x0d\x0a完成DELETE,并且重新插入行,這樣就會為這些行分配一個新的rowid。要支持閃回就必須允許Oracle 執(zhí)行這個操作

誤刪除了delete oracle中數(shù)據(jù)表記錄,沒備份要怎么恢復(fù)

利用oracle提供的閃回方法,如果在刪除數(shù)據(jù)后還沒做大量的操作(只要保證被刪除數(shù)據(jù)的塊沒被覆寫),就可以利用閃回方式直接找回刪除的數(shù)據(jù)

具體步驟為:

*確定刪除數(shù)據(jù)的時間(在刪除數(shù)據(jù)之前的時間就行,不過最好是刪除數(shù)據(jù)的時間點)

*用以下語句找出刪除的數(shù)據(jù):select * from 表名 as of timestamp to_timestamp('刪除時間點','yyyy-mm-dd hh24:mi:ss')

*把刪除的數(shù)據(jù)重新插入原表:

insert into 表名 (select * from 表名 as of timestamp to_timestamp('刪除時間點','yyyy-mm-dd hh24:mi:ss'));注意要保證主鍵不重復(fù)。

如果表結(jié)構(gòu)沒有發(fā)生改變,還可以直接使用閃回整個表的方式來恢復(fù)數(shù)據(jù)。

具體步驟為:

表閃回要求用戶必須要有flash any table權(quán)限

--開啟行移動功能

·alter table 表名 enable row movement

--恢復(fù)表數(shù)據(jù)

·flashback table 表名 to timestamp to_timestamp(刪除時間點','yyyy-mm-dd hh24:mi:ss')

--關(guān)閉行移動功能 ( 千萬別忘記 )

·alter table 表名 disable row movement

oracle如何恢復(fù)誤刪的表記錄數(shù)據(jù)?

oracle如何恢復(fù)誤刪的表記錄數(shù)據(jù),解決辦法:

從flash back里查詢被刪除的表select * from recyclebin

執(zhí)行表的恢復(fù)flashback table ?tbName ?to before drop;這里的tbName代表你要恢復(fù)的表的名稱。

先從flashback_transaction_query視圖里查詢,視圖提供了供查詢用的表名稱、事務(wù)提交時間、UNDO_SQL等字段。

一般先根據(jù)時間進行查詢,查詢語句模式為select * from tb as of timestamp to_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名稱,time指某個時間點。

這個命令的作用是,允許Oracle 修改分配給行的rowid。

在Oracle 中,插入一行時就會為它分配一個rowid,而且這一行永遠(yuǎn)擁有這個rowid。

閃回表處理會對EMP 完成DELETE,并且重新插入行,這樣就會為這些行分配一個新的rowid。

要支持閃回就必須允許Oracle 執(zhí)行這個操作。

oracle 誤刪除表的幾種恢復(fù)方法

誤刪數(shù)據(jù)(delete)的話,可以在undo空間找到最近的數(shù)據(jù)(根oracle設(shè)置的undo大小有關(guān))一般剛刪除的還是有機會找到的,自己根據(jù)SQL修改時間饑渴

SELECT?*

FROM?表名?AS?OF?TIMESTAMP?to_date('2018-07-19?08:01',?'yyyy-mm-dd?HH24:mi')

WHERE?可以帶條件;

如果是誤刪表(drop)的話。需要在回收站是否啟用,查看回收站中表

select?object_name,original_name,partition_name,type,ts_name,createtime,droptime?from?recyclebin;

flashback?table?表名?to?before?drop;

--或

flashback?table?"BIN$b+XkkO1RS5K10uKo9BfmuA==$0"?to?before?drop;

中間這一串BIN…… 是在回收站表中找到對應(yīng)的名字


名稱欄目:oracle誤刪表怎么辦,oracle刪除表怎么恢復(fù)
本文來源:http://www.dlmjj.cn/article/hsipji.html