SlideShare a Scribd company logo
1 of 59
Download to read offline
What's New inWhat's New in
MySQL 5.7 ReplicationMySQL 5.7 Replication
奥野 幹也
Twitter: @nippondanji
mikiya (dot) okuno (at) gmail (dot) com
@MySQL 5.7 新機能徹底攻略講座
免責事項
本プレゼンテーションにおいて示されている見解は、私
自身の見解であって、オラクル・コーポレーションの見
解を必ずしも反映したものではありません。ご了承くだ
さい。
自己紹介
●
MySQL サポートエンジニア
– 日々のしごと
● トラブルシューティング全般
● Q&A 回答
●
パフォーマンスチューニング
など
●
ライフワーク
– 自由なソフトウェアの普及
● オープンソースではない
● GPL 万歳!!
– 最近はまってる趣味はリカンベント(自転車)
●
ブログ
– 漢のコンピュータ道
– http://nippondanji.blogspot.com/
おかげさまで
新書籍発売と
相成りました。
ありがとうございます!
詳解 MySQL 5.7
止まらぬ進化に乗り遅れないためのテクニカルガイド
● MySQL 5.7 の新機能を網羅的に解説
– 175 の新機能
– WorkLog/Bug Id つき
– コンセプト、仕組み、使い方
●
新機能の理解に必要な前提知識
– 古いバージョンでも適用可能
– アーキテクチャを理解することで
本物の理解を
MySQL 5.7 の
新機能概要
MySQL 5.7 の数多くの新機能
●
実に 150 以上もの新機能が追加された!!
– MySQL 5.7 の新機能完全リスト
https://yakst.com/ja/posts/3037
– yoku0825++
●
レプリケーション関連
●
InnoDB 関連
● オプティマイザー関連
●
セキュリティ関連
●
パフォーマンススキーマ関連
● GIS 関連
● JSON 関連
etc etc...
レプリケーションの新機能
● マルチスレッドスレーブの改良
●
マルチソースレプリケーション
● 準同期レプリケーションの改良
– ロスレスレプリケーション
– パフォーマンスの改善
– ACK を返すスレーブ数の指定
● GTID の改良
– スレーブでの管理が効率化
– 再起動時の GTID 計算方法が効率化
● オンライン操作の拡充
– GTID 有効化
– CHAMGE MASTER の一部
– レプリケーションフィルター
オプティマイザの新機能
● EXPLAIN for CONNECTION
●
JSON EXPLAIN
● コストモデル
– JOIN の順序選択
– 統計情報の正確性
– コストの係数のユーザーによる設定
● GROUP BY
●
FROM 句のサブクエリ
● IN サブクエリ
●
UNION ALL
● ソート
● テンポラリテーブル
InnoDB の新機能
● 一般テーブルスペース
●
テンポラリテーブルの InnoDB 化
● バッファプールのオンラインリサイズ
● UNDO ログの自動トランケート
●
32/64KB ページのサポート
●
REDO ログフォーマットの改善
● バッファプールをダンプする割合の指定
●
ページ統合におけるページ充填率の指定
●
コピーしない ALTER TABLE 操作の増加
InnoDB の新機能 つづき
● 全文検索用プラガブルパーサーのサポート
– ngram あるいは MeCab による日本語の全文検索
● 全文検索の最適化
● 空間インデックスのサポート
● 透過的テーブル圧縮
●
透過的テーブルスペース暗号化
● ダブルライトが不要なとき自動的に無効化
● NUMA サポートの追加
●
InnoDB モニターの有効化方法変更
●
情報スキーマの改良
● デフォルト行フォーマットの指定
InnoDB の新機能
性能改善系
● テンポラリテーブルのための最適化
●
RO トランザクションの性能改善
● RW トランザクションの性能改善
– index->lock の競合改善( SX ロック)
● リードビュー作成の性能改善
●
trx_t のキャッシュ効率改善
● AHI のミューテックス競合改善
● ページクリーナーのマルチスレッド化
●
フラッシュアルゴリズムの改善
●
クラッシュリカバリの性能改善
● ログファイル書き込みの性能改善
●
インデックス作成の高速化
etc
セキュリティ関係の新機能
● パスワード期限の設定
●
ユーザーのロック、アンロック
● SET PASSWORD コマンドの仕様変更
● CREATE USER … IF NOT EXISTS
●
ログイン不可能なユーザーアカウント
●
SSL のセットアップが容易に
– キーファイルの自動生成
– mysql_ssl_rsa_setup
●
透過的テーブルスペース暗号化
●
デフォルトの状態がセキュアに
– test データベースの廃止
– 匿名ユーザーの廃止
– localhost 以外の root の廃止
レプリケーションの概要
バイナリログ リレーログストレージ
エンジン
ストレージ
エンジン
マスター
スレッド
スレーブ I/O
スレッド
スレーブ
SQL スレッド
5. バイナリログ送信
接続スレッド
クライアント
1. COMMIT
2.PREPARE
3.バ
イナ
リログ
更
新
6. 記録
7. 更新を適用
4.COMMIT
マスタースレッドの
改良
バイナリログに対する
グループコミットの調整
● binlog_group_commit_sync_delay
– バイナリログへの同期をする前に待つ時間(マイクロ秒)
– 溜めがあるほうが1回の同期に多くのトランザクションが含
まれる
– レスポンスをわずかに犠牲にすることで、スループットを
向上
● binlog_group_commit_sync_no_delay_count
– 1回の COMMIT に含まれる最大のトランザクション数
グループコミットなし
Tx1
PREPARE
binlog
write
COMMIT
binlog
fsync
時間
Tx2
PREPARE
binlog
write
COMMIT
binlog
fsync
Tx3
PREPARE
binlog
write
COMMIT
binlog
fsync
グループコミットあり
Tx1
PREPARE
binlog
write
COMMIT
時間
Tx2
PREPARE
binlog
write
COMMIT
binlog
fsync
Tx3
PREPARE
binlog
write
COMMIT
メモリ使用効率の改善
● MySQL 5.6 では、マスタースレッドがバイナリログからイベント
を読み取る度にメモリを malloc していた。
– イベントの送信が完了すると free
– 効率が悪い
● MySQL 5.7 ではバッファが十分な場合は使い回す
– バッファが足りない場合は realloc
– 定期的にサイズの見直しをすることでバッファの肥大化を
防止
Mutex 競合の改善
● MySQL 5.6 でバイナリログへのグループコミットが導入された
当初、マスターのクラッシュによってスレーブとの不整合が
起きるバグがあった
– MySQL 5.6.17 で改善
– バイナリログへの R/W が LOCK_log によって守られていた
– write だけでなく fsync についても LOCK_log で保護
● バイナリログへの書き込みとマスタースレッドが LOCK_log
を奪い合う
●
更新処理性能ダウン
● マスタースレッドのスループットダウン
GC 導入当初に生じた
データ整合性の問題
Tx1
マスター
Tx2
Tx3
Tx4
バイナリログ
Tx5
:
スレーブ
Tx1
Tx2
Tx3
リレーログ
:
バイナリログとクラッシュリカバリ
● 2相コミットが行われる条件
– sync_binlog=1
– innodb_support_xa = 1
– ionndb_flush_log_at_trx_commit =1
●
2相コミットの場合のリカバリ処理
– バイナリログの fsync が成功したかどうかでリカバリするか
どうかが決まる
●
バイナリログにトランザクションがあれば永続化
● バイナリログに無ければロールバック
MySQL 5.7 における
LOCK_log 競合の解消
● MySQL 5.6 ではデータ不整合を避けるため LOCK_log で守ら
れた処理が多くなっていた
– R/W, fsync
● MySQL 5.7 では Mutex を分割した
– マスタースレッドが参照するカウンタを追加
● fsync によって更新
●
マスタースレッドが参照
● LOCK_binlog_end_pos で保護
●
マスタースレッドが LOCK_log を取らなくなった
– LOCK_log はバイナリログへの write/fsync を保護
マルチスレッド
スレーブの改良
マルチスレッドスレーブ
( MTS )とは
● 読んで字のごとく、スレーブ側で複数のスレッドを使ってス
レーブのスループットを高める機能
– マスターが複数のスレッドで更新されるのに対し、スレー
ブは単一のスレッドによる更新では、更新性能に差が生じ
てしまう。
– 特に CPU コア数が多く、 IOPS の高いディスクを使ってい
る、 CPU バウンドな環境で顕著。
● MySQL 5.6 から実装
MySQL 5.6 における
MTS の制限
● 並列化の単位はデータベース
– 同じデータベース上の更新は並列化されない
– SQL スレッドが実行中のトランザクションと異なるデータ
ベースを更新するトランザクションは並列化可能
– 複数のデータベースにまたがったトランザクションは不整
合の原因に
– 効果は限定的
MySQL 5.7 の改良
LOGICAL_CLOCK 方式
● マスターで同じグループでコミットされたトランザクションを
スレーブで並列化する方式
●
同一データベースに対する更新を並列化
● スレーブで sync_binlog=1 のとき必須
オーバーラップした
トランザクション
● バイナリログと InnoDB は2相コミット
●
PREPARE → COMMIT の間に若干のタイムラグ
● 同時に PREPARE まで到達したトランザクションはロックの競
合がない
– 並列実行可能
●
バイナリログに追加情報
– last_committed と sequence_number
Tx1
Tx2
PREPARE:l1
PREPARE:l2
COMMIT:s1
オーバーラップ
COMMIT:s2
MTS の設定
[mysqld]
slave_parallel_workers = 64
slave_parallel_type = LOGICAL_CLOCK
slave_preserve_commit_order = 1
log_bin = mysql-bin
log_slave_updates = 1
マルチソース
レプリケーション
MySQL 5.6 ではスレーブが
もてるマスターはひとつだけ
マスター
スレーブ
スレーブ
マスター
マスター
スレーブ
OK
NG
MySQL 5.7 ではスレーブが
複数のマスターを参照可能
マスター
スレーブ
スレーブ
マスター
マスター
スレーブ
OK
OK!!
FOR CHANNEL 句の導入
● CHANNEL = スレーブが参照するマスター
– デフォルトの CHANNEL は空文字列
● CHANGE MASTER TO … FOR CHANNEL 'name'
● START SLAVE FOR CHANNEL 'name'
● STOP SLAVE FOR CHANNEL 'name'
● SHOW SLAVE STATTUS … FOR CHANNEL 'name'
● RESET SLAVE FOR CHANNEL 'name'
マルチソースレプリケーションの
注意事項
● マスター同士で競合する更新をしないようにすること
– 同じテーブルを更新しなければ問題なし
– 同じテーブルを更新する場合
● シャーディングのおまとめ
● 少なくとも SBR は使わない
●
同じ行を異なるマスターで挿入、更新、削除しない
●
あくまでもレプリケーションは非同期
– スレーブのデータはそれぞれのマスターと時差がある
– 同期したデータが参照できることは期待できない
準同期
レプリケーションの
改良
準同期レプリケーションの概要
バイナリログ リレーログストレージ
エンジン
ストレージ
エンジン
マスター
スレッド
スレーブ I/O
スレッド
スレーブ
SQL スレッド
5. バイナリログ送信
6. 記録
7-1. 更新を適用
接続スレッド
クライアント
1. COMMIT
3.バ
イナ
リログ
更
新
7-2a. ACK
7-2b. ACK
8. OK パケット
2.PREPARE
4.COMMIT
準同期がロスレスになった!!
● マスタークラッシュ時にスレーブを昇格すると、マスターから
参照可能だったデータが全てスレーブ上に存在する
●
MySQL 5.6 では、マスターから参照できたデータが、昇格後
のスレーブに存在しないケースがある
– rpl_semi_sync_master_wait_point = AFTER_SYNC
ロスのある更新処理のシナリオ
1. tx1 がデータ x を書き込む
2. データ x がバイナリログに書き込まれる
3. バイナリログがディスクへ同期される
4. データ x がストレージエンジンに COMMIT される
5. この時点でデータ x に対するロックが解除され、他のトラン
ザクションはデータ x を参照できるようになる
• tx2 がデータ x を参照した。
6. クライアントへの応答が停止され、 ACK 待ちの状態になる
7. データ x がスレーブへ転送される前にマスターがクラッシュ
する
8. スレーブのひとつを昇格
• 新たなマスターへ接続してもデータ x は見つからない
ACK を待つタイミングを変更
● ストレージエンジンへ COMMIT する前に ACK を待つ
●
rpl_semi_sync_master_wait_point = AFTER_SYNC
– MySQL 5.6 と同じ動作は AFTER_COMMIT
MySQL 5.6 の準同期マスター
Tx1
PREPARE
binlog
write
COMMIT
時間
Tx2
PREPARE
binlog
write
COMMIT
binlog
fsync
Tx3
PREPARE
binlog
write
COMMIT
ACK を待つ
MySQL 5.7 の準同期マスター
Tx1
PREPARE
binlog
write
COMMIT
時間
Tx2
PREPARE
binlog
write
COMMIT
binlog
fsync
Tx3
PREPARE
binlog
write
COMMIT
ACK を待つ
準同期レプリケーションの
パフォーマンスの改良
● MySQL 5.6 では、マスタースレッドがスレーブへのバイナリロ
グの送信と、 ACK の受信の両方を担っていた。
– ACK を受信するまで、次のイベントを送信することが出来
ない。
● MySQL 5.7 では、 ACK の送受信を行う専用のスレッドが作成
されるようになった。
– ACK スレッド
– performance_schema.threads テーブルで確認
– 並列化により、マスターの更新処理性能が改善
ACK を返すスレーブ数の指定
● rpl_semi_sync_master_wait_for_slave_count
– マスターが ACK を待つスレーブ数
– デフォルトは 1
● rpl_semi_sync_master_wait_no_slave
– スレーブ数が
rpl_semi_sync_master_wait_for_slave_count より少
なくなった場合の挙動
– ON → スレーブが復活するのを待つ(デフォルト)
– OFF → 即座に非同期モードに移行する
●
複数のスレーブがデータを持つことで冗長性を向上
GTID の改良
GTID とは
● Global Transaction Identifier の略
●
トランザクションに世界で固有の ID をつける仕組み
– UUID+ 連番
● UUID はサーバー初回起動時に自動生成
● auto.cnf に格納
– バイナリログに記録される
● サンプル
– 00018785-1111-1111-1111-111111111111:1-100
オンラインで GTID を有効化
• MySQL 5.6 ではオンラインで有効化できなかった
1. マスターへの更新を停止し、スレーブが追いつくのを待つ
2. マスターとスレーブを停止する
3. GTID 関係のオプションをマスターとスレーブ双方で有効
化する
4. マスターとスレーブを起動する。ただし、スレーブは --
skip-slave-start オプションをつける
5. スレーブ側で MASTER_AUTO_POSITION = 1 を指定し
て、 CHANGE MASTER コマンドを実行する
6. レプリケーションを開始する
オンラインで GTID を有効化
つづき
• MySQL 5.7 ではオンラインで有効化できるようになった
1. すべての SQL 文を GTID 互換にする
● SET GLOBAL enforce_gtid_consistency = WARN;
2. マスターとスレーブで GTID が生成されるようにする
• gtid_mode を変更
• OFF→OFF_PERMISSIVE→ON_PERMISSIVE→ON
● SHOW GLOBAL STATUS LIKE
'Ongoing_anonymous_transaction_count';
3. フルバックアップを取得する
4. GTID レプリケーションに切り替える
• STOP SLAVE;
● CHANGE MASTER TO MASTER_AUTO_POSITION = 1;
● START SLAVE;
無効化もオンラインで可能
昇格しないスレーブ上で
GTID の管理が効率化
● GTID はバイナリログに格納される
– スレーブ上では log_slave_updates = 1
– 昇格後には他のスレーブへバイナリログが転送される
– データサイズ大
●
MySQL 5.7 では GTID だけを格納するテーブルが追加
– mysql.gtid_executed
OK パケットに GTID
● OK パケット(処理が成功したときの応答パケット)に GTID を
含めることができるようになった。
– @@global.gtid_executed を参照する必要がなくなった
– 自分が COMMIT したトランザクションの GTID を確実に知るこ
とができる
●
マスターで更新をして、続く参照処理をスレーブで実行した
い
– レプリケーションは非同期なので、マスターの更新が伝搬
している保証はない
– スレーブ上で、マスター更新時の GTID を待てば良い
WAIT_UNTIL_SQL_THREAD
_AFTER_GTIDS
● SQL_THREAD_WAIT_AFTER_GTIDS
– SQL スレッドが停止している場合は NULL
– MySQL 5.6 から実装
●
WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS
– SQL スレッドの状態によらず特定の GTID が実行されるのを
待つ
– MySQL 5.7 で追加
再起動時の GTID 計算方法の変更
● MySQL サーバーは再起動時にバイナリログの GTID を調べ
て、 gtid_executed と gtid_purged を再計算する
●
MySQL 5.6 の計算方法
– gtid_executed
● 新しいほうからバイナリログをスキャン
● Previous_gtids_log_event +そのバイナリログに含まれる
GTID
– gtid_purged
● 古い方からバイナリログをスキャン
●
Previous_gtids_log_event あるいは最も古い GTID から削除
されたバイナリログに含まれる GTID を推定
– GTID が ON のときと OFF のときのバイナリログが混在してい
ると、スキャンするべきバイナリログの数が多くなるケース
がある
MySQL 5.7 では最新と最古の
バイナリログだけをスキャン
● gtid_executed
– 最新のバイナリログに Previous_gtids_log_event や GTID が無
ければ、 GTID は記録されていないと判断
● gtid_purged
– 最古のバイナリログに Previous_gtids_log_event や GTID が無
ければ、 GTID は削除されていないと判断
オンライン
レプリケーション
フィルター
レプリケーションフィルターの
変更をオンラインで実行可能に
● オプション
– --replicate-ignore-db
●
オンラインで変更
– CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB
= (test, admin);
●
注意点
– フィルターは追加ではなく上書き
– 永続化はされないので、必要なら my.cnf も変更する必要
がある
レプリケーション用
パフォーマンス
スキーマ
パフォーマンススキーマから
ステータスの取得が可能に
テーブル名 説明
replication_applier_configuration SQL スレッドの設定を表示する
replication_applier_status SQL スレッドのステータスを表示する
replication_applier_status_by_coordinator コーディネータースレッドのステータスを表示
する
replication_applier_status_by_worker ワーカースレッドのステータスを表示する
replication_connection_configuration IO スレッドの設定を表示する
replication_connection_status IO スレッドのステータスを表示する
まとめ
MySQL 5.7 のレプリケーションは
超絶進化!!
● 機能性向上
– 既存のトポロジーの殻を打ち破ったマルチソース
– ロスレスになった準同期レプリケーション
●
性能向上
– LOGICAL_CLOCK モードのマルチスレッドスレーブ
– マスタースレッドの Mutex 競合解消
– 準同期レプリケーションの ACK スレッド
●
利便性向上
– フィルターの動的変更
– GTID の動的有効化
– パフォーマンススキーマ
による情報取得
もうこれは
使うしかない!!
Q&Aご静聴ありがとうございました。

