T-SQL BACKUP DATABASE
コマンドに慣れていないので、それについて少し詳しく説明します。
SQL Serverエージェントにアクセスできないため、Windowsタスクスケジューラサービスを介して次のステートメントの行に沿って何かを実行したいと思うでしょう(他の質問から、SQL Server Expressを使用しています)。
BACKUP DATABASE [xyz]
TO DISK = 'C:\somepath\mybackupfile.bak'
MIRROR TO DISK = 'D:\somepath\myotherbackupfile.bak'
WITH FORMAT
, INIT
, SKIP
, STATS = 1;
ローカルマシンを完全に失うと、どちらのバックアップファイルにもアクセスできなくなる可能性があるため、MIRROR TO
句がローカルマシン上ではない場所を指すようにすることを強く検討することをお勧めします。指定MIRROR TO
句は、指定する必要がありますFORMAT
にキーワードをWITH
句、あなたがそのバックアップのステートメントを実行する最初の時間を。
共有\\SomeServer\SQLBackups\MyBackupFile.bak
のセキュリティアクセス許可でWindowsスケジューラサービスへのアクセスが許可されている場合など、Windows共有の名前を使用できます。
このWITH FORMAT, INIT
部分は、バックアップファイルに存在する可能性のある既存のバックアップを上書きするようにSQL Serverに指示します。WITH NOINIT
これらのファイルに複数のバックアップ(つまり、異なる時点からのバックアップ)を保存したい場合は、最初のミラーリングされたバックアップを完了すると、これを変更できます。 NOSKIP
特に、バックアップの有効期限をチェックしないようにSQL Serverに指示します。 STATS = 1
出力は1
パーセント単位で表示されます。この番号は好きなように変更できます。1
進行状況を示すため、非常に大規模なデータベースに使用します。
これをWindowsタスクスケジューラサービスで実行するには、そのコマンドを(SQL Server Management Studioでテストした後)ディスク上のファイルに保存する必要があります。それを呼ぼうC:\somefolder\BackupMyDB.sql
。次に、Windowsスケジューラに次のコマンドを追加します。
<path to sqlcmd>sqlcmd -S localhost -E -i C:\somefolder\BackupMyDB.sql
あなたはそのタスクをあなたに「走らせて」もらいたいでしょう。
それがすべて終わったら、バックアップを別のマシンに復元することを真剣に検討して、その方法を理解する必要があります。バックアップを持つことは、災害復旧計画の一部にすぎません。間違いなくより重要な部分は、その計画をテストすることです。
復元プロセスでは、次のようなコマンドを使用します。
RESTORE DATABASE [xyz]
FROM DISK = 'D:\somepath\myotherbackupfile.bak'
WITH RECOVERY
, STATS = 1;
RESTORE DATABASE
現在のデータベースが存在するマシンで実行すると、確認や警告なしに現在のデータベースが上書きされる可能性があるので注意してください[xyz]
。この例では、データベースの名前と使用する他のオプションを慎重に評価してください。(これは、REPLACE
キーワードをWITH
句に追加しない限り、実際には既存のデータベースを上書きしません。注意することを強調したいだけです。)