SlideShare a Scribd company logo
SQL Server 2016 AlwaysOn 可用性グループ
New Features
Masayuki Ozawa (Microsoft MVP for Data Platform)
自己紹介
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
AlwaysOn 可用性グループ
2016/7/14db tech showcase 20163
AlwaysOn 可用性グループとは??
2016/7/14db tech showcase 20164
 SQL Server 2012 から追加された、SQL Server インスタンス間のデータ同期を、
同期または、非同期で行うための機能
 ローカルのデータベース間でデータ同期を行うため、共有ディスクは不要
データ同期
(同期 or 非同期)
プライマリレプリカ
ログキャッシュ
ログファイル
コミット
ログ
フラッシュ
ログキャプチャ
セカンダリレプリカ
データファイル
バッファキャッシュ
チェック
ポイント
ログ適用
ログキャッシュ
ログファイル データファイル
Redo キャッシュ
Redo スレッド
コミット
応答
圧縮 圧縮解除
ログプール
AlwaysOn のデータ同期の流れ
Log Transport
Redo
ログ
再実行
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 台のセカンダリレプリカ
 プライマリレプリカから切断 / クォーラムが存在しない状態でも、
セカンダリレプリカへのアクセスが可能
SQL Server 2016
AlwaysOn 可用性グループ New Features
2016/7/14db tech showcase 20166
データベーススコープの構成
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 で実行可能
プライマリ/セカンダリでクエリの動作を変える
2016/7/14db tech showcase 20168
 LEGACY_CARDINALITY_ESTIMATION を設定し、プライマリと
セカンダリで異なる基数推定を使用
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
DEMO
2016/7/14db tech showcase 201610
Workgroup Cluster
DB レベルでの障害検知によるフェールオーバー
2016/7/14db tech showcase 201611
 SQL Server 2012 / 2014
 インスタンスレベルで、障害を検知 (Flexible Failover Policy)
 柔軟なフェールオーバーポリシー
 サーバーの停止 / 応答停止 / サーバーエラー等の 5 段階で検知レベルを設定可能
 SQL Server 2016
 インスタンスレベルに加え「データベースレベルの正常性検出」を設定可能に
 DB_FAILOVER = ON を設定
 可用性グループの作成後に、設定変更可能
 可用性グループ内のデータベースのオフラインを検知し、フェールオーバーを
実施することが可能に
 データベースレベルの正常性検知については、検知レベルの設定はない
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
ログ転送の性能改善
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 が構成される
DEMO
2016/7/14db tech showcase 201614
SQL Server 2016 の HADR のスレッドの確認
自動フェールオーバーを 3 台で設定可能
2016/7/14db tech showcase 201615
 自動フェールオーバーを 3 台で設定可能
 同期レプリカ 3 台間で自動フェールオーバーを設定可能に
 フェールオーバーの順序については、クラスターグループの設定に基づく
 WSFC の、優先所有者の設定に基づき、フェールオーバーが実行される
 AlwaysOn 可用性グループは、WSFC の機能を組み合わせて可用性を担保している
同期レプリカ
自動フェールオーバー
SQL Server 2012 / 2014
同期レプリカ
自動フェールオーバー
SQL Server 2016
ロードバランスされた読み取りレプリカへのアクセス
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
DEMO
2016/7/14db tech showcase 201617
ロードバランスされたセカンダリへのアクセス
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
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
分散可用性グループ
2016/7/14db tech showcase 201620
 異なる (独立した) クラスター 間で可用性グループを設定可能
 可用性グループのリスナー間で複製の設定を行う
 これにより遠隔地の独立した環境に対して、可用性グループを設定可能に
 セカンダリレプリカは DB を含まない可用性グループとして作成
 分散可用性グループ間のフェールオーバーは手動で実施
WSFC02
AG02
Primary
Secondary
Distributed Availability GroupsWSFC01
AG01
Primary
Secondary Secondary
DEMO
2016/7/14db tech showcase 201621
Direct Seeding と分散可用性グループ
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 では、基本的な可用性グループを
構築することはできないため、検証時には注意する
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
データ同期
データ同期
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.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

