[英]how to convert Mdf/ldf database files to .bak file (db restore) using T-SQL or .net code
[英]Restore DB from MDF file, lost LDF and DB was not cleanly shutdown
我的開發數據庫服務器是由某些管理員在不知情的情況下格式化的。 幸運的是,我將.mdf文件保存在其他驅動器中,但.ldf處於其默認位置。 由於我沒有數據庫備份,因此現在只剩下.mdf文件。 我用谷歌搜索,發現了各種技巧來從.mdf文件還原數據庫。 由於沒有徹底關閉數據庫,因此沒有任何技巧可以起作用。 我的機器上安裝了SQL Server 2008 SP2。 我記得丟失的數據庫服務器是SQL Server 2005實例。 請讓我知道如何恢復數據庫。
我嘗試過的技巧:
CREATE DATABASE Monitoring ON (FILENAME = N'D:\\Dump\\Data\\Monitoring.MDF') FOR ATTACH_REBUILD_LOG
sp_attach_single_file_db N'Monitoring', N'D:\\Dump\\Data\\Monitoring_Data.MDF'
在以上所有內容中
DBCC語句不正確。 檢查文檔以獲取正確的DBCC語法和選項。
然后我嘗試了DBCC REBUILD_LOG('Monitoring',N'C:\\Program Files ..MSSQL\\Data\\Monitoring_log.ldf')
,結果是:
DBCC語句不正確。 檢查文檔以獲取正確的DBCC語法和選項。”錯誤。
以下是一些注釋(對於SQL 2000)可能會有所幫助。 我從來沒有親自嘗試過這些。
通過執行以下操作,將數據庫置於緊急旁路狀態:
sp_configure 'allow', 1 go reconfigure with overide. update master..sysdatabases set status=32768 where dbid=5 --check this ID is for your db
停止SQL服務(實例)。
在質量管理中執行以下步驟:
select dbid, status, name from master..sysdatabases dbcc rebuild_log ('dbname', 'full path and LDF name')
通過在QM中執行,從緊急旁路狀態還原DB:
update master..sysdatabases set status=16 where dbid=5 --Check this ID for your db
通過在QM中執行以下操作進行清理:
sp_configure 'allow', 0 go reconfigure with override
嘗試這個:
ALTER DATABASE EmpDataBase重建登錄(NAME = $ DatabaseName $,FILENAME = N'$ Path \\ DatabaseName.ldf $')
走
DBCC CHECKDB
ALTER DATABASE $ DatabaseName $ SET MULTI_USER
走
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.