web-dev-qa-db-ja.com

フォーマットを使用したSQL Serverバックアップ

T-SQL BACKUPステートメントを使用してSQL Serverデータベースのバックアップを行う場合、WITH FORMATは指定されたメディアセットのみを消去するのですか、それともデータベースに「関連付けられた」すべてのメディアセットを消去しますか?

BACKUP DATABASE ExampleDatabase To DISK = N'...'
WITH FORMAT, 
MEDIANAME = N'ExampleDatabase-Media-yyy-mm-dd-hh-mm', 
NAME = 'ExampleDatabase-yyy-mm-dd-hh-mm',
COPY_ONLY
...
  • これはonly == ExampleDatabase-Media-yyy-mm-dd-hh-mm 'という名前のメディアセットが(存在する場合)ワイプされることになりますか?

コンテキストは、サーバー間でad-hoc backupおよびrestoresを実行していることです。また、コマンドのFORMATが、作成された可能性のあるother Media Setsをフォーマットしないようにしたいと思います。

FORMATを使用するバックアップステートメントが、ステートメントで定義したメディアセット以外のメディアセットを破棄することによって配置されている他のバックアップmaintenance plansinterfereしないようにしたいと思います。

4
zadam

@zadam、メディアセットについて少しお話したいと思います。また、Mr. Aaron Bertrandなどのエキスパートや他のStackExchange DBAエキスパートからの詳細も期待しています。

まず、メディアセットとは何ですか?

バックアップ操作が成功すると、メディアセットに単一のバックアップセットが追加されます。

enter image description here

バックアップセットは、バックアップが属するメディアセットの観点から説明されています。バックアップメディアが1つのメディアファミリのみで構成されている場合、そのファミリにはバックアップセット全体が含まれます。

メディアセットは、バックアップメディアをフォーマットすることにより、バックアップ操作中にバックアップメディア上に作成されます。

既存のメディアセットへのバックアップ

既存のメディアセットにバックアップする場合、次の2つのオプションがあります。

  1. 既存のバックアップセットに追加します。

ここでの注意:-は、BACKUPのデフォルトの動作であり、NOINITオプションを使用して明示的に指定できます。

  1. 現在のメディアヘッダーはそのままにして、既存のすべてのバックアップセットを現在のバックアップで上書きします。

ここに注意:-既存のバックアップセットの上書きは、BACKUPステートメントのINITオプションを使用して指定します。

For Example:-

BACKUP DATABASE DatabaseName
TO DISK = 'd:\bu\mm_labeled.bak'
WITH MEDIANAME = 'BackupsToTheDDrive',
MEDIADESCRIPTION = 'Portable Drive Used for Backups',
INIT;

Grant Fritcheyのように ここ MediaSetIDはGUIDこのセットを一意に定義します。また、msdbに記録されるため、バックアップをバックアップにリンクできます特定のサーバー。

For example :

SELECT  *
FROM    dbo.backupmediaset AS b
WHERE   b.media_uuid = '720C1417-3889-4730-9D33-74EBF11E854A' ;

たとえば、フルバックアップTSQLが次のようになる場合

Use DatabaseName
Go
Backup Database DatabaseName
To Disk=N'E:\Database_Backup\DatabaseName_Backup_16022016\DatabaseName.bak'
with FORMAT,
Medianame='E_SQLServerBackup',
Name='DatabaseName-Full Database Backup'
GO

enter image description here

バックアップメディア(ディスクファイルまたはテープ)のすべてのボリュームには、テープ(またはディスク)を使用する最初のバックアップ操作によって作成されるメディアヘッダーが含まれています。メディアが再フォーマットされるまで、ヘッダーはそのまま残ります。

このTSQLステートメントを実行してmedia_set_id'family_sequence_number'について知る場合。

select * from msdb.dbo.backupmediafamily;

ここで、ディスクでバックアップを取る場合について説明します。したがって、常に「family_sequence_number」は1になります。ただし、テープでバックアップを取る場合、「family_sequence_number」はthe sequence number of the initial tape is 1, the sequence number of the second tape is 2, and so forth.のようになります。

enter image description here

メディアヘッダーには、メディア(ディスクファイルまたはテープ)と、それが属するメディアファミリー内の場所を識別するために必要なすべての情報が含まれています。この情報は次のとおりです。

The name of the media.
The media name is optionally, but we recommend consistently using media names that clearly identify your media. A media name is assigned by whoever formats the media.
The unique identification number of the media set.
The number of media families in the media set.
The sequence number of the media family containing this media.
The unique identification number for the media family.
The sequence number of this media in the media family. For a disk file, this value is always 1.
The Microsoft Tape Format media label or the media description (in free-form text).
The name of the backup software that wrote the label.
The unique vendor identification number of the software vendor that formatted the media.
The date and time the label was written.

注:-ディスクの場合、メディアファミリ内のこのメディアのシーケンス番号。この値は常に1。

バックアップセットとともにテープメディアセットを参照する場合 メディアセット、メディアファミリ、およびバックアップセット(SQL Server) および ここ

3