Security

更改 MDF 和 LDF 位置並使數據庫離線後“無法打開使用者預設數據庫。登錄失敗”

  • August 7, 2019

我試圖將我的數據庫移動到伺服器上的單獨硬碟驅動器,所以我按以下順序執行以下命令(我在關注這個問題:如何更改已經配置了合併複製的 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 答案中的步驟將管理員的預設數據庫更改為“主數據庫”,以便他們即使在使用使用者數據庫時也有更好的機會登錄離線。

引用自:https://dba.stackexchange.com/questions/244715