web-dev-qa-db-ja.com

ミラーデータベースでのトランザクションログのメンテナンス

SQL Serverバージョン:2008 R2 Enterprise SP2

SQL Serverのメンテナンスを担当しているところ、間違っていると思われる問題に遭遇しました。それぞれがオフサイトでDRインスタンスにミラーリングされている3つのデータベースを持つ単一の本番インスタンスがあります。

DRインスタンスを調べていると、LDFファイルが巨大で、頻繁に使用されるデータベースでは35GBを超えることがわかりました。

これはおそらく、ミラーデータベースが完全復旧モードになっているためであり、ログはバックアップされたことがないため、ドライブの空き容量がなくなるまでログが増加し続けることを理解しています。

プリンシパルデータベースでログバックアップを実行していますが、ミラーでログバックアップを実行する際の注意点は何ですか。

ログバックアップを実行する前に、ミラーからの少なくとも1つのフルデータベースバックアップを完了する必要があります。その場合、ミラーであるため、使用する必要がある特別なオプションはありますか?

繰り返しますが、これは[〜#〜] mirror [〜#〜]データベースでのトランザクションログのメンテナンスに関する推奨事項です。

ご意見ありがとうございます

10
Jeremie Grund

プリンシパルデータベースでログバックアップを実行していますが、ミラーでログバックアップを実行する際の注意点は何ですか。

ミラーデータベースでログバックアップを実行することはできません。

ログバックアップを実行する前に、ミラーからの少なくとも1つのフルデータベースバックアップを完了する必要があります。その場合、ミラーであるため、使用する必要がある特別なオプションはありますか?

ミラーデータベースでデータベースの完全バックアップを行うこともできません。

これを例にとると、プリンシパルデータベースServer1を格納するAdventureWorks2012があり、ミラーを含むServer2があります。ミラーデータベース(Server2上)でバックアップを実行しようとすると、次のようになります。

use master;
go

backup database AdventureWorks2012
to disk = 'c:\sqlserver\AW_mirror.bak';
go

メッセージ954、レベル14、状態1、行2
データベース「AdventureWorks2012」を開くことができません。ミラーデータベースとして機能しています
メッセージ3013、レベル16、状態1、行2
BACKUP DATABASEが異常終了しています。

backup log AdventureWorks2012
to disk = 'c:\sqlserver\AW_mirror.trn';
go

メッセージ954、レベル14、状態1、行1
データベース「AdventureWorks2012」を開くことができません。ミラーデータベースとして機能しています
メッセージ3013、レベル16、状態1、行1
バックアップログが異常終了しています。

これを見てください データベースミラーリングFAQ by Robert Davis 。この操作とミラーデータベーストランザクションログのメンテナンスに関して彼を引用します:

プリンシパルでログをバックアップすると、仮想ログファイル(ログファイル内の個々のユニット)が再書き込み可能としてマークされます。 ミラーログファイルでも、同じVLFが再書き込み可能としてマークされています。 VLFステータスはデータベースにミラーリングされます

だからあなたはそれを持っています。プリンシパルにトランザクションログバックアップがある場合、同様のログ再利用動作がパートナーデータベースにミラーリングされます。

5
Thomas Stringer

@JeremieGrund-データベースの物理ファイルアーキテクチャが同じ(データとログファイルのドライブ名と場所)の場合、プリンシパルでログファイルを圧縮すると、shrinkコマンドがミラーに送信され、ミラーでも同じことが行われます。したがって、この方法でミラーログファイルを維持できます。ファイルアーキテクチャが同一でない場合は、Thomas Stringerの提案に従う必要があります。

0
kranthi