More Related Content

What's hot (20)

PDF
A24 SQL Server におけるパフォーマンスチューニング手法 - 注目すべきポイントを簡単に by 多田典史
Insight Technology, Inc.
 
PDF
Sql server 構築 運用 tips
Masayuki Ozawa
 
PPTX
Sql server のバックアップとリストアの基礎
Masayuki Ozawa
 
PPTX
Sql server 運用 101
Masayuki Ozawa
 
PDF
45分で理解する SQL Serverでできることできないこと
Insight Technology, Inc.
 
PDF
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オラクルエンジニア通信
 
PDF
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
貴仁 大和屋
 
PDF
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
Insight Technology, Inc.
 
PDF
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Masayuki Ozawa
 
PDF
GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)
オラクルエンジニア通信
 
PDF
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
 
PDF
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa
Insight Technology, Inc.
 
PPTX
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
オラクルエンジニア通信
 
PDF
Oracle GoldenGate アーキテクチャと基本機能
オラクルエンジニア通信
 
PDF
Recap: Windows Server 2019 Failover Clustering
Kazuki Takai
 
PPTX
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
 
PDF
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
オラクルエンジニア通信
 
PDF
Rac rac one_node説明資料
Hiroki Morita
 
PPTX
ここからはじめる SQL Server の状態取得
Masayuki Ozawa
 
PDF
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
オラクルエンジニア通信
 
A24 SQL Server におけるパフォーマンスチューニング手法 - 注目すべきポイントを簡単に by 多田典史
Insight Technology, Inc.
 
Sql server 構築 運用 tips
Masayuki Ozawa
 
Sql server のバックアップとリストアの基礎
Masayuki Ozawa
 
Sql server 運用 101
Masayuki Ozawa
 
45分で理解する SQL Serverでできることできないこと
Insight Technology, Inc.
 
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オラクルエンジニア通信
 
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
貴仁 大和屋
 
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
Insight Technology, Inc.
 
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Masayuki Ozawa
 
GoldenGateテクニカルセミナー2「Oracle GoldenGate 新機能情報」(2016/5/11)
オラクルエンジニア通信
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
 
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa
Insight Technology, Inc.
 
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#3
オラクルエンジニア通信
 
Oracle GoldenGate アーキテクチャと基本機能
オラクルエンジニア通信
 
Recap: Windows Server 2019 Failover Clustering
Kazuki Takai
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
 
事例から見る規模別クラウド・データベースの選び方 (Oracle Database) (Oracle Cloudウェビナーシリーズ: 2021年6月30日)
オラクルエンジニア通信
 
Rac rac one_node説明資料
Hiroki Morita
 
ここからはじめる SQL Server の状態取得
Masayuki Ozawa
 
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
オラクルエンジニア通信
 

Similar to Sql server 2016 always on 可用性グループ new features (20)

PDF
[Japan Tech summit 2017] DAL 004
Microsoft Tech Summit 2017
 
PPTX
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
ShuheiUda
 
PDF
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
Insight Technology, Inc.
 
PPTX
Dat008 進化した always_on!_sql_server_2016_の_alway
Tech Summit 2016
 
PDF
Dat008 進化した always_on!_sql_server_2016_の_always
Tech Summit 2016
 
PDF
Wsfc basic 130720
wintechq
 
PPTX
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015
Takayuki Enomoto
 
PPTX
Sql server 2017 新機能のご紹介
Oda Shinsuke
 
PDF
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Kuniteru Asami
 
PDF
オンプレのDbaがazureのデータベースを使ってみた
Masayuki Ozawa
 
PDF
[Japan Tech summit 2017] CLD 015
Microsoft Tech Summit 2017
 
PPTX
Awsでのsql高可用構成 Always On
ShinodaYukihiro
 
PPTX
Awsでのsql高可用構成 Always On
ssuser79e118
 
PDF
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
Iwasaki Noboru
 
PDF
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
Naoki (Neo) SATO
 
PPTX
99999999 azure iaas_newportal版
Osamu Takazoe
 
PDF
Ws2012フェールオーバークラスタリングdeep dive 130802
wintechq
 