More Related Content

What's hot

サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技yoku0825
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良Shinya Sugiyama
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法yoku0825
 
Innodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライドInnodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライドYasufumi Kinoshita
 
Infrastructure as Code自身のテストを考える
Infrastructure as Code自身のテストを考えるInfrastructure as Code自身のテストを考える
Infrastructure as Code自身のテストを考える辰徳 斎藤
 
お金が無いときのMySQL Cluster頼み
お金が無いときのMySQL Cluster頼みお金が無いときのMySQL Cluster頼み
お金が無いときのMySQL Cluster頼みaoike
 
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallAtsushi Tanaka
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニングyoku0825
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
MySQLの文字コード事情 2017版
MySQLの文字コード事情 2017版MySQLの文字コード事情 2017版
MySQLの文字コード事情 2017版Masahiro Tomita
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編Mikiya Okuno
 
MySQLトラブル解析入門
MySQLトラブル解析入門MySQLトラブル解析入門
MySQLトラブル解析入門Mikiya Okuno
 
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
 
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
 
MySQL5.6でGTIDを試してそっと閉じた
MySQL5.6でGTIDを試してそっと閉じたMySQL5.6でGTIDを試してそっと閉じた
MySQL5.6でGTIDを試してそっと閉じたEmma Haruka Iwao
 

