SlideShare a Scribd company logo
1 of 61
Download to read offline
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Clusterによる高可用性の実現
日本オラクル株式会社
MySQL Global Business Unit
Master Principal Sales Consultant/Shinya Sugiyama
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
db tech showcase Tokyo 2017 / Session:B21
Date: 2017/09/06
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき
ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメントするも
のではない為、購買決定を行う際の判断材料になさらないで下さい。
オラクル製品に関して記載されている機能の開発、リリースおよび時期については、
弊社の裁量により決定されます。
2
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
3
InnoDBクラスタのご紹介
コンポーネント
セットアップ、監視、および管理
アーキテクチャー
今後の機能拡張
1
2
3
4
5
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
4
InnoDBクラスタのご紹介
コンポーネント
セットアップ、監視、および管理
アーキテクチャー
今後の機能拡張
1
2
3
4
5
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
InnoDB Cluster
5
“安定したサービスレベル、機会損失を避ける為に、
高可用性は、MySQLにとっても最も重要な中核機能の一つです”
機会損失
顧客満足度低下
ダウンタイム
$
InnoDB Clusterで更に高いレベルの可用性をサポートします!!
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 6
MySQL InnoDB Cluster: ビジョン
• 統合製品:MySQL
-全てのコンポーネントを同時開発
-全てのコンポーネントを同時検証
-一つのパッケージとして提供
• 使い易さ
-統合クライアント:MySQLシェル
-容易なパッケージング
-統合オーケストレーション
-同種サーバー群
• 新しい技術と柔軟性
- SQLとNoSQL処理が可能
-非同期API (mysqlx, protobuf)
-開発フレンドリー
• 参照/書き込みのスケールアウト
-シャードされたクラスタ
- N個のレプリカセットの連合システム
クロスシャード操作のサポート
-各レプリカセットは各シャードを管理
“高可用性とスケーリング機能を包括的に備えた単一製品として、
使い易いエンドツーエンドの統合ソリューションを提供”
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Connector
Application
MySQL Router
MySQL Connector
Application
MySQL Router
MySQL Shell
MySQL Connector
Application
MySQL Router
MySQL Connector
Application
MySQL Router
MySQL InnoDB Cluster: 全体的アーキテクチャー
MySQL
InnoDB
cluster
MySQL Enterprise Monitor
…
7
Group Replication
MySQL Server 5.7.17 or higher
MySQL Shell 1.0.9 or higher
MySQL Router 2.1.3 or higher
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
M
M M
MySQL Connector
Application
MySQL Router
MySQL Connector
Application
MySQL Router
MySQL Shell
HA
Group Replication
8
アプリケーションは
MySQL Routerに接続
Group Replicationによる高可用性
グループとメタデータの管理
+-------------------------------+
| Database |
+-------------------------------+
| information_schema |
| mysql |
| mysql_innodb_cluster_metadata |
| performance_schema |
| sys |
+-------------------------------+
MySQL InnoDB Cluster: 内部的アーキテクチャー
mysql_innodb_cluster_metadata.*
performance_schema.replication_group_members
performance_schema.replication_group_member_stats
mysql-js> cluster.status()
{
"clusterName": “NewAppCluster",
"defaultReplicaSet": {
"address": “hanode1:3306",
"status": "ONLINE",
MySQL Shellで設定管理
JavaScript, python
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
9
InnoDBクラスタのご紹介
コンポーネント
セットアップ、監視、および管理
アーキテクチャー
今後の機能拡張
1
2
3
4
5
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
コンポーネント# 1
MySQL Group Replication
MySQLに標準実装された、高可用性のレプリカセット
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 11
asynchronous (native)
Since 3.23 (2001-01)
semi-synchronous (plugin)
Since 5.5 (2010-12)
Multi-Source (native)
Since 5.7(2015-10)
group replication (plugin)
5.7.17 (2016-12-12)
MySQLレプリケーション
M S
transactions
M S
transactions
M MM
transactions, membership, coordination
M S
transactions
MS
参考: https://dev.mysql.com/doc/refman/5.7/en/group-replication-primary-secondary-replication.html
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
MySQL Group Replicationとは?
• レプリケーション機能をベースとした、MySQLのマニュアルフェイルオーバー
処理が不要な高可用性ソリューション
• MySQL 5.7.17以降でプラグインとして追加インストール可能
sql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
• グループメンバーの管理と障害検知を自動化
– 自動的なサーバーのフェイルオーバー
– 構成の拡張/縮小の柔軟性
– 単一障害点無し
– 自動的にレプリケーションを再構成
• プラットフォーム対応(MySQL準拠)
– Linux, Windows, Solaris, OSX, FreeBSD
12
Application
MySQL Nodes
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
• シングルプライマリーモード (デフォルト)
– グループ内の1ノードだけが読み書き可能な状態
– 通常のレプリケーション同様に利用する事が可能
https://dev.mysql.com/doc/refman/5.7/en/group-replication-single-primary-mode.html
• マルチプライマリーモード (マルチマスター)
– Active/Active構成でどのノードからでも更新可能
– COMMIT先勝ちによるトランザクション競合の自動解消
https://dev.mysql.com/doc/refman/5.7/en/group-replication-multi-primary-mode.html
13
MySQL Group Replicationとは?
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
参考:シングルプライマリーモード
• プライマリサーバーのメンバーは、SQL文を実行することによって確認可能
14
mysql> SELECT * FROM performance_schema.replication_group_members;
+-------------------------+------------------------------------+-------------+-----------+------------+
|CHANNEL_NAME |MEMBER_ID |MEMBER_HOST |MEMBER_PORT|MEMBER_STATE|
+-------------------------+------------------------------------+-------------+-----------+------------+
|group_replication_applier|919a7d77-9ff3-11e6-acb8-080027d65c57|replications | 3310|ONLINE |
|group_replication_applier|9c8e6f77-9ff3-11e6-b1d1-080027d65c57|replications | 3320|ONLINE |
|group_replication_applier|ac0ec52b-9ff3-11e6-b801-080027d65c57|replications | 3330|ONLINE |
+-------------------------+------------------------------------+-------------+-----------+------------+
mysql> SELECT * FROM performance_schema.global_status WHERE
VARIABLE_NAME='group_replication_primary_member';
+----------------------------------+--------------------------------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+----------------------------------+--------------------------------------+
| group_replication_primary_member | 919a7d77-9ff3-11e6-acb8-080027d65c57 |
+----------------------------------+--------------------------------------+
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
GTIDをフルサポート
• 全グループメンバーは同じUUID、グループ名を持つ
15
M M M M M
INSERT y;
Will have GTID: group_name:2
INSERT x;
Will have GTID: group_name:1
mysql> SET GLOBAL group_replication_group_name= "00000000-1111-2222-3333-123456789ABC";
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
GTIDをフルサポート
• グループ外のサーバーからグループにレプリケート可能
• グローバル識別子を維持
16
M M M M M
競合も検出される
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
GTIDをフルサポート
• グループからグループ外のサーバーにレプリケート可能
• グローバル識別子は維持
17
M M M M M
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
グループレプリケーションステータス
• プラグインをロードし、レプリケーションをスタート
• グループ・レプリケーションのグループメンバーの状況を確認
18
mysql> SET GLOBAL group_replication_group_name= "00000000-1111-2222-3333-123456789abc";
mysql> START GROUP_REPLICATION;
mysql> SELECT * FROM performance_schema.replication_group_members¥G
*************************** 1. row ***************************
CHANNEL_NAME: group_replication_applier
MEMBER_ID: 698f11c8-0397-11e7-aae1-080027d65c57
MEMBER_HOST: replications
MEMBER_PORT: 63301
MEMBER_STATE: ONLINE
*************************** 2. row ***************************
CHANNEL_NAME: group_replication_applier
MEMBER_ID: 713ad572-0397-11e7-aca3-080027d65c57
MEMBER_HOST: replications
MEMBER_PORT: 63302
MEMBER_STATE: ONLINE
...
https://dev.mysql.com/doc/refman/5.7/en/group-replication-replication-group-members.html
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
参考: MEMBER_STATE
19
フィールド値 概要 グループの同期状態
ONLINE メンバはグループメンバとして完全に機能する準備が整っています。
クライアントは接続してトランザクションの実行を開始できます。
Yes
RECOVERING メンバーはアクティブなグループメンバーになる過程にあり、ドナーか
らステータスの情報を受け取り、復旧プロセスを進めている状況です。
No
OFFLINE プラグインはロードされていますが、メンバーはどのグループにも属し
ていない状況。
No
ERROR 回復フェーズ、または変更を適用している時にエラーが発生した状態。 No
UNREACHABLE 特定のサーバーがクラッシュ若しくは切断されて、到達不能であると
疑われる時に、サーバーの状態を「到達不能」として示します。
No
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
グループレプリケーションステータス
• グループによってコミットされたトランザクション、キューの増加状況、
競合の検出数、検査されたトランザクションの数等を確認出来ます。
20
mysql> SELECT * FROM performance_schema.replication_group_member_stats¥G
*************************** 1. row ***************************
CHANNEL_NAME: group_replication_applier
VIEW_ID: 14896410386000092:7
MEMBER_ID: 78b1d98a-0397-11e7-aef2-080027d65c57
COUNT_TRANSACTIONS_IN_QUEUE: 0
COUNT_TRANSACTIONS_CHECKED: 2
COUNT_CONFLICTS_DETECTED: 0
COUNT_TRANSACTIONS_ROWS_VALIDATING: 0
TRANSACTIONS_COMMITTED_ALL_MEMBERS: 00000000-1111-2222-3333-123456789abc:1-29
LAST_CONFLICT_FREE_TRANSACTION: 00000000-1111-2222-3333-123456789abc:29
1 row in set (0.00 sec)
https://dev.mysql.com/doc/refman/5.7/en/group-replication-replication-group-member-stats.html
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• MySQL Enterprise MonitorにてInnoDB clustersを包括的に監視
– トポロジビュー , 詳細なメトリックとグラフ, ベストプラクティスアドバイザー
• Group Replicationのモニタリング
21
グループレプリケーションステータス
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
必要要件
• 現状では、IPv4のみサポート
• 低レイテンシ、広帯域の安定したネットワーク
• InnoDBストレージエンジン
• 全てのテーブルに主キーが必要※ (Certification処理で必要)
• バイナリログを出力し、フォーマットはROW
• グローバルトランザクション識別子(GTID)有効
• その他、以下の設定
– master_info_repository=TABLE
– relay_log_info_repository=TABLE
– log_slave_updates=ON
– transaction_write_set_extraction=XXHASH64
22
参考 : https://dev.mysql.com/doc/refman/5.7/en/group-replication-requirements.html
※ Non-null unique keyでも対応可能
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
制限事項
• グループ内の最大メンバー数は9メンバー
• バイナリログのチェックサムは未サポート(binlog_checksum=NONE を設定)
• セーブポイントは使用できない ( < MySQL5.7.19 )
• グループ内のサーバーとの連携処理において、LOCK TABLES、UNLOCK
TABLES、GET_LOCK関数は考慮されない
23
参考 : https://dev.mysql.com/doc/refman/5.7/en/group-replication-limitations.html
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
追加制限事項
マルチマスターモードの場合
–スキーマ変更処理中は別のサーバーから同じオブジェクトに対して
DML, DDLによりオブジェクトやデータを変更できない
http://lefred.be/content/mysql-group-replication-videocast-1/
–カスケードオプション付きの外部キー制約は未サポート
–SERIALIZABLE分離レベルは未サポート
– 他のメンバーとトランザクションが競合した場合、COMMIT時にトランザクションが
破棄される可能性があることを考慮して、トランザクションを適切なサイズに保ち、
アプリケーションでリトライ処理等を実装
– グループ内のサーバーとの連携処理において、ギャップロックを考慮して
READ COMMITED分離レベルを推奨(デフォルトはREPEATABLE READ)
24
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
その他の考慮事項
• スプリットブレイン等を考慮して、3台以上の奇数でのグループ構成を推奨
– 現時点では、スプリットブレイン発生時の少数グループは読み取り専用モードになる
(3台で構成し、2台と1台のグループに分断された場合、2台のグループはグループ・
レプリケーションとして稼働し続け、1台のグループは読み取り専用モードになる)
25
https://dev.mysql.com/doc/refman/5.7/en/group-replication-network-partitioning.html
Group Size Majority Instant Failures Tolerated
1 1 0
2 2 0
3 2 1
4 3 1
5 3 2
6 4 2
7 4 3
例) ネットワークパーティショニング
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
コンポーネント# 2
MySQL Router
透過的にアプリケーション接続をルーティング
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Router
• 透過的にクライアント接続をルーティング
– ロードバランシング (R/O)
– アプリケーション接続フェイルオーバー (R/W)
• ステートレスなデザインにより、容易にクライアント
接続のHAルーティングが可能
– ローカルルータはアプリスタックの一部として機能
27
透過的な接続ルーティング
” MySQL Routerを使用する事で、スタンドアロンのMySQLインスタンスを既存の
アプリケーションに影響を与えずに、高可用性で分散処理可能なInnoDBクラスタ
に容易に移行する事が可能!”
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Router: 2.1
• InnoDBクラスタをネイティブサポート
– グループレプリケーションの構成を認識
– 各メンバーに格納されたメタデータスキーマを利用して、
自身をブートストラップし、InnoDBクラスタのクライアント
ルーティングを設定
• InnoDBクラスタへのルーティングを動的にコントロール可能
– マルチマスター及びシングルマスターモードをサポート
• Core improvements
– 内蔵されたKeyringによる、簡単で安全なパスワード管理
28
App Servers with
MySQL Router
MySQL Group Replication
MySQL Shell
Setup, Manage,
Orchestrate
“新しいmetadata_cacheプラグインを備えたMySQL Router 2.1では、
透過的なクライアント接続のルーティングとInnoDBクラスタへのフェールオーバーをサポート!“
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
補足:MySQL Router設定ファイル
29
-bash-4.2$ mysqlrouter --bootstrap root@server1:3306 --user=mysql
-bash-4.2$ cat /home/mysql/mysqlrouter/mysqlrouter.conf
# File automatically generated during MySQL Router bootstrap
[DEFAULT]
name=system
user=mysql
keyring_path=/home/mysql/mysql-router/data/keyring
master_key_path=/home/mysql/mysql-router/mysqlrouter.key
[logger]
level = INFO
[metadata_cache:testCluster]
router_id=5
bootstrap_server_addresses=mysql://server1:3306,mysql://server2:3306,mysql://server3:3306
user=mysql_router5_je3r5179e17p
metadata_cluster=testCluster
ttl=300
[routing:testCluster_default_rw]
bind_address=0.0.0.0
bind_port=6446
destinations=metadata-cache://testCluster/default?role=PRIMARY
mode=read-write
protocol=classic
[routing:testCluster_default_ro]
bind_address=0.0.0.0
bind_port=6447
destinations=metadata-cache://testCluster/default?role=SECONDARY
mode=read-only
protocol=classic
[routing:testCluster_default_x_rw]
bind_address=0.0.0.0
bind_port=64460
destinations=metadata-cache://testCluster/default?role=PRIMARY
mode=read-write
protocol=x
[routing:testCluster_default_x_ro]
bind_address=0.0.0.0
bind_port=64470
destinations=metadata-cache://testCluster/default?role=SECONDARY
mode=read-only
protocol=x
起動時にbootstrap_server_addressesに
リストアップされている、サーバーにアクセスし
Group Replicationの構成情報を取得
書き込み処理の分散
読み込み処理の分散
Xプロトコルをサポート
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
コンポーネント# 3
MySQL Shell
開発、セットアップ、管理、オーケストレーション、
および監視用に対応した単一ツール
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell
31
全ての運用管理タスクの為に、統一された単一クライアント
App Servers with
MySQL Router
MySQL Group Replication
MySQL Shell
Setup, Manage,
Orchestrate
• 多言語対応: JavaScript, Python, and SQL
– 容易なスクリプト化
• ドキュメントとリレーショナルモデルの両方をサポート
• 開発および管理用に完全なAPIを提供
”MySQL Shell provides the developer and DBA with a single intuitive,
flexible, and powerful interface for all MySQL related tasks!”
[root@misc01 admin]# mysqlsh --help | egrep -i "Start in"
--sql Start in SQL mode using a node session.
--sqlc Start in SQL mode using a classic session.
--js Start in JavaScript mode.
--py Start in Python mode.
[root@misc01 admin]# mysqlsh -f setup-innodb-cluster.js
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell:管理用API
• mysql-js> dba.help()
• グローバル変数 ‘dba’でMySQLの管理用APIにアクセス可能
• DBA管理オペレーション
– Manage MySQL InnoDB clusters
• クラスター作成
• MySQLインスタンスの検証
• MySQLインスタンスの構築
• クラスターの状況を確認
• MySQLインスタンスの開始・停止
• クラスタの構成変更
データベース管理者向けインターフェース
App Servers with
MySQL Router
MySQL Group Replication
MySQL Shell
Setup, Manage,
Orchestrate
32
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 33
mysql-js> dba.help()
The global variable 'dba' is used to access the MySQL AdminAPI functionality
and perform DBA operations.It is used for managing MySQL InnoDB clusters.
The following properties are currently supported.
- verbose Enables verbose mode on the Dba operations.
The following functions are currently supported.
- createCluster Creates a MySQL InnoDB cluster.
- deleteLocalInstance Deletes an existing MySQL Server instance on localhost.
- deployLocalInstance Creates a new MySQL Server instance on localhost.
- dropMetadataSchema Drops the Metadata Schema.
- getCluster Retrieves a cluster from the Metadata Store.
- help Provides help about this class and it's members
- killLocalInstance Kills a running MySQL Server instance on localhost.
- resetSession Sets the session object to be used on the Dba operations.
- startLocalInstance Starts an existing MySQL Server instance on localhost.
- stopLocalInstance Stops a running MySQL Server instance on localhost.
- validateInstance Validates an instance for usage in Group Replication.
For more help on a specific function use dba.help('<functionName>')
e.g. dba.help('deployLocalInstance')
1台のサーバーで検証する場合は、
Sandboxモードが利用可能。
dba.deploySandboxInstance(3310)
参照: https://dev.mysql.com/doc/dev/mysqlsh-api-javascript/1.0/annotated.html
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
34
InnoDBクラスタのご紹介
コンポーネント
セットアップ、監視、および管理
アーキテクチャー
今後の機能拡張
1
2
3
4
5
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: MySQLインスタンスの設定確認
shell> mysqlsh root@localhost
mysql-js> dba.checkInstanceConfiguration(‘localhost:3306’)
mysql-js> dba.configureLocalInstance(‘localhost:3306’)
35
参照: https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-working-with-production-deployment.html
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: InnoDB Clusterの設定
mysql-js> cluster = dba.createCluster(‘NewAppCluster')
mysql-js> cluster.addInstance('root@hanode1:3306')
mysql-js> cluster.addInstance('root@hanode2:3306')
mysql-js> cluster.addInstance('root@hanode3:3306')
# to persist the config changes on each machine
shell> mysqlsh root@localhost
mysql-js> dba.configureLocalInstance(‘localhost:3306’)
36
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: MySQL Routerの設定
shell> mysqlrouter --bootstrap hanode1:3306
shell> mysqlrouter &
shell> mysqlsh root@localhost:6446
37
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: InnoDB Clusterの設定確認
shell> mysqlsh root@localhost:6446
mysql-js> cluster = dba.getCluster()
mysql-js> cluster.status()
38
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: InnoDB Clusterのステータス確認
mysql-js> cluster.status()
{
"clusterName": "mylabcluster",
"defaultReplicaSet": {
"name": "default",
"status": "OK",
"statusText": "Cluster is ONLINE and can tolerate up to ONE failure.",
"topology": {
"hanode1:3306": {
"address": "hanode1:3306",
"mode": "R/W",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
…
39
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
DEMO:シングルマスターモード
40
PORT: 3310
PORT: 3320
PORT: 3330
dba.deploySandboxInstance(3310, {password:'Welcome1'})
dba.deploySandboxInstance(3320, {password:'Welcome1'})
dba.deploySandboxInstance(3330, {password:'Welcome1'})
cluster = dba.createCluster('singleCluster')
cluster.addInstance('root:Welcome1@localhost:3320')
cluster.addInstance('root:Welcome1@localhost:3330')
mysqlrouter --bootstrap root:Welcome1@localhost:3310 --force --user=mysql
PORT: 3310
PORT: 3320
PORT: 3330
① localhostに3つインスタンスを構築 ② グループレプリケーション設定
③ MySQL Routerの初期設定
④ MySQL Router経由の接続とPRIMARY障害発生時の挙動確認
mysql -u root -pWelcome1 -h 127.0.0.1 -P 6446 -e "select 'R-Port:6446',@@hostname,@@port;"
mysql -u root -pWelcome1 -h 127.0.0.1 -P 6447 -e "select 'R-Port:6447',@@hostname,@@port;"
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
DEMO:マルチマスターモード
41
PORT: 3350
PORT: 3360
PORT: 3370
dba.deploySandboxInstance(3350, {password:'Welcome1'})
dba.deploySandboxInstance(3360, {password:'Welcome1'})
dba.deploySandboxInstance(3370, {password:'Welcome1'})
cluster = dba.createCluster('multiCluster', {multiMaster:true,force:true})
cluster.addInstance('root:Welcome1@localhost:3360')
cluster.addInstance('root:Welcome1@localhost:3370')
mysqlrouter --bootstrap root:Welcome1@localhost:3350 --force --user=mysql
PORT: 3350
PORT: 3360
PORT: 3370
① localhostに3つインスタンスを構築 ② グループレプリケーション設定
③ MySQL Routerの初期設定
④ MySQL Router経由の接続とPRIMARY障害発生時の挙動確認
mysql -u root -pWelcome1 -h 127.0.0.1 -P 6446 -e "select 'R-Port:6446',@@hostname,@@port;"
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
42
InnoDBクラスタのご紹介
コンポーネント
セットアップ、監視、および管理
アーキテクチャー
今後の機能拡張
1
2
3
4
5
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
シングルデータセンター構成
43
Application Servers
MySQL Router in Stack
MySQL Database Service
Group Replication
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
マルチデータセンター構成 (シングルグループ)
44
MySQL Database Service
Group Replication
Data Center 1 Data Center 2
Clients
データセンター間の
ネットワークLatencyに依存
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
局地災害対応構成
45
Async Replication
Active Data Center Backup Data Center
Clients
局地災害発生時に、
アプリケーションの接続を
変更し対応
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
アクティブ/アクティブ マルチデータセンター構成
46
Async Replication
Regional Data Center Regional Data Center
Regional ClientsRegional Clients
クライアントの接続は、
地域毎のAPサーバーに
それぞれ接続する構成
mysql_innodb_cluster_metadata
が同期されないようにレプリケー
ション除外設定する必要あり
※ MySQL8.0以降推奨
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
47
InnoDBクラスタのご紹介
コンポーネント
セットアップ、監視、および管理
アーキテクチャー
今後の機能拡張
1
2
3
4
5
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 48
MySQL HA
Out-Of-Box HA
Read Scale-Out
Async Replication + Auto Failover
Write Scale-Out
ShardingStep1
Step2
Step3
* InnoDB Cluster GA!
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
S1 S2 S3 S4 S…
M
M M
MySQL Connector
Application
MySQL Router
MySQL Connector
Application
MySQL Router
MySQL Shell
HA
MySQL InnoDB Cluster: Architecture – Step 2
Group Replication
Read-Only Slaves
49
【現状】
グループレプリケーションをマスターとして参照して
いるスレーブは、参照先のノードがダウンした場合、
マニュアルでCHANGE MASTERを実行し、
他のノードに参照先を変更する必要有り。
【機能拡張】
グループレプリケーションをマスターとして参照して
いるスレーブは、参照先のノードがダウンした場合、
自動的に稼働中の他のノードに参照先を変更。
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
S1 S2 S3 S4 S…
M
M M
MySQL Connector
Application
MySQL Router
MySQL Connector
Application
MySQL Router
MySQL Shell
HA
ReplicaSet1
S1 S2 S3 S4 S…
M
M M
MySQL Connector
Application
MySQL Router
HA
ReplicaSet2
ReplicaSet3
MySQL Connector
Application
MySQL Router
MySQL InnoDB Cluster: Architecture – Step 3
S1 S2 S3 S4
M
M M
HA
50
Groupを分ける事による、
書き込みのシャーディング
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Summary
可用性
管理工数
拡張性
InnoDB Clusterは、データベースの可用性をGroup Replication,
アプリケーションの接続をMySQL Routerにより冗長化し、
高可用性を実現しサービスの安定稼働をサポートします。
管理面をサポートするMySQL Shellを利用する事で、InnoDB Cluster
のコンポーネントである、Group Replicationの設定を容易に行う事
が出来ます。スクリプト化しやすい為、プロビジョニングの自動化等
でも活用する事が可能です。監視では、MEMも活用頂けます。
InnoDB Clusterは、参照処理と更新処理のスケールアウトの為に、
更なる機能拡張を進めています。現状では、MySQL Clusterが
書き込みに対する主なソリューションとなっていますが、
将来的には、InnoDB Clusterも対応可能になる予定です。
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 52
30日間トライアル
MySQL Enterprise Edition & Cluster CGEの試使用
• Oracle Software Delivery Cloud
http://edelivery.oracle.com/
• 製品パックを選択:
"Product" にMySQLと入力し、
OSを選択し"Continue"
• 製品マニュアル
http://dev.mysql.com/doc/index-
enterprise.html
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Oracle Cloud: MySQL Cloud Service
• MySQL Enterprise Edition
• MySQL Cloudインスタンスを管理するWebベースのコンソール
• セルフサービスプロビジョニング
• 柔軟なスケーラビリティ
• 多層セキュリティ
• 統一されたクラウド管理
• Oracle PaaSとIaaSの統合
• プレミアテクニカルサポートを包括
53
InnoDB clusters Option –
coming soon!
Oracle Cloud MySQL Serviceトライアル
https://cloud.oracle.com/ja_JP/mysql
無償トライアルの申し込み方法
https://faq.oracle.co.jp/ci/fattach/get/2851/147684009
2/redirect/1/filename/PAAS_TrialGuide_20161014.pdf
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 54
有難うございました
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 55
Appendix:
Enterprise Edition
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 56
MySQLのコミュニティ版と商用版
MySQL はデュアルライセンスソフトウェアです。ビジネスの変化や状況に応じて、
CommunityやCommercial Editionを使い分けて頂く事で,常に最適なソリューションを選択可能。
• MySQL Community Server
• MySQL Cluster
• MySQL GUI管理ツール
• MySQLコネクタ (JDBC, ODBC, etc.)
• ドキュメント
• フォーラム
Community Edition (GPL)
•Standard Edition
•Enterprise Edition
•MySQL Cluster Carrier Grade Edition
• 商用ライセンス (組み込み用)
• プロフェッショナルサービス
• トレーニング、コンサルティング、サポート
Commercial Edition
コミュニティ版ソフトウェアはGPLv2でソースコードも公開し提供
商用版は、付加価値として技術サポートや管理機能、拡張機能を有償で提供
参考:MySQL Downloads
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 57
MySQL Enterprise Edition のサービスカテゴリー
管理ツール拡張機能 サポート
• 拡張性
• 高可用性
• 統合認証
• 監査
• 暗号化
• ファイヤーウオール
• 透過的データ暗号化
• 監視
• バックアップ
• 開発
• 管理
• マイグレーション
• 技術サポート
• コンサルティングサポート
• オラクル製品との
動作保証
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 58
MySQL Editions
Standard Edition Enterprise Edition Cluster CGE
機能概要
MySQL Database ✔ ✔ ✔
MySQL Connectors ✔ ✔ ✔
MySQL Replication ✔ ✔ ✔
MySQL Router ✔ ✔
MySQL Partitioning ✔ ✔
Storage Engine: MyISAM, InnoDB ✔ ✔ ✔
Storage Engine: NDB (ndbcluster) ✔
MySQL Workbench SE/EE* ✔ ✔ ✔
MySQL Enterprise Monitor* ✔ ✔
MySQL Enterprise Backup* ✔ ✔
MySQL Enterprise Authentication (外部認証サポート)* ✔ ✔
MySQL Enterprise TDE (Transparent Data Encryption)* ✔ ✔
MySQL Enterprise Encryption (非対称暗号化)* ✔ ✔
MySQL Enterprise Firewall (SQLインジェクション対策)* ✔ ✔
MySQL Enterprise Audit (ポリシーベース監査機能)* ✔ ✔
MySQL Enterprise Scalability (スレッドプール)* ✔ ✔
MySQL Enterprise High Availability (MySQL Group Replication)* ✔ ✔
Oracle Enterprise Manager for MySQL * ✔ ✔
MySQL Cluster Manager (MySQL Cluster管理)* ✔
MySQL Cluster Geo-Replication ✔
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 59
MySQL Editions
Standard Edition Enterprise Edition Cluster CGE
Oracle Premium Support
24時間365日サポート ✔ ✔ ✔
インシデント数無制限 ✔ ✔ ✔
ナレッジベース ✔ ✔ ✔
バグ修正&パッチ提供 ✔ ✔ ✔
コンサルティングサポート ✔ ✔ ✔
オラクル製品との動作保証
Oracle Linux、Oracle Solaris、Oracle VM ✔ ✔ ✔
Oracle Clusterware、Oracle Solaris Cluster ✔ ✔
Oracle Enterprise Manager ✔ ✔
Oracle GoldenGate ✔ ✔
Oracle Data Integrator ✔ ✔
Oracle Fusion Middleware ✔ ✔
Oracle Secure Backup ✔ ✔
Oracle Audit Vault and Database Firewall ✔ ✔
Oracle OpenStack for Oracle Linux/Oracle Solaris ✔ ✔
※最新の対比表は、MySQL Editionsのサイトを参照下さい
InnoDB Clusterの構成や設定
等も無制限で相談頂けます。
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 60
MySQL Enterprise Edition管理ツールと拡張機能概要
目的 MySQL Enterprise Edition 概要
TCO削減 MySQL Enterprise Monitor 複数サーバの一括管理、クエリ性能分析
TCO削減 Oracle Enterprise Manager for MySQL Oracle Enterprise ManagerからMySQLを統合管理可能
TCO削減と最適化 Oracle Premier Support 24x7, インシデント無制限、コンサルティングサポート
品質維持 MySQL Enterprise Scalability Thread Poolプラグインによる性能拡張性の向上
機会損失対策 MySQL Enterprise Backup 高速なオンラインバックアップ、ポイントインタイムリカバリ
セキュリティ
コンプライアンス
MySQL Enterprise Authentication LDAPやWindows Active Directoryとの統合認証と管理
セキュリティ
コンプライアンス
MySQL Enterprise TDE データベースオブジェクトの透過的暗号化
セキュリティ
コンプライアンス
MySQL Enterprise Audit ユーザ処理の監査、Oracle DBと同じツールで管理可能
セキュリティ
コンプライアンス
MySQL Enterprise Encryption 非対称暗号化(公開鍵暗号)の業界標準機能を提供
セキュリティ
コンプライアンス
MySQL Enterprise Firewall SQLインジェクション対策
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)

More Related Content

What's hot

Innodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライドInnodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライドYasufumi Kinoshita
 
binary log と 2PC と Group Commit
binary log と 2PC と Group Commitbinary log と 2PC と Group Commit
binary log と 2PC と Group CommitTakanori Sejima
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法Kumazaki Hiroki
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介AdvancedTechNight
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことyoku0825
 
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)Takanori Sejima
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニングyoku0825
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化Kumazaki Hiroki
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 Hiroshi Ito
 
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技yoku0825
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーyoku0825
 
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBWhat's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBMikiya Okuno
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupLocondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupShinya Sugiyama
 

What's hot (20)

Innodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライドInnodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライド
 
binary log と 2PC と Group Commit
binary log と 2PC と Group Commitbinary log と 2PC と Group Commit
binary log と 2PC と Group Commit
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
 
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBWhat's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupLocondo 20190215@ec tech_group
Locondo 20190215@ec tech_group
 

Similar to MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)

20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会yoyamasaki
 
20190530 osc hokkaido_public
20190530 osc hokkaido_public20190530 osc hokkaido_public
20190530 osc hokkaido_publicDAISUKE INAGAKI
 
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama Insight Technology, Inc.
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能Ryusuke Kajiyama
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQLRyusuke Kajiyama
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0Ryusuke Kajiyama
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQLyoyamasaki
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20Ryusuke Kajiyama
 
MySQL 開発最新動向
MySQL 開発最新動向MySQL 開発最新動向
MySQL 開発最新動向yoyamasaki
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介Shinya Sugiyama
 
20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...
20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...
20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...Insight Technology, Inc.
 
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL ShellもあるんですMachiko Ikoma
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要yoyamasaki
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLRyusuke Kajiyama
 
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索yoyamasaki
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかChihiro Ito
 
Oracle Cloud MySQL Service
Oracle Cloud MySQL ServiceOracle Cloud MySQL Service
Oracle Cloud MySQL ServiceShinya Sugiyama
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 

Similar to MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017) (20)

20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会
 
20190530 osc hokkaido_public
20190530 osc hokkaido_public20190530 osc hokkaido_public
20190530 osc hokkaido_public
 
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQL
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
 
MySQL 開発最新動向
MySQL 開発最新動向MySQL 開発最新動向
MySQL 開発最新動向
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介
 
20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...
20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...
20170622_MySQL最新情報 ~MySQL 8.0 開発状況、MySQL InnoDB Cluster、などのご紹介~ by 日本オラクル株式会社...
 
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
 
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
 
Oracle GoldenGate Cloud Serviceユーザーズガイド
Oracle GoldenGate Cloud ServiceユーザーズガイドOracle GoldenGate Cloud Serviceユーザーズガイド
Oracle GoldenGate Cloud Serviceユーザーズガイド
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
 
Oracle Cloud MySQL Service
Oracle Cloud MySQL ServiceOracle Cloud MySQL Service
Oracle Cloud MySQL Service
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 

More from Shinya Sugiyama

MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較Shinya Sugiyama
 
MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較Shinya Sugiyama
 
MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較Shinya Sugiyama
 
MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較Shinya Sugiyama
 
MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理Shinya Sugiyama
 
Locondo 20190703@inno db_cluster
Locondo 20190703@inno db_clusterLocondo 20190703@inno db_cluster
Locondo 20190703@inno db_clusterShinya Sugiyama
 
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDODB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDOShinya Sugiyama
 
MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要Shinya Sugiyama
 
MySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーションMySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーションShinya Sugiyama
 
Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7Shinya Sugiyama
 
Multi thread slave_performance_on_opc
Multi thread slave_performance_on_opcMulti thread slave_performance_on_opc
Multi thread slave_performance_on_opcShinya Sugiyama
 
db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアShinya Sugiyama
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003Shinya Sugiyama
 
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)Shinya Sugiyama
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良Shinya Sugiyama
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)Shinya Sugiyama
 
