新聞中心
在日常操作中,數(shù)據(jù)表的誤刪除是難以避免的情況。對于Oracle數(shù)據(jù)庫來說,如果誤刪除了sys下的表,將會導致數(shù)據(jù)庫無法啟動,從而影響到整個應用系統(tǒng)的正常工作。因此,處理誤刪sys下的表無法啟動數(shù)據(jù)庫的問題是十分重要的。

在具體操作中,如果發(fā)現(xiàn)了sys下的表被誤刪后,需要立即采取以下措施進行處理:
1. 快照恢復
可以通過Oracle自帶的快照功能來還原表。具體步驟如下:
– 需要在備份時開啟快照功能,這需要在RMAN中指定backup backupset … format=/snapshot;
– 然后,需要找到最近的一個快照,通過快照還原表。如果只有一個快照,可以通過以下命令還原:
$ restore table sys.table_name until sequence=;
– 如果存在多個快照,可以通過以下命令查詢快照號并還原:
$ list snapshot of database;
$ restore table sys.table_name until snapshot ;
2. 導出表數(shù)據(jù)
如果沒有開啟快照功能或快照恢復失敗,可以通過表數(shù)據(jù)的導出和導入來恢復表。具體步驟如下:
– 需要在其他相同版本的數(shù)據(jù)庫上創(chuàng)建同名表(表結(jié)構(gòu)必須完全一致),然后將其導出:
$ exp sys/xxxxx tables=sys.table_name file=sys_table_name.dmp
– 然后,將導出的表數(shù)據(jù)導入到目標數(shù)據(jù)庫中:
$ imp sys/xxxxx tables=sys.table_name file=sys_table_name.dmp
3. 使用Data Pump
Data Pump是Oracle的一種數(shù)據(jù)導入導出工具。它可以將表空間、用戶和數(shù)據(jù)表等導出到文件中,然后在另一個數(shù)據(jù)庫中導入。具體步驟如下:
– 需要在目標數(shù)據(jù)庫上創(chuàng)建同名的表,并用Data Pump將源數(shù)據(jù)庫的表導出:
$ expdp sys/xxxxx tables=sys.table_name dumpfile=sys_table_name.dmp
– 然后,將導出的表數(shù)據(jù)導入到目標數(shù)據(jù)庫中:
$ impdp sys/xxxxx tables=sys.table_name dumpfile=sys_table_name.dmp
除了以上三種方法,還有其他一些方法可用于處理誤刪sys下的表無法啟動數(shù)據(jù)庫的問題,例如Oracle Flashback、Oracle LogMiner等。
相關(guān)問題拓展閱讀:
- 數(shù)據(jù)庫被刪除怎么恢復
數(shù)據(jù)庫被刪除怎么恢復
恢復步驟:
1、運行EasyRecovery。
2、選擇“DeletedRecovery”。
3、選擇數(shù)據(jù)庫文件所在的驅(qū)租橡動器,在“File Filter”沖備中輸入*.mdf|*.ldf,選擇“Next”。
4、在左側(cè)窗口會列出被刪除的數(shù)據(jù)庫文件,選擇所要恢復的數(shù)據(jù)庫文件,選擇“Next”。
5、在“Recover to Local Drive”中選擇恢復后的文件存放的路徑,要選擇與原數(shù)據(jù)庫文件不同的路徑,選擇“Next”。
6、文件被恢復后,將恢復的文件復制到原數(shù)據(jù)庫文件位置,并在企業(yè)管理器通過附加數(shù)據(jù)庫,將恢復的文件恢復到SQL Server中。
注:如果刪除的數(shù)據(jù)庫文件所有的存儲區(qū)域被寫過了,就無法恢復了,所以刪除與恢復的時間間隔越短越好弊判旁。
sql
server中誤刪除數(shù)據(jù)的恢復本來不是件難事,從事務日志恢復即可。但是,這個恢復需要有兩個前提條件:
1.
至少有一個誤刪除之前的數(shù)據(jù)庫完全備份。
2.
數(shù)據(jù)庫的恢復模式(recovery
mode)是“完整(full)”。
針對這兩個前提條件,會有三種情況:
情況一、如果這兩個前提條件都存在,通過sql語句搭森御只需三步就能恢復(參考文章),無需借助第三方工具。
a)
備份當前數(shù)據(jù)庫的事務日志:backup
log
to
disk=
n’備份文件名’
with
norecovery
b)
恢復一個誤刪除之前的完全備份:restore
database
from
disk
=
n’完全備份文件名’
with
norecovery,
replace
c)
將數(shù)據(jù)庫恢復至誤刪除之前的時間點:restore
log
from
disk
=
n’之一步的日志備份文春搜件名’
with
stopat
=
n’誤刪除之前的時間點’
,
recovery
情況二、如果第1個前提條件不存在,第2個前提條件存在,需要借助第三方工具。
情況三、如果第2個前提條件不存在,無法恢復。所以,一定要將數(shù)據(jù)庫恢復模式設置為“完整(full)”。
我現(xiàn)在面臨的是第二種情況,需要找第三方工具。
開始找的是log
explorer
for
sql
server,不支持sql
server
2023。
后來找的是sql
log
rescue,也不知巖支持sql
server
2023。
接著找到的是systools
sql
recovery,支持sql
server
2023,但需要購買,demo版并沒有數(shù)據(jù)恢復功能。
最終在officerecovery.com上找到recovery
for
sql
server,雖然也是商業(yè)軟件,需要購買,但demo版可以恢復數(shù)據(jù),只要數(shù)據(jù)庫文件不超過24gb。幸好朋友的數(shù)據(jù)庫文件不大,用它完成了誤刪除數(shù)據(jù)的恢復。
下面分享一下用recovery
for
sql
server進行恢復的操作步驟:
1.
運行recovery
for
sql
server
2.
點擊菜單中的
file
>
recover,選擇要恢復的數(shù)據(jù)庫的數(shù)據(jù)文件(.mdf)
3.
next
>
next,進入
recovery
configuration
界面,選擇custom(選擇了custom才可以選擇從日志中恢復誤刪除的數(shù)據(jù))。
4.
next
進入
recovery
options
窗口,選中
search
for
deleted
records,并選擇要恢復的數(shù)據(jù)庫的日志文件路徑(log
file
path)。
5.
next
并選擇目標文件夾(destination
folder),用于存放恢復過程中生成的sql語句與bat文件。
6.
點擊start,開始恢復操作(在上一步選擇的目標文件夾中生成相應的sql文件與bat文件),然后,出現(xiàn)
sql
server
database
creation
utility
窗口。
7.
next,選擇被恢復數(shù)據(jù)存放的目標數(shù)據(jù)庫。
8.
next,
選擇
import
availiable
data
from
both
database
and
log
files
9.
next,
next,
然后就完成數(shù)據(jù)的恢復!
誤刪sys下的表無法啟動數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于誤刪sys下的表無法啟動數(shù)據(jù)庫,怎樣處理誤刪sys下的表無法啟動數(shù)據(jù)庫?,數(shù)據(jù)庫被刪除怎么恢復的信息別忘了在本站進行查找喔。
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
分享標題:怎樣處理誤刪sys下的表無法啟動數(shù)據(jù)庫?(誤刪sys下的表無法啟動數(shù)據(jù)庫)
瀏覽地址:http://fisionsoft.com.cn/article/cceiose.html


咨詢
建站咨詢
