DatabaseBackup-USER_DATABASES-LOG:このジョブは、「ユーザーとして実行:Domain\XXXX-SVC。ステップ出力ファイルを開くことができません。ステップが失敗しました」と言って失敗します。
エラーは、LOGバックアップジョブでのみ発生します。
他のDatabaseBackupジョブ(FULL、DIFF)は、同じSVCアカウントで正常に動作します。したがって、サービスアカウントには適切な権限があります。
出力ファイル(ジョブステップのプロパティ->詳細)はF:\ SQLAgentLog \で、すべてのジョブで同じです。唯一の問題は、LOGバックアップジョブにあります。他の誰かがこれを経験し、解決策はありますか?
現在の環境:
SQLサーバー:2012 SP3 CU8
OS:Windows Server 2012
注:これはWindows Server 2008で問題なく動作していました。
人が古いサーバーから新しいサーバーにジョブを移行し、手動でジョブを編集したことがわかりました。
編集の1つは"Output File: (Job Step properties-->Advanced)"
で、これは古いサーバーのデフォルトのログの場所C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log
に設定されていました。
移行したサーバーでは、Log
が存在しない"F:\SQLAgentLog\Log\"
に編集されました。 (その人はパスのLog
テキストを削除し忘れました)
他のジョブ(FULLおよびDIFF)では、テキストLog
が削除されたため、このように設定されました"F:\SQLAgentLog\"
とこれらの両方が正常に機能していました!
_Job Step Properties
_のTypeを_Transact SQL Script
_に変更してから、スクリプトの最後にあるsqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d master -Q "
と引用符を削除して、スクリプト自体を変更してください。次に、ジョブを実行して、うまくいったかどうかをお知らせください。
同じ問題がありましたが、私たちの場合、ログのあるドライブがいっぱいでした。
ディスクに書き出さないので、ジョージKsの投稿のようにSQLからジョブを実行できます。次に、スペースを解放する必要があり、OUTPUT File Cleanup(oops)のスケジュールが存在することを確認してから、すべてを通常に戻しました。
Jobname
に二重コロン( ':')が含まれている場合、このエラーはWindowsシステムでも発生します。
通常、OutputFileNameは次のマクロで作成されます:...$(ESCAPE_SQUOTE(JOBNAME))…
したがって、この二重コロンはジョブの実行時に使用されます。 (ジョブステップの詳細ページを参照)Windowsシステムでは、二重コロンは予約記号であり、ファイル名では使用できません。