What's hot (20)

サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
 
Innodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライドInnodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライド
 
Infrastructure as Code自身のテストを考える
Infrastructure as Code自身のテストを考えるInfrastructure as Code自身のテストを考える
Infrastructure as Code自身のテストを考える
 
お金が無いときのMySQL Cluster頼み
お金が無いときのMySQL Cluster頼みお金が無いときのMySQL Cluster頼み
お金が無いときのMySQL Cluster頼み
 
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
MySQLの文字コード事情 2017版
MySQLの文字コード事情 2017版MySQLの文字コード事情 2017版
MySQLの文字コード事情 2017版
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編
 
MySQLトラブル解析入門
MySQLトラブル解析入門MySQLトラブル解析入門
MySQLトラブル解析入門
 
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 発表資料)
 
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 発表資料)
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
MySQL5.6でGTIDを試してそっと閉じた
MySQL5.6でGTIDを試してそっと閉じたMySQL5.6でGTIDを試してそっと閉じた
MySQL5.6でGTIDを試してそっと閉じた
 

Similar to What's New in MySQL 5.7 Replication

MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会Mikiya Okuno
 
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09Mikiya Okuno
 
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06Mikiya Okuno
 
MySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyondMySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyondMikiya Okuno
 
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
 
MySQLやSSDとかの話・後編
MySQLやSSDとかの話・後編MySQLやSSDとかの話・後編
MySQLやSSDとかの話・後編gree_tech
 
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2学 松崎
 
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012Mikiya Okuno
 
