不同的資料庫有不同的恢復方式。
Oracle 11g之後有快閃記憶體回歸機制,在一定的時間內可以從快閃記憶體中恢復數據。
MySQL資料庫則在開啟了binlog日誌的情況下,可以通過binlog日誌恢復被刪除的數據。
『貳』 SQL資料庫怎麼還原 用友SQL SERVER恢復資料庫誤刪除數據方法
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, 然後就完成數據的恢復!
『叄』 SQL server2008本地資料庫被刪,怎麼恢復
主要步驟如下:
1. 查詢被標記的資料庫
USE master
GO
SELECT NAME,STATE_DESC FROM SYS.DATABASES
WHERE STATE_DESC='SUSPECT'
GO
2. 設置為緊急狀態EMERGENCY,此時資料庫可以有一個用戶連接。由於本次資料庫比較大,就沒有繼續向下操作,我的做法是寫了腳步,把數據逐個的導出到另外一個庫。
有部分表,數據不全,查詢失敗,通過限制條件,逐步把可以查詢出來的導出來。
USE master
GO
ALTER DATABASE BPO SET EMERGENCY
GO
3.檢查資料庫
DBCC CHECKDB (BPO)
GO
4. 設置用戶
ALTER DATABASE BPO SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
5. 修復
DBCC CHECKDB (BPO, REPAIR_ALLOW_DATA_LOSS)
GO
6. 設置用戶
ALTER DATABASE BPO SET MULTI_USER
GO
『肆』 SQL資料庫被刪沒有備份怎麼才能還原
1、首先先確認你的Windows是否開啟了【系統還原】功能。如果有,請恢復到之前的還原點。
2、如果沒開系統還原,請確認你原來的資料庫是否在系統分區。如果在系統分區的話,建議用類似深山紅葉的光碟啟動,開啟EasyRecovery來掃描回復數據。不過多半找不回來。因為系統分區是改動N頻繁的。
3、用備份數據來恢復資料庫。
『伍』 sql默認資料庫被刪除,不能登入怎麼辦
原困是未設置SQL SERVER登錄認證模式為混合認證模式,因為SQL SERVER默認安裝後認證模式為WINDOWS認證模式,從而導致出錯。解決方法很簡單:二."無法連接到伺服器,用戶xxx登陸失敗" 該錯誤產生的原因是由於SQL Server使用了"僅 Windows"的身份驗證方式, 因此用戶無法使用SQL Server的登錄帳戶(如 sa )進行連接.解決方法如下所示: 1.在伺服器端使用企業管理器,並且選擇"使用 Windows 身份驗證"連接上 SQL Server 操作步驟: 在企業管理器中 --右鍵你的伺服器實例(就是那個有綠色圖標的) --編輯SQL Server注冊屬性 --選擇"使用windows身份驗證" --選擇"使用SQL Server身份驗證" --登錄名輸入:sa,密碼輸入sa的密碼 --確定 2.設置允許SQL Server身份登錄 操作步驟: 在企業管理器中 --展開"SQL Server組",滑鼠右鍵點擊SQL Server伺服器的名稱 --選擇"屬性" --再選擇"安全性"選項卡 --在"身份驗證"下,選擇"SQL Server和 Windows ". --確定,並重新啟動SQL Server服務. 在以上解決方法中,如果在第 1 步中使用"使用 Windows 身份驗證"連接 SQL Server 失敗, 那就通過修改注冊表來解決此問題: 1.點擊"開始"-"運行",輸入regedit,回車進入注冊表編輯器 2.依次展開注冊表項,瀏覽到以下注冊表鍵: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer] 3.在屏幕右方找到名稱"LoginMode",雙擊編輯雙位元組值 4.將原值從1改為2,點擊"確定" 5.關閉注冊表編輯器 6.重新啟動SQL Server服務. 此時,用戶可以成功地使用sa在企業管理器中新建SQL Server注冊, 但是仍然無法使用Windows身份驗證模式來連接SQL Server. 這是因為在 SQL Server 中有兩個預設的登錄帳戶: BUILTIN\Administrators <機器名>\Administrator 被刪除. 要恢復這兩個帳戶,可以使用以下的方法: 1.打開企業管理器,展開伺服器組,然後展開伺服器 2.展開"安全性",右擊"登錄",然後單擊"新建登錄" 3.在"名稱"框中,輸入 BUILTIN\Administrators 4.在"伺服器角色"選項卡中,選擇"System Administrators" 5.點擊"確定"退出 6.使用同樣方法添加 <機器名>\Administrator 登錄. 說明: 以下注冊表鍵: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode 的值決定了SQL Server將採取何種身份驗證模式. 1.表示使用"Windows 身份驗證"模式 2.表示使用混合模式(Windows 身份驗證和 SQL Server 身份驗證).
希望這些信息對你有所幫助!
0
『陸』 sql server資料庫被刪除怎麼恢復
方法1:
在
master
中執行
exec
sp_detach_db
'fj20070116',
'true'
接下來到相應的資料庫文件目錄下刪除log文件
exec
sp_attach_db
@dbname
=
n'fj20070116',
@filename1
=
n'f:\microsoft
sql
server\mssql\data\fj20070116_data.mdf'
執行結果如下(表明刪除日誌成功,並重建資料庫日誌文件):
設備激活錯誤。物理文件名
'f:\microsoft
sql
server\mssql\data\fj20070116_log.ldf'
可能有誤。
已創建名為
'f:\microsoft
sql
server\mssql\data\fj20070116_log.ldf'
的新日誌文件。
方法2:
選中要分離的資料庫,先將其分離。
刪除對應的日誌文件。
資料庫--所有任務--附加資料庫--在附加資料庫的彈出框中選擇mdf
選擇是即可完成創建新的資料庫日誌文件。對資料庫操作沒有任何影響。
以上兩個方法生成的log文件只有504kb。
『柒』 sql server資料庫被刪除了怎麼辦
使用Log Explorer查看和恢復數據
Log Explorer 4.1.可用於SQL Server2005的日誌查看工具
下載地址:
http://download.csdn.net/source/620271
使用方法:
打開Log Explorer -> Attach Log File -> 選擇SQL Server伺服器和登陸方式 -> Connect ->
在Database Name中選擇資料庫 -> Attach-> 左面對話框中Browse-> View Log-> 就可以看到log記錄了
想恢復的話: 右鍵Log記錄 Undo Transation-> 選擇保存文件名和路徑-> 然後打開該文件到查詢分析器里執行
T-sql代碼就可以了
例如 如果Log是delete table where ...的話,生成的文件代碼就是insert table ....
然後將此insert table的代碼放到查詢分析器里執行.就可以恢復數據.
----------------------------------------------------------------------
--如何恢復被delete/update的數據
----------------------------------------------------------------------
1連接到被刪除資料庫的Db
打開log explorer 選擇 "file"->"attach log file"->選擇伺服器和登陸方式->"connect"->選擇"資料庫"->"attach"
2 查看日誌
在左面操作項目的對話框中選擇"browse"項目->"view log"->就可以看到當前的Log記錄了
3 恢復數據
右鍵某一條log記錄,選擇"undo transation"->"選擇保存文件名和路徑"->然後打開該文件到查詢分析器里執行
T-sql代碼就可以了
例如: 如果log是delete table where ...的話,生成的文件代碼就是insert table ....
----------------------------------------------------------------------
--Log Explorer恢復被drop table和truncate table後的數據
----------------------------------------------------------------------
1 連接到被刪除資料庫的Db
操作同上
2 恢復方法
1) 選擇"salvaage dropped/truncate"菜單,在右邊的對話框中選擇表名,和droped/trucated的日期,
File Name中選擇生成insert語句腳步的存放位置,condition選擇是droped還是truncated,
最後點擊"create" 就會生成insert語句,把生成的語句到查詢分析器裡面執行一下就可以了
2) 選擇"ViewDDL Commands"菜單->選"truncate table" 操作項->點擊"Salvage"->生成語句->查詢分析器里執行
----------------------------------------------------------------------
--log explorer使用的幾個問題
----------------------------------------------------------------------
1) 對資料庫做完全/差異/日誌備份
備份時如果選用了刪除事務日誌中不活動的條目
再用Log explorer打試圖看日誌時,提示No log recorders found that match the filter,would you like to view unfiltered data 選擇yes 就看不到剛才的記錄了
如果不選用了刪除事務日誌中不活動的條目
再用Log explorer打試圖看日誌時,就能看到原來的日誌並做恢復
2) 修改了其中一個表中的部分數據,此時用Log explorer看日誌,可以作日誌恢復
3) 然後恢復備份,(注意:恢復是斷開log explorer與資料庫的連接,或連接到其他數據上,
否則會出現資料庫正在使用無法恢復)
恢復完後,再打開log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,選擇yes 就看不到剛才在2中修改的日誌記錄,所以無法做恢復.
4) 不要用SQL的備份功能備份,搞不好你的日誌就破壞了.
正確的備份方法是:
停止SQL服務,復制數據文件及日誌文件進行文件備份.
然後啟動SQL服務,用log explorer恢復數據
『捌』 SQL資料庫表被誤刪除,如何恢復
如果之前沒有完全備份的話,我不知道怎麼去恢復。
如果之前有完全備份的話,現在立刻備份日誌文件。
backup
log
資料庫名
to
disk
='備份路徑+備份名'
然後還原最近一次的完全備份(刪除表之前的完全備份)加上norecovery選項
restore
database
資料庫名
from
disk='完全備份路徑+備份名'
with
norecovery,replace
之後還原剛才備份的日誌文件,加上stopat選項,假設表是在18:01分刪除的,就恢復到之前的幾分鍾
restore
log
資料庫名
from
disk='日誌文件備份路徑+備份名'
with
stopat='2008-3-28
17:30'
『玖』 SQL數據被刪除如何恢復
企業管理器
--右鍵"資料庫"
--所有任務
--還原資料庫
--"還原為資料庫庫"中輸入還原後的資料庫名
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件--確定,回到資料庫還原的界面
--備份號--選擇內容--選擇你要恢復那次備份的內容
--選項--將"移至物理文件名"中的物理文件名修改為你的數據文件要存放的文件名
--如果要還原的資料庫已經存在,選擇"在現有資料庫上qz還原"-
-確定
--或用SQL語句:
restore database 資料庫 from disk='c:\你的備份文件名'
還原資料庫
企業管理器中的操作:
1.進行完整恢復
企業管理器--右鍵"資料庫"--所有任務--還原資料庫
--"還原為資料庫庫"中輸入還原後的資料庫名,設為:test
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件
--確定,回到資料庫還原的界面
--"還原備份集",選擇"資料庫--完全"
--選項--將"移至物理文件名"中的物理文件名修改為你的數據文件要存放的文件名
--如果要還原的資料庫已經存在,選擇"在現有資料庫上qz還原"
--"恢復完成狀態",選擇"使資料庫不再運行,但能還原其它事務日誌"
--確定
--或用SQL語句:
restore database 資料庫 from disk='c:\你的完全備份文件名' with norecovery
2.進行差異恢復
企業管理器--右鍵"資料庫"--所有任務--還原資料庫
--"還原為資料庫庫"中選擇資料庫名:test
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件
--確定,回到資料庫還原的界面
--"還原備份集",選擇"資料庫--差異"
--"恢復完成狀態",選擇"使資料庫不再運行,但能還原其它事務日誌"
--確定
--或用SQL語句:
restore database 資料庫 from disk='c:\你的差異備份文件名' with norecovery
3.進行日誌恢復
企業管理器--右鍵"資料庫"--所有任務--還原資料庫
--"還原為資料庫庫"中選擇資料庫名:test
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件
--確定,回到資料庫還原的界面
--"還原備份集",選擇"事務日誌"
--"恢復完成狀態",選擇"使資料庫可以繼續運行,但無法還原其它事務日誌"
--確定
--或用SQL語句:
restore log 資料庫 from disk='c:\你的日誌備份文件名' with recovery
--解決還原資料庫目錄不對的詳細步驟:
1.企業管理器中的方法:
--右鍵"資料庫"
--所有任務
--還原資料庫
--"還原為資料庫庫"中輸入還原後的資料庫名
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件--確定,回到資料庫還原的界面
--備份號--選擇內容--選擇你要恢復那次備份的內容
--選項--將"移至物理文件名"中的物理文件名修改為你的數據文件要存放的文件名
--如果要還原的資料庫已經存在,選擇"在現有資料庫上qz還原"-
-確定
2.用SQL語句的方法(假設你的備份文件名為: c:\xx.bak
--列出備份文件中的邏輯文件名
restore filelistonly from disk='c:\xx.bak'
--用語句恢復,根據上面列出的邏輯文件名使用move選項
restore database 恢復後的資料庫名
from disk='c:\xx.bak'
with move '邏輯數據文件名1' to 'c:\物理數據文件名1'
,move '邏輯數據文件名2' to 'c:\物理數據文件名2'
...
,move '邏輯數據文件名n' to 'c:\物理數據文件名n'
沒有什麼要特別注意的,和企業版之間的備份/還原要注意的東西一樣:
1.要注意備份時的設置問題,不要指定多個備份文件,否則還原時也要指定多個備份文件
2.要注意備份的媒體處理方式問題,用重寫,而不是追加,否則還原的時候要指定備份號
3.要注意備份的方式,用完全備份,而不是其他備份方式,否則還原時還要其他備份文件支持
『拾』 SQL資料庫被刪除了,有恢復的方法么
如果是SQL SERVER,把資料庫重新附加就好了。
打開資料庫企業管理器:控制台根結點->Microsoft SQL servers-> SQL server組-> local(windows NT)->資料庫,右擊「資料庫」,在彈出的列表中選擇「所有任務」->「附加資料庫」
附加你的資料庫的兩個原始數據文件:資料庫名稱.MDF及資料庫名稱.LDF(資料庫安裝目錄下如C:\Program Files\Microsoft SQL Server\MSSQL\Data)