MySQL Fabric with OpenStack Nova
MySQL Fabric with OpenStack NovaMySQL Fabric with OpenStack Nova
MySQL Fabric with OpenStack NovaShinya Sugiyama
 
My sql security (暗号化)
My sql security (暗号化) My sql security (暗号化)
My sql security (暗号化) Shinya Sugiyama
 

More from Shinya Sugiyama (20)

MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較
 
MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較
 
MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較
 
MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較
 
MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理
 
Locondo 20190703@inno db_cluster
Locondo 20190703@inno db_clusterLocondo 20190703@inno db_cluster
Locondo 20190703@inno db_cluster
 
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDODB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
 
MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要
 
MySQL Partition Engine
MySQL Partition EngineMySQL Partition Engine
MySQL Partition Engine
 
MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017
 
MySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーションMySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーション
 
Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7
 
Multi thread slave_performance_on_opc
Multi thread slave_performance_on_opcMulti thread slave_performance_on_opc
Multi thread slave_performance_on_opc
 
db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストア
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003
 
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)
 
MySQL Fabric with OpenStack Nova
MySQL Fabric with OpenStack NovaMySQL Fabric with OpenStack Nova
MySQL Fabric with OpenStack Nova
 
My sql security (暗号化)
My sql security (暗号化) My sql security (暗号化)
My sql security (暗号化)
 

MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)

  • 1. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Clusterによる高可用性の実現 日本オラクル株式会社 MySQL Global Business Unit Master Principal Sales Consultant/Shinya Sugiyama Copyright © 2017, Oracle and/or its affiliates. All rights reserved. db tech showcase Tokyo 2017 / Session:B21 Date: 2017/09/06
  • 2. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメントするも のではない為、購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、 弊社の裁量により決定されます。 2
  • 3. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda 3 InnoDBクラスタのご紹介 コンポーネント セットアップ、監視、および管理 アーキテクチャー 今後の機能拡張 1 2 3 4 5
  • 4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda 4 InnoDBクラスタのご紹介 コンポーネント セットアップ、監視、および管理 アーキテクチャー 今後の機能拡張 1 2 3 4 5
  • 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | InnoDB Cluster 5 “安定したサービスレベル、機会損失を避ける為に、 高可用性は、MySQLにとっても最も重要な中核機能の一つです” 機会損失 顧客満足度低下 ダウンタイム $ InnoDB Clusterで更に高いレベルの可用性をサポートします!!
  • 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 6 MySQL InnoDB Cluster: ビジョン • 統合製品:MySQL -全てのコンポーネントを同時開発 -全てのコンポーネントを同時検証 -一つのパッケージとして提供 • 使い易さ -統合クライアント:MySQLシェル -容易なパッケージング -統合オーケストレーション -同種サーバー群 • 新しい技術と柔軟性 - SQLとNoSQL処理が可能 -非同期API (mysqlx, protobuf) -開発フレンドリー • 参照/書き込みのスケールアウト -シャードされたクラスタ - N個のレプリカセットの連合システム クロスシャード操作のサポート -各レプリカセットは各シャードを管理 “高可用性とスケーリング機能を包括的に備えた単一製品として、 使い易いエンドツーエンドの統合ソリューションを提供”
  • 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Connector Application MySQL Router MySQL Connector Application MySQL Router MySQL Shell MySQL Connector Application MySQL Router MySQL Connector Application MySQL Router MySQL InnoDB Cluster: 全体的アーキテクチャー MySQL InnoDB cluster MySQL Enterprise Monitor … 7 Group Replication MySQL Server 5.7.17 or higher MySQL Shell 1.0.9 or higher MySQL Router 2.1.3 or higher
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | M M M MySQL Connector Application MySQL Router MySQL Connector Application MySQL Router MySQL Shell HA Group Replication 8 アプリケーションは MySQL Routerに接続 Group Replicationによる高可用性 グループとメタデータの管理 +-------------------------------+ | Database | +-------------------------------+ | information_schema | | mysql | | mysql_innodb_cluster_metadata | | performance_schema | | sys | +-------------------------------+ MySQL InnoDB Cluster: 内部的アーキテクチャー mysql_innodb_cluster_metadata.* performance_schema.replication_group_members performance_schema.replication_group_member_stats mysql-js> cluster.status() { "clusterName": “NewAppCluster", "defaultReplicaSet": { "address": “hanode1:3306", "status": "ONLINE", MySQL Shellで設定管理 JavaScript, python
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda 9 InnoDBクラスタのご紹介 コンポーネント セットアップ、監視、および管理 アーキテクチャー 今後の機能拡張 1 2 3 4 5
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | コンポーネント# 1 MySQL Group Replication MySQLに標準実装された、高可用性のレプリカセット
  • 11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 11 asynchronous (native) Since 3.23 (2001-01) semi-synchronous (plugin) Since 5.5 (2010-12) Multi-Source (native) Since 5.7(2015-10) group replication (plugin) 5.7.17 (2016-12-12) MySQLレプリケーション M S transactions M S transactions M MM transactions, membership, coordination M S transactions MS 参考: https://dev.mysql.com/doc/refman/5.7/en/group-replication-primary-secondary-replication.html
  • 12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. MySQL Group Replicationとは? • レプリケーション機能をベースとした、MySQLのマニュアルフェイルオーバー 処理が不要な高可用性ソリューション • MySQL 5.7.17以降でプラグインとして追加インストール可能 sql> INSTALL PLUGIN group_replication SONAME 'group_replication.so'; • グループメンバーの管理と障害検知を自動化 – 自動的なサーバーのフェイルオーバー – 構成の拡張/縮小の柔軟性 – 単一障害点無し – 自動的にレプリケーションを再構成 • プラットフォーム対応(MySQL準拠) – Linux, Windows, Solaris, OSX, FreeBSD 12 Application MySQL Nodes
  • 13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. • シングルプライマリーモード (デフォルト) – グループ内の1ノードだけが読み書き可能な状態 – 通常のレプリケーション同様に利用する事が可能 https://dev.mysql.com/doc/refman/5.7/en/group-replication-single-primary-mode.html • マルチプライマリーモード (マルチマスター) – Active/Active構成でどのノードからでも更新可能 – COMMIT先勝ちによるトランザクション競合の自動解消 https://dev.mysql.com/doc/refman/5.7/en/group-replication-multi-primary-mode.html 13 MySQL Group Replicationとは?
  • 14. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 参考:シングルプライマリーモード • プライマリサーバーのメンバーは、SQL文を実行することによって確認可能 14 mysql> SELECT * FROM performance_schema.replication_group_members; +-------------------------+------------------------------------+-------------+-----------+------------+ |CHANNEL_NAME |MEMBER_ID |MEMBER_HOST |MEMBER_PORT|MEMBER_STATE| +-------------------------+------------------------------------+-------------+-----------+------------+ |group_replication_applier|919a7d77-9ff3-11e6-acb8-080027d65c57|replications | 3310|ONLINE | |group_replication_applier|9c8e6f77-9ff3-11e6-b1d1-080027d65c57|replications | 3320|ONLINE | |group_replication_applier|ac0ec52b-9ff3-11e6-b801-080027d65c57|replications | 3330|ONLINE | +-------------------------+------------------------------------+-------------+-----------+------------+ mysql> SELECT * FROM performance_schema.global_status WHERE VARIABLE_NAME='group_replication_primary_member'; +----------------------------------+--------------------------------------+ | VARIABLE_NAME | VARIABLE_VALUE | +----------------------------------+--------------------------------------+ | group_replication_primary_member | 919a7d77-9ff3-11e6-acb8-080027d65c57 | +----------------------------------+--------------------------------------+
  • 15. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. GTIDをフルサポート • 全グループメンバーは同じUUID、グループ名を持つ 15 M M M M M INSERT y; Will have GTID: group_name:2 INSERT x; Will have GTID: group_name:1 mysql> SET GLOBAL group_replication_group_name= "00000000-1111-2222-3333-123456789ABC";
  • 16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. GTIDをフルサポート • グループ外のサーバーからグループにレプリケート可能 • グローバル識別子を維持 16 M M M M M 競合も検出される
  • 17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. GTIDをフルサポート • グループからグループ外のサーバーにレプリケート可能 • グローバル識別子は維持 17 M M M M M
  • 18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | グループレプリケーションステータス • プラグインをロードし、レプリケーションをスタート • グループ・レプリケーションのグループメンバーの状況を確認 18 mysql> SET GLOBAL group_replication_group_name= "00000000-1111-2222-3333-123456789abc"; mysql> START GROUP_REPLICATION; mysql> SELECT * FROM performance_schema.replication_group_members¥G *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier MEMBER_ID: 698f11c8-0397-11e7-aae1-080027d65c57 MEMBER_HOST: replications MEMBER_PORT: 63301 MEMBER_STATE: ONLINE *************************** 2. row *************************** CHANNEL_NAME: group_replication_applier MEMBER_ID: 713ad572-0397-11e7-aca3-080027d65c57 MEMBER_HOST: replications MEMBER_PORT: 63302 MEMBER_STATE: ONLINE ... https://dev.mysql.com/doc/refman/5.7/en/group-replication-replication-group-members.html
  • 19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 参考: MEMBER_STATE 19 フィールド値 概要 グループの同期状態 ONLINE メンバはグループメンバとして完全に機能する準備が整っています。 クライアントは接続してトランザクションの実行を開始できます。 Yes RECOVERING メンバーはアクティブなグループメンバーになる過程にあり、ドナーか らステータスの情報を受け取り、復旧プロセスを進めている状況です。 No OFFLINE プラグインはロードされていますが、メンバーはどのグループにも属し ていない状況。 No ERROR 回復フェーズ、または変更を適用している時にエラーが発生した状態。 No UNREACHABLE 特定のサーバーがクラッシュ若しくは切断されて、到達不能であると 疑われる時に、サーバーの状態を「到達不能」として示します。 No
  • 20. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | グループレプリケーションステータス • グループによってコミットされたトランザクション、キューの増加状況、 競合の検出数、検査されたトランザクションの数等を確認出来ます。 20 mysql> SELECT * FROM performance_schema.replication_group_member_stats¥G *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier VIEW_ID: 14896410386000092:7 MEMBER_ID: 78b1d98a-0397-11e7-aef2-080027d65c57 COUNT_TRANSACTIONS_IN_QUEUE: 0 COUNT_TRANSACTIONS_CHECKED: 2 COUNT_CONFLICTS_DETECTED: 0 COUNT_TRANSACTIONS_ROWS_VALIDATING: 0 TRANSACTIONS_COMMITTED_ALL_MEMBERS: 00000000-1111-2222-3333-123456789abc:1-29 LAST_CONFLICT_FREE_TRANSACTION: 00000000-1111-2222-3333-123456789abc:29 1 row in set (0.00 sec) https://dev.mysql.com/doc/refman/5.7/en/group-replication-replication-group-member-stats.html
  • 21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • MySQL Enterprise MonitorにてInnoDB clustersを包括的に監視 – トポロジビュー , 詳細なメトリックとグラフ, ベストプラクティスアドバイザー • Group Replicationのモニタリング 21 グループレプリケーションステータス
  • 22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 必要要件 • 現状では、IPv4のみサポート • 低レイテンシ、広帯域の安定したネットワーク • InnoDBストレージエンジン • 全てのテーブルに主キーが必要※ (Certification処理で必要) • バイナリログを出力し、フォーマットはROW • グローバルトランザクション識別子(GTID)有効 • その他、以下の設定 – master_info_repository=TABLE – relay_log_info_repository=TABLE – log_slave_updates=ON – transaction_write_set_extraction=XXHASH64 22 参考 : https://dev.mysql.com/doc/refman/5.7/en/group-replication-requirements.html ※ Non-null unique keyでも対応可能
  • 23. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 制限事項 • グループ内の最大メンバー数は9メンバー • バイナリログのチェックサムは未サポート(binlog_checksum=NONE を設定) • セーブポイントは使用できない ( < MySQL5.7.19 ) • グループ内のサーバーとの連携処理において、LOCK TABLES、UNLOCK TABLES、GET_LOCK関数は考慮されない 23 参考 : https://dev.mysql.com/doc/refman/5.7/en/group-replication-limitations.html
  • 24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 追加制限事項 マルチマスターモードの場合 –スキーマ変更処理中は別のサーバーから同じオブジェクトに対して DML, DDLによりオブジェクトやデータを変更できない http://lefred.be/content/mysql-group-replication-videocast-1/ –カスケードオプション付きの外部キー制約は未サポート –SERIALIZABLE分離レベルは未サポート – 他のメンバーとトランザクションが競合した場合、COMMIT時にトランザクションが 破棄される可能性があることを考慮して、トランザクションを適切なサイズに保ち、 アプリケーションでリトライ処理等を実装 – グループ内のサーバーとの連携処理において、ギャップロックを考慮して READ COMMITED分離レベルを推奨(デフォルトはREPEATABLE READ) 24
  • 25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | その他の考慮事項 • スプリットブレイン等を考慮して、3台以上の奇数でのグループ構成を推奨 – 現時点では、スプリットブレイン発生時の少数グループは読み取り専用モードになる (3台で構成し、2台と1台のグループに分断された場合、2台のグループはグループ・ レプリケーションとして稼働し続け、1台のグループは読み取り専用モードになる) 25 https://dev.mysql.com/doc/refman/5.7/en/group-replication-network-partitioning.html Group Size Majority Instant Failures Tolerated 1 1 0 2 2 0 3 2 1 4 3 1 5 3 2 6 4 2 7 4 3 例) ネットワークパーティショニング
  • 26. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | コンポーネント# 2 MySQL Router 透過的にアプリケーション接続をルーティング
  • 27. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Router • 透過的にクライアント接続をルーティング – ロードバランシング (R/O) – アプリケーション接続フェイルオーバー (R/W) • ステートレスなデザインにより、容易にクライアント 接続のHAルーティングが可能 – ローカルルータはアプリスタックの一部として機能 27 透過的な接続ルーティング ” MySQL Routerを使用する事で、スタンドアロンのMySQLインスタンスを既存の アプリケーションに影響を与えずに、高可用性で分散処理可能なInnoDBクラスタ に容易に移行する事が可能!”
  • 28. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Router: 2.1 • InnoDBクラスタをネイティブサポート – グループレプリケーションの構成を認識 – 各メンバーに格納されたメタデータスキーマを利用して、 自身をブートストラップし、InnoDBクラスタのクライアント ルーティングを設定 • InnoDBクラスタへのルーティングを動的にコントロール可能 – マルチマスター及びシングルマスターモードをサポート • Core improvements – 内蔵されたKeyringによる、簡単で安全なパスワード管理 28 App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate “新しいmetadata_cacheプラグインを備えたMySQL Router 2.1では、 透過的なクライアント接続のルーティングとInnoDBクラスタへのフェールオーバーをサポート!“
  • 29. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 補足:MySQL Router設定ファイル 29 -bash-4.2$ mysqlrouter --bootstrap root@server1:3306 --user=mysql -bash-4.2$ cat /home/mysql/mysqlrouter/mysqlrouter.conf # File automatically generated during MySQL Router bootstrap [DEFAULT] name=system user=mysql keyring_path=/home/mysql/mysql-router/data/keyring master_key_path=/home/mysql/mysql-router/mysqlrouter.key [logger] level = INFO [metadata_cache:testCluster] router_id=5 bootstrap_server_addresses=mysql://server1:3306,mysql://server2:3306,mysql://server3:3306 user=mysql_router5_je3r5179e17p metadata_cluster=testCluster ttl=300 [routing:testCluster_default_rw] bind_address=0.0.0.0 bind_port=6446 destinations=metadata-cache://testCluster/default?role=PRIMARY mode=read-write protocol=classic [routing:testCluster_default_ro] bind_address=0.0.0.0 bind_port=6447 destinations=metadata-cache://testCluster/default?role=SECONDARY mode=read-only protocol=classic [routing:testCluster_default_x_rw] bind_address=0.0.0.0 bind_port=64460 destinations=metadata-cache://testCluster/default?role=PRIMARY mode=read-write protocol=x [routing:testCluster_default_x_ro] bind_address=0.0.0.0 bind_port=64470 destinations=metadata-cache://testCluster/default?role=SECONDARY mode=read-only protocol=x 起動時にbootstrap_server_addressesに リストアップされている、サーバーにアクセスし Group Replicationの構成情報を取得 書き込み処理の分散 読み込み処理の分散 Xプロトコルをサポート
  • 30. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | コンポーネント# 3 MySQL Shell 開発、セットアップ、管理、オーケストレーション、 および監視用に対応した単一ツール
  • 31. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Shell 31 全ての運用管理タスクの為に、統一された単一クライアント App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate • 多言語対応: JavaScript, Python, and SQL – 容易なスクリプト化 • ドキュメントとリレーショナルモデルの両方をサポート • 開発および管理用に完全なAPIを提供 ”MySQL Shell provides the developer and DBA with a single intuitive, flexible, and powerful interface for all MySQL related tasks!” [root@misc01 admin]# mysqlsh --help | egrep -i "Start in" --sql Start in SQL mode using a node session. --sqlc Start in SQL mode using a classic session. --js Start in JavaScript mode. --py Start in Python mode. [root@misc01 admin]# mysqlsh -f setup-innodb-cluster.js
  • 32. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Shell:管理用API • mysql-js> dba.help() • グローバル変数 ‘dba’でMySQLの管理用APIにアクセス可能 • DBA管理オペレーション – Manage MySQL InnoDB clusters • クラスター作成 • MySQLインスタンスの検証 • MySQLインスタンスの構築 • クラスターの状況を確認 • MySQLインスタンスの開始・停止 • クラスタの構成変更 データベース管理者向けインターフェース App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate 32
  • 33. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 33 mysql-js> dba.help() The global variable 'dba' is used to access the MySQL AdminAPI functionality and perform DBA operations.It is used for managing MySQL InnoDB clusters. The following properties are currently supported. - verbose Enables verbose mode on the Dba operations. The following functions are currently supported. - createCluster Creates a MySQL InnoDB cluster. - deleteLocalInstance Deletes an existing MySQL Server instance on localhost. - deployLocalInstance Creates a new MySQL Server instance on localhost. - dropMetadataSchema Drops the Metadata Schema. - getCluster Retrieves a cluster from the Metadata Store. - help Provides help about this class and it's members - killLocalInstance Kills a running MySQL Server instance on localhost. - resetSession Sets the session object to be used on the Dba operations. - startLocalInstance Starts an existing MySQL Server instance on localhost. - stopLocalInstance Stops a running MySQL Server instance on localhost. - validateInstance Validates an instance for usage in Group Replication. For more help on a specific function use dba.help('<functionName>') e.g. dba.help('deployLocalInstance') 1台のサーバーで検証する場合は、 Sandboxモードが利用可能。 dba.deploySandboxInstance(3310) 参照: https://dev.mysql.com/doc/dev/mysqlsh-api-javascript/1.0/annotated.html
  • 34. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda 34 InnoDBクラスタのご紹介 コンポーネント セットアップ、監視、および管理 アーキテクチャー 今後の機能拡張 1 2 3 4 5
  • 35. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: MySQLインスタンスの設定確認 shell> mysqlsh root@localhost mysql-js> dba.checkInstanceConfiguration(‘localhost:3306’) mysql-js> dba.configureLocalInstance(‘localhost:3306’) 35 参照: https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-working-with-production-deployment.html
  • 36. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: InnoDB Clusterの設定 mysql-js> cluster = dba.createCluster(‘NewAppCluster') mysql-js> cluster.addInstance('root@hanode1:3306') mysql-js> cluster.addInstance('root@hanode2:3306') mysql-js> cluster.addInstance('root@hanode3:3306') # to persist the config changes on each machine shell> mysqlsh root@localhost mysql-js> dba.configureLocalInstance(‘localhost:3306’) 36
  • 37. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: MySQL Routerの設定 shell> mysqlrouter --bootstrap hanode1:3306 shell> mysqlrouter & shell> mysqlsh root@localhost:6446 37
  • 38. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: InnoDB Clusterの設定確認 shell> mysqlsh root@localhost:6446 mysql-js> cluster = dba.getCluster() mysql-js> cluster.status() 38
  • 39. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: InnoDB Clusterのステータス確認 mysql-js> cluster.status() { "clusterName": "mylabcluster", "defaultReplicaSet": { "name": "default", "status": "OK", "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.", "topology": { "hanode1:3306": { "address": "hanode1:3306", "mode": "R/W", "readReplicas": {}, "role": "HA", "status": "ONLINE" }, … 39
  • 40. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | DEMO:シングルマスターモード 40 PORT: 3310 PORT: 3320 PORT: 3330 dba.deploySandboxInstance(3310, {password:'Welcome1'}) dba.deploySandboxInstance(3320, {password:'Welcome1'}) dba.deploySandboxInstance(3330, {password:'Welcome1'}) cluster = dba.createCluster('singleCluster') cluster.addInstance('root:Welcome1@localhost:3320') cluster.addInstance('root:Welcome1@localhost:3330') mysqlrouter --bootstrap root:Welcome1@localhost:3310 --force --user=mysql PORT: 3310 PORT: 3320 PORT: 3330 ① localhostに3つインスタンスを構築 ② グループレプリケーション設定 ③ MySQL Routerの初期設定 ④ MySQL Router経由の接続とPRIMARY障害発生時の挙動確認 mysql -u root -pWelcome1 -h 127.0.0.1 -P 6446 -e "select 'R-Port:6446',@@hostname,@@port;" mysql -u root -pWelcome1 -h 127.0.0.1 -P 6447 -e "select 'R-Port:6447',@@hostname,@@port;"
  • 41. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | DEMO:マルチマスターモード 41 PORT: 3350 PORT: 3360 PORT: 3370 dba.deploySandboxInstance(3350, {password:'Welcome1'}) dba.deploySandboxInstance(3360, {password:'Welcome1'}) dba.deploySandboxInstance(3370, {password:'Welcome1'}) cluster = dba.createCluster('multiCluster', {multiMaster:true,force:true}) cluster.addInstance('root:Welcome1@localhost:3360') cluster.addInstance('root:Welcome1@localhost:3370') mysqlrouter --bootstrap root:Welcome1@localhost:3350 --force --user=mysql PORT: 3350 PORT: 3360 PORT: 3370 ① localhostに3つインスタンスを構築 ② グループレプリケーション設定 ③ MySQL Routerの初期設定 ④ MySQL Router経由の接続とPRIMARY障害発生時の挙動確認 mysql -u root -pWelcome1 -h 127.0.0.1 -P 6446 -e "select 'R-Port:6446',@@hostname,@@port;"
  • 42. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda 42 InnoDBクラスタのご紹介 コンポーネント セットアップ、監視、および管理 アーキテクチャー 今後の機能拡張 1 2 3 4 5
  • 43. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | シングルデータセンター構成 43 Application Servers MySQL Router in Stack MySQL Database Service Group Replication
  • 44. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | マルチデータセンター構成 (シングルグループ) 44 MySQL Database Service Group Replication Data Center 1 Data Center 2 Clients データセンター間の ネットワークLatencyに依存
  • 45. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 局地災害対応構成 45 Async Replication Active Data Center Backup Data Center Clients 局地災害発生時に、 アプリケーションの接続を 変更し対応
  • 46. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | アクティブ/アクティブ マルチデータセンター構成 46 Async Replication Regional Data Center Regional Data Center Regional ClientsRegional Clients クライアントの接続は、 地域毎のAPサーバーに それぞれ接続する構成 mysql_innodb_cluster_metadata が同期されないようにレプリケー ション除外設定する必要あり ※ MySQL8.0以降推奨
  • 47. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda 47 InnoDBクラスタのご紹介 コンポーネント セットアップ、監視、および管理 アーキテクチャー 今後の機能拡張 1 2 3 4 5
  • 48. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 48 MySQL HA Out-Of-Box HA Read Scale-Out Async Replication + Auto Failover Write Scale-Out ShardingStep1 Step2 Step3 * InnoDB Cluster GA!
  • 49. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | S1 S2 S3 S4 S… M M M MySQL Connector Application MySQL Router MySQL Connector Application MySQL Router MySQL Shell HA MySQL InnoDB Cluster: Architecture – Step 2 Group Replication Read-Only Slaves 49 【現状】 グループレプリケーションをマスターとして参照して いるスレーブは、参照先のノードがダウンした場合、 マニュアルでCHANGE MASTERを実行し、 他のノードに参照先を変更する必要有り。 【機能拡張】 グループレプリケーションをマスターとして参照して いるスレーブは、参照先のノードがダウンした場合、 自動的に稼働中の他のノードに参照先を変更。
  • 50. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | S1 S2 S3 S4 S… M M M MySQL Connector Application MySQL Router MySQL Connector Application MySQL Router MySQL Shell HA ReplicaSet1 S1 S2 S3 S4 S… M M M MySQL Connector Application MySQL Router HA ReplicaSet2 ReplicaSet3 MySQL Connector Application MySQL Router MySQL InnoDB Cluster: Architecture – Step 3 S1 S2 S3 S4 M M M HA 50 Groupを分ける事による、 書き込みのシャーディング
  • 51. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Summary 可用性 管理工数 拡張性 InnoDB Clusterは、データベースの可用性をGroup Replication, アプリケーションの接続をMySQL Routerにより冗長化し、 高可用性を実現しサービスの安定稼働をサポートします。 管理面をサポートするMySQL Shellを利用する事で、InnoDB Cluster のコンポーネントである、Group Replicationの設定を容易に行う事 が出来ます。スクリプト化しやすい為、プロビジョニングの自動化等 でも活用する事が可能です。監視では、MEMも活用頂けます。 InnoDB Clusterは、参照処理と更新処理のスケールアウトの為に、 更なる機能拡張を進めています。現状では、MySQL Clusterが 書き込みに対する主なソリューションとなっていますが、 将来的には、InnoDB Clusterも対応可能になる予定です。
  • 52. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 52 30日間トライアル MySQL Enterprise Edition & Cluster CGEの試使用 • Oracle Software Delivery Cloud http://edelivery.oracle.com/ • 製品パックを選択: "Product" にMySQLと入力し、 OSを選択し"Continue" • 製品マニュアル http://dev.mysql.com/doc/index- enterprise.html
  • 53. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Oracle Cloud: MySQL Cloud Service • MySQL Enterprise Edition • MySQL Cloudインスタンスを管理するWebベースのコンソール • セルフサービスプロビジョニング • 柔軟なスケーラビリティ • 多層セキュリティ • 統一されたクラウド管理 • Oracle PaaSとIaaSの統合 • プレミアテクニカルサポートを包括 53 InnoDB clusters Option – coming soon! Oracle Cloud MySQL Serviceトライアル https://cloud.oracle.com/ja_JP/mysql 無償トライアルの申し込み方法 https://faq.oracle.co.jp/ci/fattach/get/2851/147684009 2/redirect/1/filename/PAAS_TrialGuide_20161014.pdf
  • 54. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 54 有難うございました
  • 55. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 55 Appendix: Enterprise Edition
  • 56. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 56 MySQLのコミュニティ版と商用版 MySQL はデュアルライセンスソフトウェアです。ビジネスの変化や状況に応じて、 CommunityやCommercial Editionを使い分けて頂く事で,常に最適なソリューションを選択可能。 • MySQL Community Server • MySQL Cluster • MySQL GUI管理ツール • MySQLコネクタ (JDBC, ODBC, etc.) • ドキュメント • フォーラム Community Edition (GPL) •Standard Edition •Enterprise Edition •MySQL Cluster Carrier Grade Edition • 商用ライセンス (組み込み用) • プロフェッショナルサービス • トレーニング、コンサルティング、サポート Commercial Edition コミュニティ版ソフトウェアはGPLv2でソースコードも公開し提供 商用版は、付加価値として技術サポートや管理機能、拡張機能を有償で提供 参考:MySQL Downloads
  • 57. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 57 MySQL Enterprise Edition のサービスカテゴリー 管理ツール拡張機能 サポート • 拡張性 • 高可用性 • 統合認証 • 監査 • 暗号化 • ファイヤーウオール • 透過的データ暗号化 • 監視 • バックアップ • 開発 • 管理 • マイグレーション • 技術サポート • コンサルティングサポート • オラクル製品との 動作保証
  • 58. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 58 MySQL Editions Standard Edition Enterprise Edition Cluster CGE 機能概要 MySQL Database ✔ ✔ ✔ MySQL Connectors ✔ ✔ ✔ MySQL Replication ✔ ✔ ✔ MySQL Router ✔ ✔ MySQL Partitioning ✔ ✔ Storage Engine: MyISAM, InnoDB ✔ ✔ ✔ Storage Engine: NDB (ndbcluster) ✔ MySQL Workbench SE/EE* ✔ ✔ ✔ MySQL Enterprise Monitor* ✔ ✔ MySQL Enterprise Backup* ✔ ✔ MySQL Enterprise Authentication (外部認証サポート)* ✔ ✔ MySQL Enterprise TDE (Transparent Data Encryption)* ✔ ✔ MySQL Enterprise Encryption (非対称暗号化)* ✔ ✔ MySQL Enterprise Firewall (SQLインジェクション対策)* ✔ ✔ MySQL Enterprise Audit (ポリシーベース監査機能)* ✔ ✔ MySQL Enterprise Scalability (スレッドプール)* ✔ ✔ MySQL Enterprise High Availability (MySQL Group Replication)* ✔ ✔ Oracle Enterprise Manager for MySQL * ✔ ✔ MySQL Cluster Manager (MySQL Cluster管理)* ✔ MySQL Cluster Geo-Replication ✔
  • 59. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 59 MySQL Editions Standard Edition Enterprise Edition Cluster CGE Oracle Premium Support 24時間365日サポート ✔ ✔ ✔ インシデント数無制限 ✔ ✔ ✔ ナレッジベース ✔ ✔ ✔ バグ修正&パッチ提供 ✔ ✔ ✔ コンサルティングサポート ✔ ✔ ✔ オラクル製品との動作保証 Oracle Linux、Oracle Solaris、Oracle VM ✔ ✔ ✔ Oracle Clusterware、Oracle Solaris Cluster ✔ ✔ Oracle Enterprise Manager ✔ ✔ Oracle GoldenGate ✔ ✔ Oracle Data Integrator ✔ ✔ Oracle Fusion Middleware ✔ ✔ Oracle Secure Backup ✔ ✔ Oracle Audit Vault and Database Firewall ✔ ✔ Oracle OpenStack for Oracle Linux/Oracle Solaris ✔ ✔ ※最新の対比表は、MySQL Editionsのサイトを参照下さい InnoDB Clusterの構成や設定 等も無制限で相談頂けます。
  • 60. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 60 MySQL Enterprise Edition管理ツールと拡張機能概要 目的 MySQL Enterprise Edition 概要 TCO削減 MySQL Enterprise Monitor 複数サーバの一括管理、クエリ性能分析 TCO削減 Oracle Enterprise Manager for MySQL Oracle Enterprise ManagerからMySQLを統合管理可能 TCO削減と最適化 Oracle Premier Support 24x7, インシデント無制限、コンサルティングサポート 品質維持 MySQL Enterprise Scalability Thread Poolプラグインによる性能拡張性の向上 機会損失対策 MySQL Enterprise Backup 高速なオンラインバックアップ、ポイントインタイムリカバリ セキュリティ コンプライアンス MySQL Enterprise Authentication LDAPやWindows Active Directoryとの統合認証と管理 セキュリティ コンプライアンス MySQL Enterprise TDE データベースオブジェクトの透過的暗号化 セキュリティ コンプライアンス MySQL Enterprise Audit ユーザ処理の監査、Oracle DBと同じツールで管理可能 セキュリティ コンプライアンス MySQL Enterprise Encryption 非対称暗号化(公開鍵暗号)の業界標準機能を提供 セキュリティ コンプライアンス MySQL Enterprise Firewall SQLインジェクション対策