0

今日作業するためにマシンに戻ったところ、バックアップ データベース コマンドを使用して、バッチ ファイルがデータベースのコピーをバックアップできなくなっていることに気付きました。

サーバーは、Windows サーバーと SQL サーバーの両方で 2008R2 です。

ほんの 1 か月前まで、この同じバッチ ファイルが私のデータベースをバックアップしていました。SQLスクリプトを手動で実行すると、「オペレーティングシステムエラー3 - 指定されたファイルが見つかりません」というメッセージが表示されます。

これが私のスクリプトです:

DECLARE @FileName varchar(50), @Date varchar(20)
set @Date = REPLACE ((CONVERT (VARCHAR(10), GETDATE(), 101)), '/', '-')
SET @FileName = ('C:\mybkfolder\BackupSQLData\db_dnt_' + @Date + '.bak')
BACKUP DATABASE db_dnt TO DISK = @FileName
Go

SQL Server がシステム アカウントで実行されていることを確認しました。SQL管理スタジオから問題のフォルダーへのバックアップを手動で作成できます。しかし、管理スタジオでスクリプトをクエリとして実行すると、このエラーが発生します。

このフォルダに移動し、SYSTEM アカウントがフル アクセスできるようにセキュリティ アクセス許可を設定しました。次に、タスク スケジューラに移動し、スケジュールされたタスク (バッチを実行します。バッチは、上記のスクリプトを含む .sql ファイルを呼び出します) が SYSTEM で実行されるように構成されていることを確認しました。まだ何もバックアップされていません。

Windows のパッチ以外に、実際にマシンを台無しにした人は誰もいません。これが機能しなくなる原因は何ですか?これはSQLサーバーの高速バージョンであり、実際のように高速バージョンでジョブを作成できないため、1つはバックアップし、もう1つはパージしてフォルダーを制御する2つのバッチファイルシステムを使用する必要があります。

4

1 に答える 1

0

これは、存在しなくなったパスの問題であることが判明しました。私のタスクはバッチと呼ばれ、そのバッチは .sql スクリプトと呼ばれていました。バッチ ファイルでパスを更新することを覚えていたにもかかわらず、SQL スクリプトでパスを更新するのを忘れていました。

于 2011-08-24T14:32:20.937 に答える