PPTX
2011/12/3 わんくま同盟
貴仁 大和屋
 
PDF
Sql database managed instance overview and internals
Masayuki Ozawa
 
PDF
Interact2019 ws2019 s2d_IN05
Hiroshi Matsumoto
 
[Japan Tech summit 2017] DAL 004
Microsoft Tech Summit 2017
 
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
ShuheiUda
 
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
Insight Technology, Inc.
 
Dat008 進化した always_on!_sql_server_2016_の_alway
Tech Summit 2016
 
Dat008 進化した always_on!_sql_server_2016_の_always
Tech Summit 2016
 
Wsfc basic 130720
wintechq
 
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015
Takayuki Enomoto
 
Sql server 2017 新機能のご紹介
Oda Shinsuke
 
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Kuniteru Asami
 
オンプレのDbaがazureのデータベースを使ってみた
Masayuki Ozawa
 
[Japan Tech summit 2017] CLD 015
Microsoft Tech Summit 2017
 
Awsでのsql高可用構成 Always On
ShinodaYukihiro
 
Awsでのsql高可用構成 Always On
ssuser79e118
 
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
Iwasaki Noboru
 
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
Naoki (Neo) SATO
 
99999999 azure iaas_newportal版
Osamu Takazoe
 
Ws2012フェールオーバークラスタリングdeep dive 130802
wintechq
 
2011/12/3 わんくま同盟
貴仁 大和屋
 
Sql database managed instance overview and internals
Masayuki Ozawa
 
Interact2019 ws2019 s2d_IN05
Hiroshi Matsumoto
 
Ad

More from Masayuki Ozawa (20)

PDF
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
Masayuki Ozawa
 
PDF
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
Masayuki Ozawa
 
PDF
Power apps formula cheat sheet
Masayuki Ozawa
 
PDF
K8s install (single cluster)
Masayuki Ozawa
 
PDF
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips
Masayuki Ozawa
 
PDF
Managed Instance チートシート
Masayuki Ozawa
 
PDF
Pacemaker 操作方法メモ
Masayuki Ozawa
 
PDF
Windows エンジニア向け sql server on linux のためのスキルアップデート
Masayuki Ozawa
 
PDF
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Masayuki Ozawa
 
PDF
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Masayuki Ozawa
 
PPTX
DBA から開発者への情報提供
Masayuki Ozawa
 
PPTX
Sql server 2016 ctp 3.0 新機能
Masayuki Ozawa
 
PDF
SQL Server パフォーマンスカウンター
Masayuki Ozawa
 
PDF
SQL Server 簡易診断サービス ご紹介資料
Masayuki Ozawa
 
PDF
SQL Server 現状診断サービス ご紹介資料
Masayuki Ozawa
 
PDF
A25 sql server data page structure deep dive
Masayuki Ozawa
 
PDF
Data consistency 入門 data partitioning ガイダンス
Masayuki Ozawa
 
PDF
Sql server data store data access internals
Masayuki Ozawa
 
PDF
Oracle と sql server 比べてみよう (sql server)
Masayuki Ozawa
 
PDF
Sql database 基本構成と直近で追加されていた機能の紹介
Masayuki Ozawa
 
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
Masayuki Ozawa
 
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
Masayuki Ozawa
 
Power apps formula cheat sheet
Masayuki Ozawa
 
K8s install (single cluster)
Masayuki Ozawa
 
de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips
Masayuki Ozawa
 
Managed Instance チートシート
Masayuki Ozawa
 
Pacemaker 操作方法メモ
Masayuki Ozawa
 
Windows エンジニア向け sql server on linux のためのスキルアップデート
Masayuki Ozawa
 
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Masayuki Ozawa
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Masayuki Ozawa
 
DBA から開発者への情報提供
Masayuki Ozawa
 
Sql server 2016 ctp 3.0 新機能
Masayuki Ozawa
 
SQL Server パフォーマンスカウンター
Masayuki Ozawa
 
SQL Server 簡易診断サービス ご紹介資料
Masayuki Ozawa
 
SQL Server 現状診断サービス ご紹介資料
Masayuki Ozawa
 