States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -yoyamasaki
 
MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMikiya Okuno
 
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
 
Enter the-dolphine
Enter the-dolphineEnter the-dolphine
Enter the-dolphineMikiya Okuno
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQLRyusuke Kajiyama
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会yoyamasaki
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用についてLINE Corporation
 
Windows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートWindows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートMasayuki Ozawa
 
dimSTATから見るベンチマーク
dimSTATから見るベンチマークdimSTATから見るベンチマーク
dimSTATから見るベンチマークhiroi10
 

Similar to What's New in MySQL 5.7 Replication (20)

MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
 
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
 
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
 
MySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyondMySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyond
 
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
 
MySQLやSSDとかの話・後編
MySQLやSSDとかの話・後編MySQLやSSDとかの話・後編
MySQLやSSDとかの話・後編
 
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
 
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012
 
States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -
 
MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatech
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
Enter the-dolphine
Enter the-dolphineEnter the-dolphine
Enter the-dolphine
 
MySQLとオープンソースビジネスの10年、そして未来へ
MySQLとオープンソースビジネスの10年、そして未来へMySQLとオープンソースビジネスの10年、そして未来へ
MySQLとオープンソースビジネスの10年、そして未来へ
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
 
MySQL at Yahoo! JAPAN #dbts2018
MySQL at Yahoo! JAPAN #dbts2018MySQL at Yahoo! JAPAN #dbts2018
MySQL at Yahoo! JAPAN #dbts2018
 
