web-dev-qa-db-ja.com

Windowsディレクトリの検索時のOla Hallengren DatabaseBackupエラー

Ola Hallengren's ストアドプロシージャを使用してDBを共有フォルダーにバックアップすることで問題を解決するのに助けが必要です。

SQL Serverの起動時に実行されるプロシージャがあります。 Ola HallengrenDatabaseBackupプロシージャを実行します。 SQL ServerサービスはNT Serviceで実行されます。

共有には、SQLが実行されるマシンに対する権限があります。

さて、手動でDatabaseBackupを実行するとうまくいきます。起動時に自動的に実行すると、次のエラーで失敗します。

メッセージ50000、レベル16、状態1、プロシージャDatabaseBackup、行786 [バッチ開始行0]ディレクトリ\\ ***は存在しません

Execute As DBO句を使用してプロシージャを変更すると、同じエラーで失敗します。

私もAlterを試してみましたSP with Execute As Self句-同じエラーが再び発生しました。

だから問題は:

それを機能させるにはどうすればよいですか?

  • ファイルパスはUNCパスとして提供されます(例:\\machine2\backup\
  • これはSQL Expressなので、SQLエージェントジョブにアクセスできません。
  • したがって、これはSQL Serverインスタンスの起動時に実行するように構成されたストアドプロシージャであり、SQLエージェントの起動時に実行するように設定されたSQLジョブではありません。
2
George K

判明したように、文書化されていないコマンドxp_fileexistには既知の問題があり、実行時に Ola HallengrenDatabaseBackupストアドプロシージャ内で使用されますsaの下にあり、共有フォルダを確認します。

この問題にはいくつかの解決策があります。しかし、私はストアドプロシージャが使用されるブロックをコメント化することを好みました。今では正常に動作します。 sql.ru フォーラムに感謝します。

2
George K

コミュニティwikiの回答

共有へのアクセス権を持つドメインアカウントを使用すると、これは機能します。 NT_Serviceはそれに到達できません。

何らかの理由でドメインアカウントを使用できない場合は、共有にコンピューターアカウントのアクセス許可を付与してみてください。マシンアカウントは次の形式に従います:DOMAIN\MachineName$$は、ユーザーではなくコンピューターであることを示すために必要です。

5
user126897