如何在SQL Server中連接沒有LDF文件的數據庫?如何在沒有LDF文件的情況下附加數據庫?
回答
您可以使用sp_attach_single_file_db附加缺少日誌文件的數據庫。
它出現此錯誤: 無法打開新數據庫'SharedCS'。 CREATE DATABASE被中止。 設備激活錯誤。物理文件名'd:\ Program Files \ Microsoft SQL Server \ MSSQL \ data \ dummy_Log.LDF'可能不正確。 – Ricardo 2009-05-29 14:11:36
不要嘗試附加虛擬日誌。你能發佈你正在運行的sp_attach_single_file_db命令嗎? – 2009-05-29 14:41:37
這隻有在.mdf所說的日誌文件可以重新創建的情況下才有效。 – Joshua 2011-12-15 19:37:13
您可以嘗試使用MohammedU發佈的here。基本上,他使用了DBCC REBUILD_LOG命令。它將取決於您的服務器的版本。
以下是具體步驟(無詳細信息):
- 重命名現有.mdf文件到.mdf_old
- 創建具有相同的.mdf和.ldf文件作爲一個老一個新的數據庫。
- 停止SQL Server
- 重命名.mdf和.ldf新的DB的文件.mdf_old和.ldf_old
- 重命名.mdf_old到.MDF
- 啓動SQL Server
- 您應該看到分貝可疑模式
- 將數據庫上下文更改爲主服務器並允許更新系統表
- 將數據庫設置爲緊急(旁路恢復)模式。
- 停止並重新啓動SQL Server。
- 重建日誌。
- 將數據庫設置爲單用戶模式並運行DBCC CHECKDB以驗證物理一致性。
- 關閉對系統表的更新。
我該如何做8到13步? – 2015-03-23 09:24:35
如果遇到問題,請確認mdf文件不是隻讀的。
EXEC sp_attach_single_file_db @dbname = 'DBNAME',@physname = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\DBNAME_Data.mdf';
我試過了,它工作...希望這會有所幫助。
通過SQL Server Management Studio中
- 打開SSMS試試這個步驟,並就數據庫右鍵單擊。
- 選擇附加選項
- 然後點擊添加以附加MDF文件。
- 從列表中選擇文件並單擊OK
- 現在屏幕顯示MDF文件和LDF文件(未找到)
- 選擇LDF文件,並單擊刪除選項。
- 刪除LDF文件後點擊確定。
- MDF文件成功附加到數據庫列表中。
嘗試通過將MDF文件添加到「附加數據庫」對話框來附加它。您會注意到該對話框將報告缺少的LDF文件。按照以下步驟上的圖片,如圖所示:
以下是代碼片段programaticaly創建.ldf文件
以下3種方法。
方法-1
在我的情況,我有我的DATA文件夾數據庫。
您可以通過右擊得到完整路徑數據庫,然後將屬性 那麼你可以完整路徑複製到數據庫
在我的情況下路徑如下。
C:\ Program Files文件\ Microsoft SQL Server的\ MSSQL11.DRIBBLEE \ MSSQL \ DATA
現在,這裏是第一種方法,通過使用存儲過程(sp_attach_single_file_db),並通過它的參數(數據庫名和物理路徑)
USE [master]
GO
EXECUTE sp_attach_single_file_db
@dbname='AdventureWorksDW_2012',
@physname=N'C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.DRIBBLEE\MSSQL\DATA\AdventureWorksDW2012_Data.mdf'
GO
在執行代碼後執行代碼轉到您駐留的數據庫文件夾,您將在其中創建.ldf文件。
然而,你將在你的
The physical file name "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\AdventureWorksDW2012_log.ldf" may be incorrect.
New log file 'C:\Program Files\Microsoft SQL Server\MSSQL11.DRIBBLEE\MSSQL\DATA\AdventureWorksDW_2012_log.ldf' was created.
現在你可以將你的數據庫和附加數據庫就在您的服務器名稱在對象資源管理器點擊刷新後得到如下信息。
方法-2
如果你的數據庫有一個或多個日誌文件丟失,您可以使用以下
CREATE DATABASE db_namehere ON
(
FILENAME=N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\db_namehere.mdf')
FOR ATTACH_REBUILD_LOG
GO
方法-3
如果數據庫只有一個日誌文件錯誤你可以使用這個
CREATE DATABASE db_name ON
(FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\TestDb.mdf')
FOR ATTACH
GO
此外,您可以閱讀「在線預訂」以獲取更多信息。
- 1. 如何在沒有數據庫的情況下收集數據
- 2. 如何在沒有webservice的情況下訪問數據庫?
- 3. 如何在沒有Yii2配置文件的情況下連接數據庫?
- 4. 附加沒有LDF文件的MDF文件
- 5. 如何在沒有.xib文件的情況下添加iads?
- 6. 如何在數據庫爲空的情況下添加數據?
- 7. 如何在不影響已有數據的情況下將數據附加到現有數據庫?
- 8. Android:ListFragment,沒有數據和數據正在加載的情況下
- 9. Laravel在沒有選擇文件的情況下插入數據
- 10. 在有或沒有索引的情況下複製數據庫?
- 11. 如何在沒有數據的情況下創建mysql數據庫基線
- 12. 如何在沒有DataSnapshot的情況下從Firebase數據庫檢索數據? #AskFirebase
- 13. 在沒有數據模型的情況下加載核心數據庫?
- 14. 使用沒有LDF的MDF文件還原SQL Server數據庫
- 15. 在沒有ORM的情況下在Python中使用數據庫
- 16. 如何在沒有@import的情況下加載組件的SCSS
- 17. 在沒有日誌文件的情況下複製實時數據庫
- 18. 在沒有sqlite的情況下查詢本地數據庫文件
- 19. Docker如何在沒有提交文件的情況下添加文件?
- 20. 如何在不覆蓋現有數據的情況下使用DOM附加現有的XML文件?
- 21. 如何在沒有數據庫的情況下具有導航屬性
- 22. 如何在沒有cli的情況下添加phonegap插件?
- 23. 如何在沒有任何數據庫的情況下保存我的datagridview?
- 24. javamail問題:如何在不創建文件的情況下附加文件
- 25. 在沒有流星數據庫的情況下使用流星
- 26. CoreData數據庫在沒有iCloud的情況下同步?
- 27. 在沒有VSDBCMD的情況下部署VS2010數據庫項目?
- 28. 在沒有數據庫的情況下運行Drupal 7網站
- 29. 在沒有pg dump的情況下恢復Postgres數據庫?
- 30. 在沒有附加庫的情況下解析標準C/C++中的XML
只需要補充一點,您可能會通過執行此操作來獲取不一致的數據庫。將它與原始LDF結合起來要好得多。請參閱https://blogs.msdn.com/sqlserverstorageengine/archive/2006/06/15/632398.aspx – 2009-05-29 16:25:54