掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
Oracle數(shù)據(jù)庫(kù)是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),由甲骨文公司開(kāi)發(fā),它具有高性能、可擴(kuò)展性、安全性和可靠性等特點(diǎn),廣泛應(yīng)用于企業(yè)級(jí)應(yīng)用系統(tǒng),Oracle數(shù)據(jù)庫(kù)使用SQL(結(jié)構(gòu)化查詢語(yǔ)言)作為操作界面,支持多種操作系統(tǒng),如Windows、Linux、Unix等。

為新化等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及新化網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、新化網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
在Oracle數(shù)據(jù)庫(kù)中,刪除表實(shí)際上是將表的數(shù)據(jù)文件和控制文件從磁盤上移除,當(dāng)用戶執(zhí)行DROP TABLE語(yǔ)句時(shí),Oracle首先檢查該表是否被其他用戶或事務(wù)鎖定,如果沒(méi)有鎖定,Oracle會(huì)將表的數(shù)據(jù)文件和控制文件從數(shù)據(jù)目錄中刪除,同時(shí)更新元數(shù)據(jù)緩存,這樣,表就被徹底刪除了。
如果用戶誤刪了表,可以通過(guò)以下方法進(jìn)行恢復(fù):
1、從備份中恢復(fù)
如果在刪除表之前已經(jīng)創(chuàng)建了表的備份,可以直接使用備份文件恢復(fù)表,這種方法適用于誤刪后不久的情況,因?yàn)閭浞菸募赡苓€沒(méi)有被覆蓋或損壞。
2、使用TRUNCATE語(yǔ)句
如果在刪除表之后還沒(méi)有對(duì)表進(jìn)行修改操作,可以使用TRUNCATE語(yǔ)句清空表的數(shù)據(jù)并重新創(chuàng)建表,這種方法適用于誤刪后較長(zhǎng)時(shí)間的情況,因?yàn)門RUNCATE語(yǔ)句不會(huì)記錄表的歷史操作日志,但是需要注意的是,TRUNCATE語(yǔ)句只能清空表的數(shù)據(jù)而不能恢復(fù)已刪除的索引和約束等對(duì)象。
3、使用ORACLE_BASE/SID/BIN目錄下的RECYCLEBIN腳本
Oracle數(shù)據(jù)庫(kù)提供了一個(gè)名為RECYCLEBIN的腳本,可以用于恢復(fù)已刪除的對(duì)象,該腳本位于ORACLE_BASE/SID/BIN目錄下,其中ORACLE_BASE是Oracle基本目錄,SID是實(shí)例名,使用方法如下:
$ cd $ORACLE_BASE/SID/bin $ ./recoverdb -t deleted_objects -s-p -u -f
Q1:如何避免誤刪表?
A1:為了避免誤刪表,建議在執(zhí)行DROP TABLE語(yǔ)句之前先確認(rèn)要?jiǎng)h除的表是否存在重要數(shù)據(jù)或者依賴于其他對(duì)象,如果確實(shí)需要?jiǎng)h除該表,請(qǐng)先備份數(shù)據(jù)文件和控制文件,以便后續(xù)恢復(fù)操作;也可以使用NOLOGGING選項(xiàng)關(guān)閉表的日志功能,這樣即使誤刪也不會(huì)影響到其他用戶的操作。
Q2:如何防止誤刪索引和約束等對(duì)象?
A2:為了防止誤刪索引和約束等對(duì)象,建議在執(zhí)行DROP TABLE語(yǔ)句之前先確認(rèn)要?jiǎng)h除的對(duì)象是否存在重要數(shù)據(jù)或者依賴于其他對(duì)象,如果確實(shí)需要?jiǎng)h除該對(duì)象,請(qǐng)先備份相關(guān)的數(shù)據(jù)文件和控制文件;也可以使用NOLOGGING選項(xiàng)關(guān)閉相關(guān)對(duì)象的日志功能,這樣即使誤刪也不會(huì)影響到其他用戶的操作。
Q3:如何查看已經(jīng)被回收的對(duì)象?
A3:可以使用RECYCLEBIN腳本來(lái)查看已經(jīng)被回收的對(duì)象,具體方法是:進(jìn)入ORACLE_BASE/SID/BIN目錄下,執(zhí)行以下命令:
$ ./recoverdb -l -s-p -u --all=yes --objtype=TABLE --file= --list=yes --noheader=yes | less

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流