Ola Hallengren's ストアドプロシージャを使用してDBを共有フォルダーにバックアップすることで問題を解決するのに助けが必要です。
SQL Serverの起動時に実行されるプロシージャがあります。 Ola Hallengren のDatabaseBackup
プロシージャを実行します。 SQL ServerサービスはNT Service
で実行されます。
共有には、SQLが実行されるマシンに対する権限があります。
さて、手動でDatabaseBackup
を実行するとうまくいきます。起動時に自動的に実行すると、次のエラーで失敗します。
メッセージ50000、レベル16、状態1、プロシージャDatabaseBackup、行786 [バッチ開始行0]ディレクトリ\\ ***は存在しません
Execute As DBO
句を使用してプロシージャを変更すると、同じエラーで失敗します。
私もAlter
を試してみましたSP with Execute As Self
句-同じエラーが再び発生しました。
だから問題は:
それを機能させるにはどうすればよいですか?
\\machine2\backup\
)判明したように、文書化されていないコマンドxp_fileexist
には既知の問題があり、実行時に Ola Hallengren のDatabaseBackup
ストアドプロシージャ内で使用されますsa
の下にあり、共有フォルダを確認します。
この問題にはいくつかの解決策があります。しかし、私はストアドプロシージャが使用されるブロックをコメント化することを好みました。今では正常に動作します。 sql.ru フォーラムに感謝します。
共有へのアクセス権を持つドメインアカウントを使用すると、これは機能します。 NT_Service
はそれに到達できません。
何らかの理由でドメインアカウントを使用できない場合は、共有にコンピューターアカウントのアクセス許可を付与してみてください。マシンアカウントは次の形式に従います:DOMAIN\MachineName$
。 $
は、ユーザーではなくコンピューターであることを示すために必要です。