Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
SQL Server 2016 AlwaysOn 可用性グループ
New Features
Masayuki Ozawa (Microsoft MVP for Data Platform)
自己紹介
2016/7/14db tech showcase 20162
 SQL Server のデータベースを中心に、Microsoft 製品を使用した案件に
携わらせていただいているフリーランスのエンジニアです。
 2011/7 から...
AlwaysOn 可用性グループ
2016/7/14db tech showcase 20163
AlwaysOn 可用性グループとは??
2016/7/14db tech showcase 20164
 SQL Server 2012 から追加された、SQL Server インスタンス間のデータ同期を、
同期または、非同期で行うための機...
SQL Server 2012 / 2014 の AlwaysOn AG
2016/7/14db tech showcase 20165
 SQL Server 2012
 Enterprise Edition でのみ利用可能
 1 台の...
SQL Server 2016
AlwaysOn 可用性グループ New Features
2016/7/14db tech showcase 20166
データベーススコープの構成
2016/7/14db tech showcase 20167
 プライマリとセカンダリで、異なるデータベーススコープの構成を設定可能
 読み取りのワークロードについては、セカンダリで設定変更による影響を確認し、...
プライマリ/セカンダリでクエリの動作を変える
2016/7/14db tech showcase 20168
 LEGACY_CARDINALITY_ESTIMATION を設定し、プライマリと
セカンダリで異なる基数推定を使用
Workgroup Cluster での AlwaysOn
2016/7/14db tech showcase 20169
 Windows Server 2016 の新機能である Workgroup Cluster で構築されたクラスター上...
