當前位置:首頁 » 數據倉庫 » 自貢資料庫恢復
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

自貢資料庫恢復

發布時間: 2022-08-06 04:57:52

1. 如何恢復資料庫

可是提交到伺服器之後,一切顯地都無比陌生。因為不熟悉sql,准確來說就只會點Select,Update,Delete,Insert而已。昨天不小心誤刪了一張數據不多但是不在人工處理范圍內的一張表內的數據。因為知道SQL Server是有日誌這種東西的,事後我表現地無比淡定,在事發一個小時以內。一個小時之後,我發現我無法掌控這一事件了。上網查找了恢復數據的辦法。有必要啰嗦一下。 問題1:無論是遠程端還是伺服器端,都無法對資料庫(假設資料庫叫Test)進行除『增刪查改』的其它操作,譬如分離,離線,還原...錯誤提示是e.g.1 「無法分離 Test 資料庫 因為它當前正在使用。」e.g.2 「因為資料庫正在使用,未獲得對數據的排他訪問權,操作異常終止」反正嘛,就是說你丫不能阻止別人的訪問。可我們就是要這樣做的...只好跟它說拜拜了。 說拜拜的方法就是關掉所有訪問資料庫Test的進程。createproc killspid (@dbnamevarchar(20)) asbegindeclare@sqlnvarchar(500) declare@spidintset@sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')'exec(@sql) open getspid fetchnextfrom getspid into@spidwhile@@fetch_status<>-1beginexec('kill '+@spid) fetchnextfrom getspid into@spidendclose getspid deallocate getspid end--用法use master exec killspid '資料庫名'PS:代碼我是這樣理解的,定義一段殺死訪問資料庫進程的存儲過程。寫一段獲取進程ID的代碼,循環殺死每一個進程。最後調用存儲過程。雖然不了解存儲過程,但是意思就是這樣的吧。 問題2:沒有備份資料庫,那該如何恢復數據呢有個軟體叫做Log Explorer 這個東西可以根據資料庫的日誌回到過去的任何一個時刻。View Code Log Explorer for SQL Server 是個好東西,但是這根本無法解決我的問題。資料庫在伺服器端,學校根本不會讓我安裝一個軟體在伺服器上面。而且我證實過,這個軟體必須要在伺服器端裝伺服器端軟體的。所以,這個對於我來說,是泡湯的。但是不代表這不是一個利器。 最後我用了一個很蛋疼的方法解決了。1.分離資料庫,備份一個Test;2.將資料庫附加回去,用自帶的恢復方式恢復到一個很久以前的狀態;3.將需要的那張表復制到備份的那個資料庫;4.將備份的那個資料庫掛回去,原資料庫刪了。 這是一個很蛋疼而且碰巧那張表沒被改的方法。頭一次知道DBA的重要性。我的方法是一個很偶然的東西,希望大家分享一下真正能解決恢復問題的辦法。當然,每隔一段時間備份是絕對沒有錯的。 方法 另外發現一個比較有技術性的可行的方法 1,如果誤操作之前存在一個全庫備份(或已有多個差異備份或增量備份),首先要做的事就是進進行一次日誌備份 (如果為了不讓日誌文件變大而置trunc. log on chkpt.選項為1那你就死翹了)backuplog dbName todisk='fileName'----注意:是日誌備份! 2,恢復一個全庫備份,注意需要使用with norecovery,如果還有其他差異或增量備份,則逐個恢復 restoredatabase dbName fromdisk='fileName'with norecovery 3,恢復最後一個日誌備份即剛做的日誌備份,指定恢復時間點到誤操作之前的時刻 restorelog dbName fromdisk='fileName'with stopat='date_time' 完整代碼View Code 經過驗證,這才叫有技術性!我那純屬「鄧艾的屯『田』」小孩子過家家。。。

2. sqlserver資料庫表數據誤刪除了 怎麼恢復

恢復sqlserver資料庫表數據步驟如下:

一、心態:

