web-dev-qa-db-ja.com

複数のディスクに完全バックアップをとることはできますか?

現在、私は1つのバックアップファイルIMTDB.bakしか持っておらず、データベース自体と同じHDDにあります。このDBバックアップを本質的に別のディスクに「コピー」して冗長性を高めたいのですが、「サーバーのバックアップに失敗しました。メディアは2つのメディアファミリをサポートするようにフォーマットされています」というエラーが表示されます。これは、バックアップを作成したときに、1つのドライブにバックアップを配置することのみを目的としており、さかのぼって追加することはできないことを意味します。バックアップをこの別のドライブに移行したいのですが(実際にはコピーするだけです)、現在のバックアップを削除する必要はありません。

私は何をしますか? IMTDB.bakを他のドライブのフォルダーにコピーするだけで安全ですか?

8
ijustlovemath

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句がnotである場所を指すようにすることを強くお勧めします。ローカルマシンを完全に失うと、どちらにもアクセスできない可能性があるためです。バックアップファイル。 MIRROR TO句を指定するには、最初にそのバックアップステートメントを実行するときに、FORMAT句でWITHキーワードを指定する必要があります。

共有のセキュリティ権限がWindowsスケジューラサービスへのアクセスを許可する限り、\\SomeServer\SQLBackups\MyBackupFile.bakなどの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

あなたはそのタスクをあなたに「実行」させたいでしょう。

それがすべて終わったら、バックアップをanotherマシンに復元することを真剣に検討して、その方法を理解する必要があります。バックアップを持つことは、災害復旧計画の一部にすぎません。間違いなくより重要な部分は、その計画をテストすることです。

復元プロセスでは、次のようなコマンドを使用します。

RESTORE DATABASE [xyz]
FROM DISK = 'D:\somepath\myotherbackupfile.bak'
WITH RECOVERY
    , STATS = 1;

警告が表示されます。現在のデータベースが存在するマシンでRESTORE DATABASEを実行すると、確認や警告なしに現在のデータベースが上書きされる可能性があるため、データベースの名前、この例では[xyz]、および使用するその他のオプション。 (これは、REPLACEキーワードをWITH句に追加しない限り、実際には既存のデータベースを上書きしません。注意を強調したいだけです。)

12
Max Vernon

backup database .... MIRROR TO DISK = 追加の場所にデータベースをバックアップします。

IMTDB.bakを他のドライブのフォルダーにコピーするだけで安全ですか?

はい、バックアップが完了したらそれを実行できます。

注:公開されているバックアップオプションが制限されているGUIではなく、T-SQLを使用していることを確認してください。

5
Kin Shah