Windows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートWindows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデート
 
dimSTATから見るベンチマーク
dimSTATから見るベンチマークdimSTATから見るベンチマーク
dimSTATから見るベンチマーク
 

More from Mikiya Okuno

私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったかMikiya Okuno
 
リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方Mikiya Okuno
 
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version Mikiya Okuno
 
What's New in MySQL 5.7 Security
What's New in MySQL 5.7 SecurityWhat's New in MySQL 5.7 Security
What's New in MySQL 5.7 SecurityMikiya Okuno
 
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴とあるギークのキーボード遍歴
とあるギークのキーボード遍歴Mikiya Okuno
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015Mikiya Okuno
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)Mikiya Okuno
 
なぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのかなぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのかMikiya Okuno
 
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜Mikiya Okuno
 
人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきか人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきかMikiya Okuno
 
RDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考えるRDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考えるMikiya Okuno
 
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計Mikiya Okuno
 
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルあなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルMikiya Okuno
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南Mikiya Okuno
 
Rdbms qpstudy-okuno
Rdbms qpstudy-okunoRdbms qpstudy-okuno
Rdbms qpstudy-okunoMikiya Okuno
 
Database qpstudy-okuno
Database qpstudy-okunoDatabase qpstudy-okuno
Database qpstudy-okunoMikiya Okuno
 
