複数のディスクに完全バックアップを作成できますか?


8

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

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


承知しました。エクスプローラを使用してファイルをある場所から別の場所にコピーすることは、まったく問題ありません。おそらくWindowsスケジューラを使用して、プロセスの自動化を確認することをお勧めします。
Max Vernon

このエラーが表示される場所/方法:「サーバーのバックアップに失敗しました、メディアは2つのメディアファミリをサポートするようにフォーマットされています」
Max Vernon

[タスク]-> [バックアップ]に移動し、「追加」を実行して、使用しているディスクを選択すると
ijustlovemath 2015年

そこに別のディスクを追加すると、バックアップが複数のディスクに分散され、バックアップファイルの信頼性がさらに低下します。2つのディスクのいずれかが故障した場合、バックアップファイルは使用できなくなります。@Kinが彼の答えで示唆しているようにして、T-SQL BACKUP DATABASEコマンドを使用して2つの場所に同時にバックアップします。
Max Vernon

回答:


12

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句に追加しない限り、実際には既存のデータベースを上書きしません。注意することを強調したいだけです。)


ありがとう!私の.bakファイルにはすでにいくつかのバックアップが含まれているため、自動的に作成されるミラーにはそれらのバックアップが含まれますか?それとも最新のものだけですか?
ijustlovemath 2015年

MIRROR初めて使用するときにバックアップファイルをフォーマットする必要があるため、ファイルを保持する場合は、そのファイルをどこかに移動することをお勧めします。これにより、そのファイル内のバックアップがすべて削除されます。
Max Vernon

1
投稿の詳細をありがとうございます。他のリソースなしで初心者に本当に役立ちます!
ijustlovemath

どういたしまして。テスト済みで信頼性の高いバックアップおよび復元戦略の重要性を強調することはできません。既存のデータベースを破壊する可能性がないように、他のマシンへの復元をテストすることをお勧めします。これは、学習しているときに簡単に実行できます。
Max Vernon、

5

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

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

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

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


ここで推奨されるオプションは何ですか?私のDBは非常にシンプルで、4つのテーブルのみがあり、そのうち3つには90,000行しかありません。これも固定サイズです。これ以上データは追加されません。私はそれに対してクエリを実行するだけです。
ijustlovemath 2015年

5
私はあなたにあなたのdbをread_onlyモードにして、最後に1つだけバックアップを取ることをお勧めしますCOMPRESSION。安全な場所に保管してください。
Kin Shah
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.