2010-08-03 152 views
1

我有一個存儲過程,它爲特定數據庫執行數據庫備份。 問題是,它在一臺服務器上工作,在另一臺服務器上不工作(服務器在不同的機器上)。備份驅動器是服務器的本地驅動器。 在第二個服務器我得到的異常「BACKUP DATABASE異常終止。」SQL Server 2008備份失敗:BACKUP DATABASE異常終止

在日誌文件中有如下信息:

...  Error: 18204, Severity: 16, State: 1. 
...  BackupDiskFile::CreateMedia: Backup device 'D:\XXX.bak' failed to create. Operating system error 5(failed to retrieve text for this error. Reason: 15105). 
...  Error: 3041, Severity: 16, State: 1. 
...  BACKUP failed to complete the command BACKUP DATABASE XXX. Check the backup application log for detailed messages. 

可能是什麼造成這種情況的原因和我在哪裏可以找到提到的備份應用程序日誌?

+0

兩臺服務器是否都備份到相同的D:\驅動器? – 2010-08-03 12:30:21

+0

服務器是不同的機器。 – uhu 2010-08-03 12:31:41

回答

1

嘗試使用「with execute as caller」再次編譯SP並再次運行。

2

聽起來像是許可問題。

  • 您是否嘗試備份到網絡驅動器?
  • 驅動器D:確實存在嗎?
  • Eventlog告訴你什麼?嘗試Applicationlog在事件日誌 - > eventvwr.msc

這只是一個開始......

0

嘗試創建窗口SQL Server上登錄,並將其映射到對d寫權限的Windows用戶驅動器並確保該過程在該用戶的安全上下文下運行。

+0

我在WINDOWS FORMS應用程序中需要它!所以合乎邏輯的方法是嵌入WPF魚眼! – uhu 2010-08-03 16:05:09

1

好的。在我的備份中遇到了同樣的錯誤。創建備份的用戶也具有服務器上的管理員權限。確保子文件夾存在,如果不是手動創建它&運行它。例如。 D:\ MsSQL \ Backup \ MyDB \ mydb.bak,請確保myDB文件夾存在

1

此答案包含相同的錯誤消息,但與機器對機器訪問權限沒有關係 - 將其作爲參考發佈以防其他人最終在這裏搜索相同的錯誤代碼。

在測試scheduled automated database backups in SQL Server 2008時,遇到相同的一般錯誤消息(Error: 3041, Severity: 16, State: 1.)。原來我使用的是標準版SQL Server 2008中不具備的功能 - 備份壓縮。從我的自定義數據庫備份維護計劃任務(通過「查看T-SQL」按鈕提供)運行生成的T-SQL,爲我提供了更詳細的信息。

消息1844,級別16,狀態1,行WITH COMPRESSION 1
BACKUP DATABASE不支持標準版(64位)。
消息3013,級別16,狀態1,行1
BACKUP DATABASE正在異常終止。

將「設置備份壓縮」從「使用默認服務器設置」更改爲「壓縮備份」破壞了備份腳本。改變它修復它。

4

同樣的問題對我來說

解決方案:

不工作

C:\
d:\
......或任何目錄

代碼:

 BACKUP DATABASE [ERP] TO DISK ='C:\ERP.bak' 
     BACKUP DATABASE [ERP] TO DISK ='D:\ERP.bak' 
     BACKUP DATABASE [ERP] TO DISK ='E:\ERP.bak' 

不行!

工作

代碼:

 BACKUP DATABASE [ERP] TO DISK ='C:\AtleastOneDir\ERP.bak' 
     BACKUP DATABASE [ERP] TO DISK ='D:\AtleastOneDir\ERP.bak' 
     BACKUP DATABASE [ERP] TO DISK ='E:\AtleastOneDir\ERP.bak' 

將工作對我來說!

1

在我的情況下,我重新啓動SQL Server服務,現在我可以像previus一樣備份。