1、務必冷靜,事情已經發生不可慌亂。

2、立即查看當前時間,最好能夠精確到秒,並做記錄。

3、應立即向直接上級反映此事,不可隱瞞,防止事態擴大。

4、如果許可權允許,應當立即停止相關應用,防止有新的數據寫入資料庫。

二、恢復:

1、構建新資料庫以及寫入一些數據

如果查詢發現數據不是你想要的,那麼可以重復上述的操作,從備份事務日誌開始,然後最後選擇時間點的時候在縮小范圍。

3. 如何恢復系統資料庫

恢復系統資料庫:
1、新建一個資料庫「kelin」(本資料庫為需要還原的資料庫)。

2、右鍵點擊需還原的資料庫,選擇」任務「→」還原「→」資料庫「。

3、點擊選擇「源設備」,然後點擊「..」,彈出框中備份媒介選擇「文件」,然後點擊「添加」按鈕,找到可以用於還原的1.bak文件,點擊「確定」按鈕。如 圖所示:

4、在「選擇用於還原的備份集」下面勾選設定好的用於還原的備份集

5、點擊左側「選項」,在新界面中勾選「覆蓋現有資料庫」,要注意修改「還原為」中的途徑,下面途徑僅供參考:
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\kelin.mdf
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\kelin_log.ldf
然後點擊確定按鈕。

6、最後彈出」對資料庫『kelin』的還原已成功完成「點擊確定,就完成了對整個資料庫的還原。

4. 如何恢復資料庫文件呢

要還原資料庫首先得後有資料庫的備份文件。
如果SQLSever2000沒有這個資料庫,你先建立一個空資料庫,記住這個資料庫的數據文件路徑和日子文件路徑,然後右鍵資料庫,點還原-選從設備-選擇設備(就是選資料庫的備份文件)-點選項-把剛才記的資料庫文件路徑和日誌文件路徑對應下面移至物理文件名弄好,選擇在現有資料庫庫上強制還原,點確定就OK了

5. MYSQL資料庫丟失了數據怎麼恢復

資料庫丟失了最好的恢復方法是從備份中還原文件,資料庫的文件一般都會有備份。如果備份也損壞了,無法進行還原,那就需要使用數據恢復軟體來恢復了。從網上找恢復軟體,然後掃描一下,看是否可以搜索到需要的文件。

6. 資料庫被刪除怎麼恢復

sql
server中誤刪除數據的恢復本來不是件難事,從事務日誌恢復即可。但是,這個恢復需要有兩個前提條件:
1.
至少有一個誤刪除之前的資料庫完全備份。
2.
資料庫的恢復模式(recovery
mode)是「完整(full)」。
針對這兩個前提條件,會有三種情況:
情況一、如果這兩個前提條件都存在,通過sql語句只需三步就能恢復(參考文章),無需藉助第三方工具。
a)
備份當前資料庫的事務日誌:backup
log
[資料庫名]
to
disk=
n'備份文件名'
with
norecovery
b)
恢復一個誤刪除之前的完全備份:restore
database
[資料庫名]
from
disk
=
n'完全備份文件名'
with
norecovery,
replace
c)
將資料庫恢復至誤刪除之前的時間點:restore
log
[資料庫]
from
disk
=
n'第一步的日誌備份文件名'
with
stopat
=
n'誤刪除之前的時間點'
,
recovery
情況二、如果第1個前提條件不存在,第2個前提條件存在,需要藉助第三方工具。
情況三、如果第2個前提條件不存在,無法恢復。所以,一定要將資料庫恢復模式設置為「完整(full)」。
我現在面臨的是第二種情況,需要找第三方工具。
開始找的是log
explorer
for
sql
server,不支持sql
server
2008。
後來找的是sql
log
rescue,也不支持sql
server
2008。
接著找到的是systools
sql
recovery,支持sql
server
2008,但需要購買,demo版並沒有數據恢復功能。
最終在officerecovery.com上找到recovery
for
sql
server,雖然也是商業軟體,需要購買,但demo版可以恢復數據,只要資料庫文件不超過24gb。幸好朋友的資料庫文件不大,用它完成了誤刪除數據的恢復。
下面分享一下用recovery
for
sql
server進行恢復的操作步驟:
1.
運行recovery
for
sql
server
2.
點擊菜單中的
file
>
recover,選擇要恢復的資料庫的數據文件(.mdf)
3.
next
>
next,進入
recovery
configuration
界面,選擇custom(選擇了custom才可以選擇從日誌中恢復誤刪除的數據)。
4.
next
進入
recovery
options
窗口,選中
search
for
deleted
records,並選擇要恢復的資料庫的日誌文件路徑(log
file
path)。
5.
next
並選擇目標文件夾(destination
folder),用於存放恢復過程中生成的sql語句與bat文件。
6.
點擊start,開始恢復操作(在上一步選擇的目標文件夾中生成相應的sql文件與bat文件),然後,出現
sql
server
database
creation
utility
窗口。
7.
next,選擇被恢復數據存放的目標資料庫。
8.
next,
選擇
import
availiable
data
from
both
database
and
log
files
9.
next,
next,
然後就完成數據的恢復!

