SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SQL Server 2016 の Automatic Seeding を少し深堀してみる

leave a comment

以前、書いた SQL Server 2016 RC0 で使える新しい AlwaysOn のセカンダリの初期同期方法 の Automatic (Direct Seeding) を少し深堀してみてみたいと思います。

以前の投稿で書いたように、この機能は AlwaysOn の初期同期を手動で実施するのではなく、自動で実施できるようにするためのオプションとなります。

基本的な仕組みとしてはバックアップ / リストアを透過的に実施するようなイメージになるかと。
初期の同期を実施する際にはプライマリには以下のようなログが出力されます。
image

セカンダリ側ではこのようなログが。
image

バックアップ / リストアの仕組みが透過的に実行されていることが、ログから確認できますね。

この同期方法ですが、プライマリ / セカンダリともに同一の場所にデータベースを作成できる場合に使用することができますので、ドライブ構成やディレクトリ構成が異なっているとエラーとなります。

同期の状態については、以下の 2 種類の DMV で確認することができます。

  • sys.dm_hadr_automatic_seeding
  • sys.dm_hadr_physical_seeding_stats

データの転送状態については「stats」の DMV から確認できます。

この DMV については SQL Server 2016 AlwaysOn for SAP でも解説されています。
また、この同期を行う場合、トレースフラグ「9567」による、データストリームの圧縮は初期同期の速度に影響を与えるものとなりますので、初期同期の負荷を CPU 側に寄せて処理時間を抑えるときには有効に利用できそうです。

セカンダリ側でデータベースの配置ディレクトリが無い等で同期ができなかった場合、同期のエラーの原因を解消したら、以下のようなクエリで、同期モードを再設定することで同期が再実行されましたので、この方法による同期の再実行も覚えておくとよさそうですね。
# ストアドのようなものがあるかもと思ったのですが見つかりませんでした。

USE [master]
GO
ALTER AVAILABILITY GROUP [ag1]
MODIFY REPLICA ON N'SQL-02' WITH (SEEDING_MODE= AUTOMATIC)
GO

 

初期同期の簡略化としてこの機能は便利ですのでもう少し情報を集めていきたいですね。

Share

Written by Masayuki.Ozawa

5月 23rd, 2016 at 11:08 pm

Posted in SQL Server

Tagged with ,

Leave a Reply