mssqlserver恢復ldf文件數(shù)據(jù)的方法
更新時間:2013年11月05日 15:48:27 作者:
本文介紹mssqlserver怎么恢復ldf文件數(shù)據(jù)庫,簡單的來說,MDF文件是SQL server用來存放數(shù)據(jù)的數(shù)據(jù)庫文件;LDF文件SQL server是日志文件,存放了對數(shù)據(jù)庫進行的所有操作信息
我們重要的數(shù)據(jù)是存放在MDF文件中的,如果LDF文件丟失,MDF文件沒有丟失,那么數(shù)據(jù)也可以還原。如果LDF文件沒有丟失,MDF文件丟失,且LDF文件是完整的,也是可以提供一定手段還原數(shù)據(jù)。
現(xiàn)象描述
我們現(xiàn)在要面對的問題是,針對wtlog_2008_m12這個數(shù)據(jù)庫,只有MDF文件而LDF文件丟失了,SQL Server Management Studio中也沒有這個數(shù)據(jù)庫,附加上也會提示錯誤。
解決方法
(1)在SQL Server Management Studio刪除狀態(tài)為Recovery Pending的(即丟失了LDF的)問題數(shù)據(jù)庫(如果有的話,應該是在數(shù)據(jù)庫管理中沒有的)
(2)重命名老的MDF文件. 比如改為wtlog_2008_m12_bak.mdf
(3) 重建一個新的數(shù)據(jù)庫, 名字跟丟失的數(shù)據(jù)庫完全一樣,比如為wtlog_2008_m12,LDF文件的名字如果為wtlog_2008_m12的話,數(shù)據(jù)庫提示報錯,說邏輯名字已存在,但文件怎么也找不到,此處的LDF的文件命名為wtlog_2008_m12_log。 注意, 新的MDF的位置跟我們老的MDF的文件的位置相同. 這里的LDF文件的位置選在你想要存放的最終位置上(這個就是你所要的被恢復的LDF文件了).
(4)關閉SQL Server服務,將新的MDF(wtlog_2008_m12.mdf)重命名掉(比如改為wtlog_2008_m12___.mdf), 老的MDF(wtlog_2008_m12_bak.mdf)命名回原來的名字(wtlog_2008_m12.mdf).
(5)開啟SQL Server服務,連接數(shù)據(jù)庫,執(zhí)行下面語句,如果報錯的話,請查看是否連接上數(shù)據(jù)庫,或者有其他進程連著數(shù)據(jù)庫。
alter database wtlog_2008_m12 set emergency
alter database wtlog_2008_m12 set single_user with rollback immediate
alter database wtlog_2008_m12 rebuild log on (name=wtlog_2008_m12, filename='D:/watcher/database/wtlog_2008_m12.ldf')
alter database wtlog_2008_m12 SET MULTI_USER with rollback immediate
(6)此時,mdf和ldf的名字都為wtlog_2008_m12,刪除多余的mdf文件即可。
現(xiàn)象描述
我們現(xiàn)在要面對的問題是,針對wtlog_2008_m12這個數(shù)據(jù)庫,只有MDF文件而LDF文件丟失了,SQL Server Management Studio中也沒有這個數(shù)據(jù)庫,附加上也會提示錯誤。
解決方法
(1)在SQL Server Management Studio刪除狀態(tài)為Recovery Pending的(即丟失了LDF的)問題數(shù)據(jù)庫(如果有的話,應該是在數(shù)據(jù)庫管理中沒有的)
(2)重命名老的MDF文件. 比如改為wtlog_2008_m12_bak.mdf
(3) 重建一個新的數(shù)據(jù)庫, 名字跟丟失的數(shù)據(jù)庫完全一樣,比如為wtlog_2008_m12,LDF文件的名字如果為wtlog_2008_m12的話,數(shù)據(jù)庫提示報錯,說邏輯名字已存在,但文件怎么也找不到,此處的LDF的文件命名為wtlog_2008_m12_log。 注意, 新的MDF的位置跟我們老的MDF的文件的位置相同. 這里的LDF文件的位置選在你想要存放的最終位置上(這個就是你所要的被恢復的LDF文件了).
(4)關閉SQL Server服務,將新的MDF(wtlog_2008_m12.mdf)重命名掉(比如改為wtlog_2008_m12___.mdf), 老的MDF(wtlog_2008_m12_bak.mdf)命名回原來的名字(wtlog_2008_m12.mdf).
(5)開啟SQL Server服務,連接數(shù)據(jù)庫,執(zhí)行下面語句,如果報錯的話,請查看是否連接上數(shù)據(jù)庫,或者有其他進程連著數(shù)據(jù)庫。
復制代碼 代碼如下:
alter database wtlog_2008_m12 set emergency
alter database wtlog_2008_m12 set single_user with rollback immediate
alter database wtlog_2008_m12 rebuild log on (name=wtlog_2008_m12, filename='D:/watcher/database/wtlog_2008_m12.ldf')
alter database wtlog_2008_m12 SET MULTI_USER with rollback immediate
(6)此時,mdf和ldf的名字都為wtlog_2008_m12,刪除多余的mdf文件即可。
相關文章
SQL Server使用CROSS APPLY與OUTER APPLY實現(xiàn)連接查詢
這篇文章介紹了SQL Server使用CROSS APPLY與OUTER APPLY實現(xiàn)連接查詢的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05mssql數(shù)據(jù)庫系統(tǒng)崩潰后的一般處理步驟與方法
mssql數(shù)據(jù)庫系統(tǒng)崩潰后的一般處理步驟與方法...2007-03-03SqlServer數(shù)據(jù)庫腳本執(zhí)行命令行指令方式
這篇文章主要介紹了SqlServer數(shù)據(jù)庫腳本執(zhí)行命令行指令方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06delete誤刪數(shù)據(jù)使用SCN號恢復(推薦)
這篇文章主要介紹了使用scn號恢復誤刪數(shù)據(jù)問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12SQL?Server使用T-SQL進階之公用表表達式(CTE)
這篇文章介紹了SQL?Server中T-SQL的公用表表達式(CTE),文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05SQLSERVER全文目錄全文索引的使用方法和區(qū)別講解
這篇文章主要介紹了SQLSERVER全文目錄全文索引的使用方法,有圖有代碼,大家參考使用吧2013-11-11解決SQL Server的“此數(shù)據(jù)庫沒有有效所有者”問題
解決SQL Server的“此數(shù)據(jù)庫沒有有效所有者”問題,需要的朋友可以參考下。2011-12-12SQLSERVER數(shù)據(jù)備份文件的分割備份方法
這篇文章主要介紹了SQLSERVER數(shù)據(jù)備份文件的分割備份方法 ,需要的朋友可以參考下2014-12-12