MySQL日本語利用徹底入門
MySQL日本語利用徹底入門MySQL日本語利用徹底入門
MySQL日本語利用徹底入門Mikiya Okuno
 
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2Mikiya Okuno
 

More from Mikiya Okuno (20)

私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
 
リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方
 
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
 
What's New in MySQL 5.7 Security
What's New in MySQL 5.7 SecurityWhat's New in MySQL 5.7 Security
What's New in MySQL 5.7 Security
 
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴とあるギークのキーボード遍歴
とあるギークのキーボード遍歴
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
 
なぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのかなぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのか
 
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
 
人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきか人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきか
 
RDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考えるRDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考える
 
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
 
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルあなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデル
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
 
Mysql toranomaki
Mysql toranomakiMysql toranomaki
Mysql toranomaki
 
Rdbms qpstudy-okuno
Rdbms qpstudy-okunoRdbms qpstudy-okuno
Rdbms qpstudy-okuno
 
Database qpstudy-okuno
Database qpstudy-okunoDatabase qpstudy-okuno
Database qpstudy-okuno
 
Database smells
Database smellsDatabase smells
Database smells
 
MySQL日本語利用徹底入門
MySQL日本語利用徹底入門MySQL日本語利用徹底入門
MySQL日本語利用徹底入門
 
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
 

What's New in MySQL 5.7 Replication