Sql-Server

無法恢復數據庫

  • July 23, 2018

我正在嘗試恢復幾個數據庫,但我不知道為什麼其中一些數據庫失敗並出現以下錯誤:

消息 3634,級別 16,狀態 1,第 1 行

作業系統在嘗試在“K:\日誌\MyDatabase.ldf’。

消息 3156,級別 16,狀態 8,第 1 行

文件“MyDatabase_log”無法恢復到“K:\Logs\MyDatabase.ldf”。使用 WITH MOVE 標識文件的有效位置。

Msg 3119, Level 16, State 1, Line 1

在規劃 RESTORE 語句時發現了問題。以前的消息提供了詳細資訊。

消息 3013,級別 16,狀態 1,第 1 行

RESTORE DATABASE 異常終止。

這是我正在使用的 SQL 語句

RESTORE DATABASE [MyDatabase]
FROM DISK = 'K:\Backups\MyDatabase_backup_2014_10_14_055006_4726051.bak'
WITH REPLACE,
MOVE 'MyDatabase_data' TO 'K:\Data\MyDatabase.mdf',
MOVE 'MyDatabase_log' TO 'K:\Logs\MyDatabase.ldf',
STATS = 10

正如我所說,其中一些會很好地工作,而另一些則會給我一個類似於上述的錯誤。不幸的是,我找不到失敗/成功的模式。

如果存在某種身份驗證問題,為什麼我的 SQL 對某些人有效,而對其他人無效?我錯過了什麼?

LE:我不得不讓這個使用者sysadmin處理一個完全不相關的問題。這可能也解決了這個問題。我會調查並回來的。

作為另一個問題的一部分,我必須給我的登錄sysadmin角色。從那以後,我再也沒有看到我上面描述的問題。

是的,它現在可以工作了,但我對這個解決方案不滿意,部分原因是我不太明白髮生了什麼。

稍後編輯:正如托馬斯在評論中指出的那樣,是發生了什麼:

如果數據庫存在,則 RESTORE 權限預設授予 sysadmin 和 dbcreator 固定伺服器角色的成員以及數據庫的所有者 (dbo)(對於 FROM DATABASE_SNAPSHOT 選項,數據庫始終存在)。

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