Security
更改 MDF 和 LDF 位置並使數據庫離線後“無法打開使用者預設數據庫。登錄失敗”
我試圖將我的數據庫移動到伺服器上的單獨硬碟驅動器,所以我按以下順序執行以下命令(我在關注這個問題:如何更改已經配置了合併複製的 SQL Server 2012 數據庫的位置):
use master; ALTER DATABASE db_name MODIFY FILE (NAME = db_name, FILENAME = 'E:\Data\db_name.mdf');
ALTER DATABASE db_name MODIFY FILE (NAME = db_name_log, FILENAME = 'E:\Data\db_name_log.ldf');
這是我的錯誤發生的地方:我犯了以下一個或兩個錯誤:
- 我可能在
Name
上面輸入了錯誤的參數(在這種情況下會刪除 mdf/ldf 文件嗎?)…和/或…
- 我也沒有在上面引用的答案中執行第 2 步(
Stop log reader agent, distribution and merge agent (if they are running).
然後我使數據庫離線:
alter database db_name set offline
現在,當我嘗試連接到數據庫伺服器時,我收到了我在這個問題中描述的錯誤。我該如何補救?我需要sa登錄嗎?或者還有什麼我可以做的嗎?
謝謝你。
其他使用者也無法連接到數據庫,得到同樣的錯誤。我真的以某種方式破壞了主數據庫嗎?
我一直在研究這個錯誤的原因,它們似乎都表明需要使用 sa 登錄或類似的東西來恢復訪問。
我可能在上面輸入了錯誤的 Name 參數(在這種情況下會刪除 mdf/ldf 文件嗎?)
這不會刪除文件,如果 NAME 值不正確,該命令將失敗。
我也沒有在上面引用的答案中執行第 2 步(停止日誌讀取器代理、分發和合併代理(如果它們正在執行)。
您是否在此數據庫上使用複制?如果不是,那麼這無關緊要,因為這些步驟不是必需的。
當您通過 Management Studio 登錄到 SQL Server 時,您可以明確選擇要連接到的數據庫或使用您的預設數據庫。如果您的預設數據庫不可用,您將獲得登錄失敗。
此連結詳細說明瞭如何在 SSMS 中顯式選擇要登錄的數據庫。基本上,在登錄視窗上,點擊選項,然後選擇連接屬性選項卡。在“連接到數據庫:”下輸入“master”並再次嘗試登錄。
如果這允許您重新獲得對 SQL Server 的訪問權限,請按照此 SE 答案中的步驟將管理員的預設數據庫更改為“主數據庫”,以便他們即使在使用使用者數據庫時也有更好的機會登錄離線。