A25 sql server data page structure deep dive
Masayuki Ozawa
 
Data consistency 入門 data partitioning ガイダンス
Masayuki Ozawa
 
Sql server data store data access internals
Masayuki Ozawa
 
Oracle と sql server 比べてみよう (sql server)
Masayuki Ozawa
 
Sql database 基本構成と直近で追加されていた機能の紹介
Masayuki Ozawa
 
Ad

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

  • 1. SQL Server 2016 AlwaysOn 可用性グループ New Features Masayuki Ozawa (Microsoft MVP for Data Platform)
  • 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
  • 4. AlwaysOn 可用性グループとは?? 2016/7/14db tech showcase 20164  SQL Server 2012 から追加された、SQL Server インスタンス間のデータ同期を、 同期または、非同期で行うための機能  ローカルのデータベース間でデータ同期を行うため、共有ディスクは不要 データ同期 (同期 or 非同期) プライマリレプリカ ログキャッシュ ログファイル コミット ログ フラッシュ ログキャプチャ セカンダリレプリカ データファイル バッファキャッシュ チェック ポイント ログ適用 ログキャッシュ ログファイル データファイル Redo キャッシュ Redo スレッド コミット 応答 圧縮 圧縮解除 ログプール AlwaysOn のデータ同期の流れ Log Transport Redo ログ 再実行
  • 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. SQL Server 2016 AlwaysOn 可用性グループ New Features 2016/7/14db tech showcase 20166
  • 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. プライマリ/セカンダリでクエリの動作を変える 2016/7/14db tech showcase 20168  LEGACY_CARDINALITY_ESTIMATION を設定し、プライマリと セカンダリで異なる基数推定を使用
  • 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. DEMO 2016/7/14db tech showcase 201610 Workgroup Cluster
  • 11. DB レベルでの障害検知によるフェールオーバー 2016/7/14db tech showcase 201611  SQL Server 2012 / 2014  インスタンスレベルで、障害を検知 (Flexible Failover Policy)  柔軟なフェールオーバーポリシー  サーバーの停止 / 応答停止 / サーバーエラー等の 5 段階で検知レベルを設定可能  SQL Server 2016  インスタンスレベルに加え「データベースレベルの正常性検出」を設定可能に  DB_FAILOVER = ON を設定  可用性グループの作成後に、設定変更可能  可用性グループ内のデータベースのオフラインを検知し、フェールオーバーを 実施することが可能に  データベースレベルの正常性検知については、検知レベルの設定はない
  • 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. ログ転送の性能改善 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. DEMO 2016/7/14db tech showcase 201614 SQL Server 2016 の HADR のスレッドの確認
  • 15. 自動フェールオーバーを 3 台で設定可能 2016/7/14db tech showcase 201615  自動フェールオーバーを 3 台で設定可能  同期レプリカ 3 台間で自動フェールオーバーを設定可能に  フェールオーバーの順序については、クラスターグループの設定に基づく  WSFC の、優先所有者の設定に基づき、フェールオーバーが実行される  AlwaysOn 可用性グループは、WSFC の機能を組み合わせて可用性を担保している 同期レプリカ 自動フェールオーバー SQL Server 2012 / 2014 同期レプリカ 自動フェールオーバー SQL Server 2016
  • 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. DEMO 2016/7/14db tech showcase 201617 ロードバランスされたセカンダリへのアクセス
  • 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. 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. 分散可用性グループ 2016/7/14db tech showcase 201620  異なる (独立した) クラスター 間で可用性グループを設定可能  可用性グループのリスナー間で複製の設定を行う  これにより遠隔地の独立した環境に対して、可用性グループを設定可能に  セカンダリレプリカは DB を含まない可用性グループとして作成  分散可用性グループ間のフェールオーバーは手動で実施 WSFC02 AG02 Primary Secondary Distributed Availability GroupsWSFC01 AG01 Primary Secondary Secondary
  • 21. DEMO 2016/7/14db tech showcase 201621 Direct Seeding と分散可用性グループ
  • 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. 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. DEMO 2016/7/14db tech showcase 201624 Basic Availability Groups
  • 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