7. 資料庫中的數據刪除後還能恢復嗎

SQL Server中誤刪除數據的恢復本來不是件難事,從事務日誌恢復即可。但是,這個恢復需要有兩個前提條件:
1. 至少有一個誤刪除之前的資料庫完全備份。
2. 資料庫的恢復模式(Recovery mode)是「完整(Full)」。
針對這兩個前提條件,會有三種情況:
情況一、如果這兩個前提條件都存在,通過SQL語句只需三步就能恢復(參考文章),無需藉助第三方工具。
a) 備份當前資料庫的事務日誌:BACKUP LOG [資料庫名] TO disk= N'備份文件名' WITH NORECOVERY
b) 恢復一個誤刪除之前的完全備份:RESTORE DATABASE [資料庫名] FROM DISK = N'完全備份文件名' WITH NORECOVERY, REPLACE
c) 將資料庫恢復至誤刪除之前的時間點:RESTORE LOG [資料庫] FROM DISK = N'第一步的日誌備份文件名' WITH STOPAT = N'誤刪除之前的時間點' , RECOVERY
情況二、如果第1個前提條件不存在,第2個前提條件存在,需要藉助第三方工具。
情況三、如果第2個前提條件不存在,無法恢復。所以,一定要將資料庫恢復模式設置為「完整(Full)」。
我現在面臨的是第二種情況,需要找第三方工具。
開始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
後來找的是SQL Log Rescue,也不支持SQL Server 2008。
接著找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要購買,Demo版並沒有數據恢復功能。
最終在officerecovery.com上找到Recovery for SQL Server,雖然也是商業軟體,需要購買,但Demo版可以恢復數據,只要資料庫文件不超過24Gb。幸好朋友的資料庫文件不大,用它完成了誤刪除數據的恢復。

8. 如何恢復資料庫中的數據

在網上下個數據恢復軟體下來就行了。比如easyrecovery 就不錯,還有中文免費版的。一看就。

9. 急那,,誤刪資料庫,怎樣恢復,

對於誤刪除的資料庫數據,如果並非行家,建議還是直接到專業的數據恢復機構處理,以免數據丟失無法恢復,要說數據恢復專業機構,愛特數據恢復算是專業的

10. SQL資料庫如何還原

一、備份資料庫
1、打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server
2、SQL Server組-->雙擊打開你的伺服器-->雙擊打開資料庫目錄
3、選擇你的資料庫名稱(如論壇資料庫Forum)-->然後點上面菜單中的工具-->選擇備份資料庫
4、備份選項選擇完全備份,目的中的備份到如果原來有路徑和名稱則選中名稱點刪除,然後點添加,如果原來沒有路徑和名稱則直接選擇添加,接著指定路徑和文件名,指定後點確定返回備份窗口,接著點確定進行備份

