Ola Hallengrenスクリプトに感謝します。 SQL Serverを初めて使用することで、私の生活がとても簡単になりました。ハレングレンさん、ありがとうございます。
別々にバックアップする必要がある5つのユーザーデータベースがあるので、USER_DATABASES
を使用する代わりに、データベース名を指定します。スクリプトを使用してストアドプロシージャを作成したとき、出力ファイルディレクトリをG:\Logs\Backups
のように指定しました。ログファイルはそこにありますが、ログファイル名にデータベース名を含めるか、ログファイルのパスをパラメーターとして渡すと便利です。
dbo.CommandLog
にもログインしています。中身を調べずに、探しているログファイルを特定できればよいでしょう。
maintenance_solution.sql
を変更せずにこれを行う方法はありますか?
更新が行われるとそれらが消えてしまうので、変更のアイデアは好きではありません。私には、MS SQLとT-SQLに精通しているため、スクリプトはかなり複雑です。
どんな洞察もありがたいです。
シェリー
各データベースをバックアップする個別のジョブがあると仮定すると、最善の策は手動で編集することです。
残念ながら、これらの tokens の実装方法では、アラートで発生したデータベース名しか取得できません。
「A-」で始まるすべてのトークンは、一般情報トークンのように呼び出すことはできません。
Token Description
(A-DBN) Database name. If the job is run by an alert, the database name value automatically replaces this token in the job step.
(A-SVR) Server name. If the job is run by an alert, the server name value automatically replaces this token in the job step.
(A-ERR) Error number. If the job is run by an alert, the error number value automatically replaces this token in the job step.
(A-SEV) Error severity. If the job is run by an alert, the error severity value automatically replaces this token in the job step.
(A-MSG) Message text. If the job is run by an alert, the message text value automatically replaces this token in the job step.
できれば、Olaのコードがここに表示されると思います。
BEGIN
SET @TokenServer = '$' + '(SRVR)'
SET @TokenJobID = '$' + '(JOBID)'
SET @TokenStepID = '$' + '(STEPID)'
SET @TokenDate = '$' + '(STRTDT)'
SET @TokenTime = '$' + '(STRTTM)'
END
タックしようとするとA-DBN
文字列に移動すると、ジョブは失敗します。
$(ESCAPE_SQUOTE(SQLLOGDIR))\DatabaseBackup_$(ESCAPE_SQUOTE(JOBID))_$(ESCAPE_SQUOTE(STEPID))_$(ESCAPE_SQUOTE(STRTDT))_$(ESCAPE_SQUOTE(STRTTM))_$(ESCAPE_SQUOTE(A-DBN)).txt
メッセージステップ1の実行を開始できません(理由:変数A-DBNが見つかりません)。ステップは失敗しました。
お役に立てれば!