この数日の朝、私は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
より前のすべてのDBは正常に完了します。 ReportServerTempDB
を指定するだけで正確なスクリプトを手動で実行すると、完全に完了します。週の初めには問題なく機能しており、それ以来ネットワークやハードウェアの変更はありません。
ReportServerTempDB
のバックアップ後、3つの本番データベースがあります。障害のためにバックアップされていません。遅延を追加することはここでは役に立たないと思いますが、関係なく試みます。
ReportServerTempDB
は簡単に再作成でき、必要な場合は削除しますが、小さなデータベースの場合、一貫性を保つために、必要がない場合は簡単です。
はい、ようやく問題がわかりました。それがReportServerTempDBで発生したことは完全にランダムでした。私の毎日のメンテナンスは午前3時に実行され、上記のバックアップが含まれています。 24時間年中無休の30分のログバックアップもあり、指定した「Y」ドライブを使用して削除しています。
通常のバックアップ中にログバックアップが実行され、フルバックアップから「Y」ドライブが削除されたため、場所が存在しなくなったため、フルバックアップを強制終了しました。ログバックアップで午前3時から午前6時の間にドライブが削除されないようにロジックを追加しました。これで問題が解決しました。皆様のご協力ありがとうございました。
/persistent:Yes
を使用して、マウントを永続的にしてみてください。
後で、必要がなくなった場合は、マウントを削除できます。
Net Use /delete
または、マウントの削除をジョブの最後のステップに移動します(インデックス作成と統計の後)。