二、還原資料庫
1、打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server
2、SQL Server組-->雙擊打開你的伺服器-->點圖標欄的新建資料庫圖標,新建資料庫的名字自行取
3、點擊新建好的資料庫名稱-->然後點上面菜單中的工具-->選擇恢復資料庫
4、在彈出來的窗口中的還原選項中選擇從設備-->點選擇設備-->點添加-->然後選擇你的備份文件名-->添加後點確定返回,這時候設備欄應該出現您剛才選擇的資料庫備份文件名,備份號默認為1(如果您對同一個文件做過多次備份,可以點擊備份號旁邊的查看內容,在復選框中選擇最新的一次備份後點確定)-->然後點擊上方常規旁邊的選項按鈕
5、在出現的窗口中選擇在現有資料庫上強制還原,以及在恢復完成狀態中選擇使資料庫可以繼續運行但無法還原其它事務日誌的選項。在窗口的中間部位的將資料庫文件還原為這里要按照你SQL的安裝進行設置(也可以指定自己的目錄),邏輯文件名不需要改動,移至物理文件名要根據你所恢復的機器情況做改動,如您的SQL資料庫裝在D:\Program Files\Microsoft SQL Server\MSSQL\Data,那麼就按照您恢復機器的目錄進行相關改動改動,並且最後的文件名最好改成您當前的資料庫名(如原來是zw0001.mdf,現在的資料庫是zw0002,就改成zw0002.mdf),日誌和數據文件都要按照這樣的方式做相關的改動(日誌的文件名是.ldf結尾的),這里的恢復目錄您可以自由設置,前提是該目錄必須存在(如您可以指定d:\sqldata\zw0002.mdf或者d:\sqldata\zw0002.ldf),否則恢復將報錯
6、修改完成後,點擊下面的確定進行恢復,這時會出現一個進度條,提示恢復的進度,恢復完成後系統會自動提示成功,如中間提示報錯,請記錄下相關的錯誤內容並詢問對SQL操作比較熟悉的人員,一般的錯誤無非是目錄錯誤或者文件名重復或者文件名錯誤或者空間不夠或者資料庫正在使用中的錯誤,資料庫正在使用的錯誤您可以嘗試關閉所有關於SQL窗口然後重新打開進行恢復操作,如果還提示正在使用的錯誤可以將SQL服務停止然後重起看看,至於上述其它的錯誤一般都能按照錯誤內容做相應改動後即可恢復

三、設定每日自動備份資料庫
1、打開企業管理器,在控制台根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的伺服器
2、然後點上面菜單中的工具-->選擇資料庫維護計劃器
3、下一步選擇要進行自動備份的數據-->下一步更新數據優化信息,這里一般不用做選擇-->下一步檢查數據完整性,也一般不選擇
4、下一步指定資料庫維護計劃,默認的是1周備份一次,點擊更改選擇每天備份後點確定
5、下一步指定備份的磁碟目錄,選擇指定目錄,如您可以在D盤新建一個目錄如:d:\databak,然後在這里選擇使用此目錄,如果您的資料庫比較多最好選擇為每個資料庫建立子目錄,然後選擇刪除早於多少天前的備份,一般設定4-7天,這看您的具體備份要求,備份文件擴展名一般都是bak就用默認的
6、下一步指定事務日誌備份計劃,看您的需要做選擇-->下一步要生成的報表,一般不做選擇-->下一步維護計劃歷史記錄,最好用默認的選項-->下一步完成
7、完成後系統很可能會提示Sql Server Agent服務未啟動,先點確定完成計劃設定,然後找到桌面最右邊狀態欄中的SQL綠色圖標,雙擊點開,在服務中選擇Sql Server Agent,然後點擊運行箭頭,選上下方的當啟動OS時自動啟動服務
8、這個時候資料庫計劃已經成功的運行了,他將按照您上面的設置進行自動備份 .