mssqlserver恢復(fù)ldf文件數(shù)據(jù)的方法
更新時間:2013年11月05日 15:48:27 作者:
本文介紹mssqlserver怎么恢復(fù)ldf文件數(shù)據(jù)庫,簡單的來說,MDF文件是SQL server用來存放數(shù)據(jù)的數(shù)據(jù)庫文件;LDF文件SQL server是日志文件,存放了對數(shù)據(jù)庫進(jìn)行的所有操作信息
我們重要的數(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ù)庫(如果有的話,應(yīng)該是在數(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文件的位置選在你想要存放的最終位置上(這個就是你所要的被恢復(fù)的LDF文件了).
(4)關(guān)閉SQL Server服務(wù),將新的MDF(wtlog_2008_m12.mdf)重命名掉(比如改為wtlog_2008_m12___.mdf), 老的MDF(wtlog_2008_m12_bak.mdf)命名回原來的名字(wtlog_2008_m12.mdf).
(5)開啟SQL Server服務(wù),連接數(shù)據(jù)庫,執(zhí)行下面語句,如果報錯的話,請查看是否連接上數(shù)據(jù)庫,或者有其他進(jìn)程連著數(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ù)庫(如果有的話,應(yīng)該是在數(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文件的位置選在你想要存放的最終位置上(這個就是你所要的被恢復(fù)的LDF文件了).
(4)關(guān)閉SQL Server服務(wù),將新的MDF(wtlog_2008_m12.mdf)重命名掉(比如改為wtlog_2008_m12___.mdf), 老的MDF(wtlog_2008_m12_bak.mdf)命名回原來的名字(wtlog_2008_m12.mdf).
(5)開啟SQL Server服務(wù),連接數(shù)據(jù)庫,執(zhí)行下面語句,如果報錯的話,請查看是否連接上數(shù)據(jù)庫,或者有其他進(jìn)程連著數(shù)據(jù)庫。
復(fù)制代碼 代碼如下:
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文件即可。
相關(guān)文章
insert select與select into 的用法使用說明
將一個table1的數(shù)據(jù)的部分字段復(fù)制到table2中,或者將整個table1復(fù)制到table2中,這時候我們就要使用SELECT INTO 和 INSERT INTO SELECT 表復(fù)制語句了2011-12-12
SQL?Server?內(nèi)存占用高分析及問題解決辦法
文章詳細(xì)分析了SQL?Server內(nèi)存占用高的問題,包括數(shù)據(jù)緩存和執(zhí)行命令緩存的機制,并提供了解決辦法,如清除緩存、設(shè)置內(nèi)存最大占用值等,感興趣的朋友跟隨小編一起看看吧2025-01-01
SQL2000個人版 應(yīng)用程序正常初始化失敗0乘以C0000135失敗
應(yīng)用程序正常初始化(0*c0000135)失敗。是什么意思?2011-01-01
與 SQL Server 建立連接時出現(xiàn)與網(wǎng)絡(luò)相關(guān)的或特定于實例的錯誤
與 SQL Server 建立連接時出現(xiàn)與網(wǎng)絡(luò)相關(guān)的或特定于實例的錯誤,未找到或無法訪問服務(wù)器,請驗證實例名稱是否正確并且 SQL Server 已配置為允許遠(yuǎn)程連接2024-04-04