DEMO
2016/7/14db tech showcase 201610
Workgroup Cluster
DB レベルでの障害検知によるフェールオーバー
2016/7/14db tech showcase 201611
 SQL Server 2012 / 2014
 インスタンスレベルで、障害を検知 (Flexible Failover Po...
SQL Server 2012 / 2014 のスレッド
2016/7/14db tech showcase 201612
AlwaysON – HADRON Learning Series: Worker Pool Usage for HAD...
ログ転送の性能改善
2016/7/14db tech showcase 201613
 ログ転送のスループット向上
 圧縮アルゴリズムの改善 (並列操作) も実施されている
 ログ転送の圧縮操作のデフォルト動作の変更
 SQL Serv...
DEMO
2016/7/14db tech showcase 201614
SQL Server 2016 の HADR のスレッドの確認
自動フェールオーバーを 3 台で設定可能
2016/7/14db tech showcase 201615
 自動フェールオーバーを 3 台で設定可能
 同期レプリカ 3 台間で自動フェールオーバーを設定可能に
 フェールオーバーの順序に...
ロードバランスされた読み取りレプリカへのアクセス
2016/7/14db tech showcase 201616
 2012 / 2014 は、接続順序 (ルール) によるセカンダリレプリカへのアクセス
 2016 では、ラウンドロビンに...
DEMO
2016/7/14db tech showcase 201617
ロードバランスされたセカンダリへのアクセス
AlwaysOn で分散トランザクションをサポート
2016/7/14db tech showcase 201618
 特定環境下での分散トランザクションをサポート
 異なるインスタンスの DB に対しての分散トランザクションをサポート
...
Direct Seeding によるセカンダリレプリカへの復元
2016/7/14db tech showcase 201619
 セカンダリに明示的なバックアップのリストアが不要で同期を開始
 従来 : SEEDING_MODE = MA...
分散可用性グループ
2016/7/14db tech showcase 201620
 異なる (独立した) クラスター 間で可用性グループを設定可能
 可用性グループのリスナー間で複製の設定を行う
 これにより遠隔地の独立した環境に対し...
DEMO
2016/7/14db tech showcase 201621
Direct Seeding と分散可用性グループ
Standard Edition を使用した AlwaysOn
2016/7/14db tech showcase 201622
 基本的な可用性グループ (Basic Availability Groups)
 Standard Edit...
Standard Edition の AlwaysOn の構成
2016/7/14db tech showcase 201623
Server A
AG01
(Primary)
DB1 Listener
AG02
(Secondary)
DB1...
DEMO
2016/7/14db tech showcase 201624
Basic Availability Groups
参考資料
2016/7/14db tech showcase 201625
 Introducing Microsoft SQL Server 2016 – get your free ebook today
 https://info.m...
Upcoming SlideShare
Loading in …5
×

Sql server 2016 always on 可用性グループ new features

4,731 views

Published on

Sql server 2016 always on 可用性グループ new features

Published in: Data & Analytics
  • Be the first to comment

Sql server 2016 always on 可用性グループ new features

  1. 1. SQL Server 2016 AlwaysOn 可用性グループ New Features Masayuki Ozawa (Microsoft MVP for Data Platform)
  2. 2. 自己紹介 2016/7/14db tech showcase 20162  SQL Server のデータベースを中心に、Microsoft 製品を使用した案件に 携わらせていただいているフリーランスのエンジニアです。  2011/7 から Microsoft MVP Awardを、SQL Server , Data Platform の領域で 受賞しています。  Microsoft MVP Award  https://www.microsoft.com/ja-jp/communities/mvp/default.aspx  ブログや勉強会/セミナーを通じて SQL Server の情報発信をしています。  blog  SE の雑記 : http://blog.engineer-memo.com  Twitter : @Masayuki_Ozawa  直近で担当したセミナーのセッション  de:code 2016 : SQL Server on Azure VM 最新情報とベスト プラクティス https://channel9.msdn.com/Events/de-code/2016/DBP-008
  3. 3. AlwaysOn 可用性グループ 2016/7/14db tech showcase 20163
  4. 4. AlwaysOn 可用性グループとは?? 2016/7/14db tech showcase 20164  SQL Server 2012 から追加された、SQL Server インスタンス間のデータ同期を、 同期または、非同期で行うための機能  ローカルのデータベース間でデータ同期を行うため、共有ディスクは不要 データ同期 (同期 or 非同期) プライマリレプリカ ログキャッシュ ログファイル コミット ログ フラッシュ ログキャプチャ セカンダリレプリカ データファイル バッファキャッシュ チェック ポイント ログ適用 ログキャッシュ ログファイル データファイル Redo キャッシュ Redo スレッド コミット 応答 圧縮 圧縮解除 ログプール AlwaysOn のデータ同期の流れ Log Transport Redo ログ 再実行
  5. 5. SQL Server 2012 / 2014 の AlwaysOn AG 2016/7/14db tech showcase 20165  SQL Server 2012  Enterprise Edition でのみ利用可能  1 台のプライマリレプリカと 4 台のセカンダリレプリカ  3 台で同期レプリカを設定可能  同期レプリカの中で自動フェールオーバーを 2 台で設定可能  接続順を指定し、レプリカに読み取りのアクセス  複数データベースにまたがるトランザクションはサポートされない  SQL Server 2014  8 台のセカンダリレプリカ  プライマリレプリカから切断 / クォーラムが存在しない状態でも、 セカンダリレプリカへのアクセスが可能
  6. 6. SQL Server 2016 AlwaysOn 可用性グループ New Features 2016/7/14db tech showcase 20166
  7. 7. データベーススコープの構成 2016/7/14db tech showcase 20167  プライマリとセカンダリで、異なるデータベーススコープの構成を設定可能  読み取りのワークロードについては、セカンダリで設定変更による影響を確認し、プライマリに適用するという 運用が可能  以下の設定をプライマリの設定を引き継ぐか、セカンダリの設定を個別に適用するかを制御可能  クエリ オプティマイザーの修正プログラム (QUERY_OPTIMIZER_HOTFIXES)  DB レベルで、TF4199 相当の設定を制御  クエリオプティマイザーの動作の変更を有効にするための設定  レガシ基数見積もり (LEGACY_CARDINALITY_ESTIMATION)  DB レベルで、TF9481 相当の設定を制御  CardinalityEstimationModelVersion = 70 の基数見積もり (推定) の利用  パラメーター スニッフィング (PARAMETER_SNIFFING)  DB レベルで、TF4136 相当の設定を制御  クエリコンパイル時に使用する、パラメーターの挙動に関しての設定  最大 DOP (MAXDOP)  DB レベルで、max degree of parallelism の設定を制御  DB 単位でプランキャッシュのクリアが可能  ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE  dbcc FLUSHPROCINDB (dbid) 相当の動作を ALTER で実行可能
  8. 8. プライマリ/セカンダリでクエリの動作を変える 2016/7/14db tech showcase 20168  LEGACY_CARDINALITY_ESTIMATION を設定し、プライマリと セカンダリで異なる基数推定を使用
  9. 9. Workgroup Cluster での AlwaysOn 2016/7/14db tech showcase 20169  Windows Server 2016 の新機能である Workgroup Cluster で構築されたクラスター上 で、AlwaysOn 可用性グループを構築可能に  Active Directory が不要で、AlwaysOn 可用性グループの構築が可能  サポートされる Custer Quorum に注意する (現状、ファイル共有/ノードはサポート対象に含まれていない)  Windows Server 2016 ではマルチドメインクラスターもサポート Active Directory ドメイン Windows Server Failover Clustering Quorum - Disk - Node - File Share Windows Server 2012 R2 Workgroup Windows Server Failover Clustering Quorum - Disk - Cloud Microsoft Azure Windows Server 2016
  10. 10. DEMO 2016/7/14db tech showcase 201610 Workgroup Cluster
  11. 11. DB レベルでの障害検知によるフェールオーバー 2016/7/14db tech showcase 201611  SQL Server 2012 / 2014  インスタンスレベルで、障害を検知 (Flexible Failover Policy)  柔軟なフェールオーバーポリシー  サーバーの停止 / 応答停止 / サーバーエラー等の 5 段階で検知レベルを設定可能  SQL Server 2016  インスタンスレベルに加え「データベースレベルの正常性検出」を設定可能に  DB_FAILOVER = ON を設定  可用性グループの作成後に、設定変更可能  可用性グループ内のデータベースのオフラインを検知し、フェールオーバーを 実施することが可能に  データベースレベルの正常性検知については、検知レベルの設定はない
  12. 12. SQL Server 2012 / 2014 のスレッド 2016/7/14db tech showcase 201612 AlwaysON – HADRON Learning Series: Worker Pool Usage for HADRON Enabled Databases https://blogs.msdn.microsoft.com/psssql/2012/05/17/alwayson-hadron-learning-series-worker-pool-usage-for-hadron-enabled-databases/ より Log Scanner Primary HadrThreadPool DDL / Notifications 20-60 Seconds Idle Per Database Per Database On Msg completion Per Secondary On Msg completion Msg Reader Secodnary Redo 20-60 Seconds Idle Per Database On Msg completion State Processing Per Database 20-60 Seconds Idle Msg Receive Per AG Per DB Per DB Msg Log Apply HadrThreadPool On Msg completion Msg Routing On Msg completion
  13. 13. ログ転送の性能改善 2016/7/14db tech showcase 201613  ログ転送のスループット向上  圧縮アルゴリズムの改善 (並列操作) も実施されている  ログ転送の圧縮操作のデフォルト動作の変更  SQL Server 2014 まで  同期 / 非同期ともにデフォルトは圧縮 (-T1462 で非圧縮に変更可能)  SQL Server 2016  同期 : デフォルトは非圧縮 (-T9592 で圧縮に変更可能)  圧縮によるオーバーヘッドを減らし、同期モードの処理速度を優先  非同期 : デフォルトは圧縮 (-T1462 で非圧縮に変更可能)  セカンダリレプリカでパラレル (マルチスレッド) Redo 処理が可能に  2014 までは、DB ごとに Redo スレッドが動作していたが、シングルスレッドで起動  2016 では、使用可能な CPU スレッドの関数として定義されて、各 DB の Redoスレッドは、 CPU 数に応じて起動される  パラレル化されたことで、フェールオーバー時の回復処理が高速に  ログの処理効率改善については、NUMA ノード数に応じた LOG WRITER のマルチワーカー (スレッド) 化も実施されている (最大 4 スレッド)  2016 は自動ソフト NUMA がデフォルト有効なため、8 論理コア以上はソフト NUMA が構成される
  14. 14. DEMO 2016/7/14db tech showcase 201614 SQL Server 2016 の HADR のスレッドの確認
  15. 15. 自動フェールオーバーを 3 台で設定可能 2016/7/14db tech showcase 201615  自動フェールオーバーを 3 台で設定可能  同期レプリカ 3 台間で自動フェールオーバーを設定可能に  フェールオーバーの順序については、クラスターグループの設定に基づく  WSFC の、優先所有者の設定に基づき、フェールオーバーが実行される  AlwaysOn 可用性グループは、WSFC の機能を組み合わせて可用性を担保している 同期レプリカ 自動フェールオーバー SQL Server 2012 / 2014 同期レプリカ 自動フェールオーバー SQL Server 2016
  16. 16. ロードバランスされた読み取りレプリカへのアクセス 2016/7/14db tech showcase 201616  2012 / 2014 は、接続順序 (ルール) によるセカンダリレプリカへのアクセス  2016 では、ラウンドロビンにより、ロードバランスされたアクセスが可能に  以下の SQL Server 2016 の、設定例は Server A または Server B でロードバランスし、 どちらも接続できない場合は Server C に接続 Server A Server B Server C ALTER AVAILABILITY GROUP [AlwaysOnAG] MODIFY REPLICA ON N'SQL-2016-01' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=( N'Server A', N'Server B', N'Server C' ))) SQL Server 2012 / 2014 ALTER AVAILABILITY GROUP [AlwaysOnAG] MODIFY REPLICA ON N'SQL-2016-01' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=( (N'Server A',N'Server B'), N'Server C' ))) SQL Server 2016
  17. 17. DEMO 2016/7/14db tech showcase 201617 ロードバランスされたセカンダリへのアクセス
  18. 18. AlwaysOn で分散トランザクションをサポート 2016/7/14db tech showcase 201618  特定環境下での分散トランザクションをサポート  異なるインスタンスの DB に対しての分散トランザクションをサポート  AlwaysOn は同一インスタンス内の複数データベースにまたがるトランザクションはサポートしていない  OS は、Windows Server 2012 R2 + KB3090973 or Windows Server 2016 を使用する必要がある  WITH DTC_SUPPORT = PER_DB を指定して可用性グループを作成  可用性グループの作成時のみ、設定が可能なため、後からの変更は不可能 AG 1 DB1 DB2 非サポートの DB 配置 AG 1 DB1 DB2 Server A Server B Server A Server B AG 1 DB1 DB2 AG 2 AG 1 DB1 DB2 サポートされるDB 配置 Server A Server B Server A Server B
  19. 19. Direct Seeding によるセカンダリレプリカへの復元 2016/7/14db tech showcase 201619  セカンダリに明示的なバックアップのリストアが不要で同期を開始  従来 : SEEDING_MODE = MANUAL  プライマリの初期バックアップ → 可用性グループに追加 → セカンダリでリストア → 同期開始  Direct Seeding (Automatic Seeding) : SEEDING_MODE = AUTOMATIC  プライマリの初期バックアップ → 可用性グループに追加 → セカンダリに自動的に追加され、同期開始  すべてをセカンダリへの自動的な追加は、ディレクトリ構成を同一にする  同一でない場合は、事前に手動でバックアップをリストアしておく必要がある  後述の分散可用性グループの初期同期でも Direct Seeding を使用することができる  -T9567 を設定すると、データ同期時のデータストリームが圧縮される SQL Server 2012 / 2014 AG 1 DB1 DBを追加 Server A Server B AG 1 DB1 共有フォルダー バックアップ リストア AG 1 DB1 DBを追加 Server A Server B AG 1 DB1 AG に自動で 追加される SQL Server 2016
  20. 20. 分散可用性グループ 2016/7/14db tech showcase 201620  異なる (独立した) クラスター 間で可用性グループを設定可能  可用性グループのリスナー間で複製の設定を行う  これにより遠隔地の独立した環境に対して、可用性グループを設定可能に  セカンダリレプリカは DB を含まない可用性グループとして作成  分散可用性グループ間のフェールオーバーは手動で実施 WSFC02 AG02 Primary Secondary Distributed Availability GroupsWSFC01 AG01 Primary Secondary Secondary
  21. 21. DEMO 2016/7/14db tech showcase 201621 Direct Seeding と分散可用性グループ
  22. 22. Standard Edition を使用した AlwaysOn 2016/7/14db tech showcase 201622  基本的な可用性グループ (Basic Availability Groups)  Standard Edition でデータベースミラーリングに代わる可用性環境の構築方法  2012 の段階で、データベースミラーリングは今後のバージョンでサポートされない機能に  基本的な可用性グループの特徴  2 台のサーバー間でのレプリカ (Primary / Secondary 構成)  同期 / 非同期, 自動フェールオーバーを設定可能  リスナーを介しての可用性グループへのアクセスをサポート  セカンダリレプリカのアクセスはできない  読み取りとしての利用 / バックアップ取得 DB としての利用はできない  可用性グループに含めることができるのは一つの DB のみ  複数の DB を可用性グループで保護したい場合には、複数の可用性グループを作成  DB 間で JOIN をする際には、各可用性グループの配置状況に注意する現状、検証するために は「Standard Edition」が必要  Enterprise Edition / Enterprise Evaluation では、基本的な可用性グループを 構築することはできないため、検証時には注意する
  23. 23. Standard Edition の AlwaysOn の構成 2016/7/14db tech showcase 201623 Server A AG01 (Primary) DB1 Listener AG02 (Secondary) DB1 Server B AG02 (Primary) DB1 Listener AG01 (Secondary) DB1 データ同期 データ同期
  24. 24. DEMO 2016/7/14db tech showcase 201624 Basic Availability Groups
  25. 25. 参考資料 2016/7/14db tech showcase 201625  Introducing Microsoft SQL Server 2016 – get your free ebook today  https://info.microsoft.com/Introducing-SQL-Server-2016-eBook.html  Enhanced Always On Availability Groups in SQL Server 2016  https://blogs.technet.microsoft.com/dataplatforminsider/2015/12/15/enhanced-always-on-availability-groups-in-sql-server-2016/  High Availability Enhancements  https://msdn.microsoft.com/en-us/library/bb510411.aspx#Anchor_4  Workgroup and Multi-domain clusters in Windows Server 2016  https://blogs.msdn.microsoft.com/clustering/2015/08/17/workgroup-and-multi-domain-clusters-in-windows-server-2016/  SQLServer 2016 AlwaysOn and new Log Transport behavior  https://blogs.technet.microsoft.com/simgreci/2016/06/17/sqlserver-2016-alwayson-and-new-log-transport-behavior/  SQL 2016 – It Just Runs Faster: AlwaysOn Parallel Compression / Improved Algorithms  https://blogs.msdn.microsoft.com/psssql/2016/05/03/sql-2016-it-just-runs-faster-alwayson-parallel-compression-improved-algorithms/  Configure load-balancing across read-only replicas  https://msdn.microsoft.com/en-us/library/hh710054.aspx#loadbalancing  Cross-Database Transactions and Distributed Transactions for Always On Availability Groups and Database Mirroring (SQL Server)  https://msdn.microsoft.com/en-us/library/ms366279(v=sql.130).aspx  SQL Server 2016 DTC Support In Availability Groups  https://blogs.technet.microsoft.com/dataplatform/2016/01/25/sql-server-2016-dtc-support-in-availability-groups/  Distributed Availability Groups (Always On Availability Groups)  https://msdn.microsoft.com/en-us/library/mt651673.aspx  Basic Availability Groups (Always On Availability Groups)  https://msdn.microsoft.com/en-us/library/mt614935.aspx

×