僅 1 個 DB 的 SQL Server 備份失敗(“系統找不到指定的路徑。”)
在過去的幾個早晨,我備份了我們的
ReportServerTempDB
失敗。我們還沒有在這台伺服器上使用 SSRS,但會在下個月使用,所以 DB 是預設的 8mb.mdf
和 8mb.ldf
(即很小)。我們正在使用 Ola Hallengren 的腳本將備份執行到網路位置,並且所有備份都執行良好,直到它們到達
ReportServerTempDB
. 我們在執行時掛載網路位置,因為它不在我們的域中,並且需要訪問不同的憑據。這並不理想,我們正在考慮改變它,但現在,我需要解決這個問題。我的腳本如下:
EXEC xp_cmdshell 'net use Y: \\10.1.1.200\data\SQLSANBackups /user:BackupUser Password' GO EXECUTE dbo.DatabaseBackup @Databases = 'ALL_DATABASES', @Directory = 'Y:\\', @BackupType = 'FULL', @ChangeBackupType = 'N', @CleanupTime = 168, @FileExtensionFull = 'bak', @Compress = 'Y', @CleanupMode = 'AFTER_BACKUP' GO EXEC xp_cmdshell 'net use Y: /delete' GO
它失敗並出現以下錯誤:
BackupDiskFile::CreateMedia: Backup device 'Y:\\Servername \ReportServerTempDB\FULL\ReportServerTempDB_FULL_20190118_033124.bak' failed to create. Operating system error 3 (The system cannot find the path specified.).
Error: 18204, Severity: 16, State: 1.
如前所述,
ReportServerTempDB
成功完成之前的所有數據庫。如果我手動執行確切的腳本,只需指定ReportServerTempDB
,它就可以完美地完成。本週早些時候一切正常,此後網路或硬體沒有任何變化。備份後有3個生產數據庫
ReportServerTempDB
。由於失敗,他們沒有得到備份。我認為添加延遲在這裡沒有幫助,但無論如何都會嘗試。我知道這
ReportServerTempDB
很容易重新創建,如果需要,我會刪除它,但是對於一個小型數據庫,為了保持一致,如果我不必這樣做會更容易。
好的,我終於弄清楚了這個問題。它發生在 ReportServerTempDB 上是完全隨機的,我認為這就是讓我失望的原因。我的日常維護在凌晨 3 點執行,包括上述備份。我也有 24/7 發生 30 分鐘的日誌備份,也使用指定的“Y”驅動器並將其刪除。
日誌備份在正常備份期間執行,並從完整備份中刪除“Y”驅動器,因此由於該位置不再存在而終止完整備份。我已經添加了一些邏輯,以便日誌備份不會在凌晨 3 點到 6 點之間刪除驅動器,這就解決了問題。不過還是謝謝大家的幫助。
嘗試使用
/persistent:Yes
.稍後,如果您發現不需要它,您可以刪除掛載:
net use /delete
或者將掛載刪除移動到作業的最後一步(在索引和統計之後)。