ちょっと硬派なコンピュータフリークのBlogです。

カスタム検索
ラベル replication の投稿を表示しています。 すべての投稿を表示
ラベル replication の投稿を表示しています。 すべての投稿を表示

2016-09-29

MySQL 5.7新機能解説:レプリケーション、セキュリティ編

今月の頭、詳解MySQL 5.7の出版記念第一弾として、MyNA(日本MySQLユーザ会)名義でイベントを行ったので、その際使用したスライドを紹介しておこう。今回紹介した新機能のカテゴリは2つ。レプリケーションとセキュリティである。レプリケーションはMySQLの運用と切っても切り離せないほど重要なものであり、そしてデータベースサーバーにとってセキュリティが重要であることは、言うまでもないだろう。

2014-12-25

MySQLレプリケーションの運用が劇的変化!!GTIDについて仕組みから理解する

メリークリスマス!!やあ、良い子のみんな!!サンタクロース・・・ではなく、ヒゲモジャギークからのクリスマスプレゼントだよ!!

というわけで、MySQL Casual Advent Calendarの25日目である。今朝Advent Calendarを覗いてみると、本日分のエントリーが無かったので、急遽書くことにした。Advent Calendar最後の日、クリスマスを飾る記事のテーマはGTIDだ。

前回の投稿では、MySQL 5.6の目玉機能として、レプリケーションがクラッシュセーフになったことを挙げた。レプリケーションまわりで言えば、もうひとつ外せない目玉機能がある。それがGTID(Global Transaction ID)である。

GTIDは良くも悪くもレプリケーションの運用を変化させる。GTIDを使うことによって得られる最大のメリットは、CHANGE MASTER TOでバイナリログポジションをいちいち指定しなくても良いということだ。スレーブが要求するGTIDから、自動的にどのポジションからバイナリログを転送すれば良いのかを判断してくれる。マスターに障害が生じたなどの理由でスレーブを昇格させるとき、最も進んだスレーブを選択しさえすれば、後は勝手に差分を調整してくれるのである。何て便利な機能なんだ!と思わざるを得ない。

その一方、GTIDを使う上では運用者のマインドにも変化が求められる。運用方法がガラリ変わってしまうからだ。スレーブの構築方法や、日々のバックアップ等の運用にも変化が求められる。今日は、便利だけど注意が必要なGTIDについて、その仕組みから解説しようと思う。

2014-12-16

まだMySQL 5.5で消耗してるの?MySQL 5.6でクラッシュセーフなレプリケーションを活用して枕を高くして眠れる日々を満喫する方法

MySQL 5.6が登場してからかなりの月日が過ぎたが、他のことで多忙だったせいか、MySQL 5.6についてはあまりブログで情報を発信していないことに気がついた。これはイカン!!と思い、MySQL Casual Advent Calendar 2014に合わせて、MySQL 5.6を使用する上で最もオススメしたい機能であるクラッシュセーフなレプリケーションについて解説しようと思う。この記事は16日目の記事である。

2011-12-13

MySQLにおけるレプリケーション遅延の傾向と対策

レプリケーションはMySQLで最もよく使われる機能のひとつだ。レプリケーションは基本的に非同期でデータの複製を行う仕組みになっているのだが、非同期故にどうしても逃れられない問題がある。そのひとつが今回のテーマ、遅延である。というと、MySQLのレプリケーションはすぐに遅延が生じてしまうように感じてしまうかも知れないが、そのようなことはない。ほとんどの場合は即座にスレーブの更新が行われる。

なぜ遅延は発生するのか、どのように遅延が起きていることを調べるのか、どのように回避するのかということを本エントリでは解説したい。うまく遅延と付き合って、MySQLのレプリケーションをより快適に運用してもらえればと思う。

2009-05-28

Semi Synchronous Replicationテストのお願い。

前回、MySQL 6.0は先日リリースされた6.0.11が最後のバージョンになるということについて書いたが、その記事の中で、MysQL 6.0の機能のうちで次のものはMySQL 5.4にも取り込まれるということを説明した。
  • サブクエリ最適化
  • BKA Join
  • SIGNAL/RESIGNAL
  • INFORMATION_SCHEMAの拡張
  • XML機能の拡張
  • DTrace Probes
また、次の機能は搭載されないことについても言及した。
しかし、MySQL 5.4はまだβであり正式リリースまでにはもうしばらく時間がある。今日、レプリケーションチームの開発をリードしているLars Thalmannと話をしていたとき

Semi-Synchronous Replicationを5.4に搭載しようかどうしようか迷っているんだけど、ユーザーからのフィードバックが欲しいんだよね。

という意味のことを言っていた。以前の投稿でも書いたが、Semi-Synchronous Replicationは最強のHA化手法なので、ぜひとも5.4には搭載して貰いたい。そこで、このブログを読んでくれている皆さんにお願いなのだが、MySQL 6.0最後のバージョンであるMySQL 6.0.11を使って、Sem-Synchronous Replicationの評価をして頂けないだろうか。

ぜひ欲しい!!
この機能がないとヤダ!!
Semi-Sync最高!!


という声をLarsに届けることができれば、MySQL 5.4にはSemi-Syncが搭載されることになるだろう。絶対コレは便利な機能なので、ぜひともご協力頂きたいところである。高価な共有ストレージなどを使わずに超高速なフェイルオーバーを実現するSemi-Synchronous ReplicationがMySQLに搭載されれば、きっと皆さんにもメリットがあるはずである。

フィードバックの方法は、MySQLのメーリングリストに登録してメールを送ってもらうことだが、メーリングリストは英語だし敷居が高いと思うので、この投稿にコメントをつけて頂けるとありがたい。

さて、Semi-Synchronous Replicationの使い方であるが、プラグインをインストールしなければならないので多少面倒臭い。詳しくはマニュアルを見て頂きたいが、概要は次の通り。


1. MySQL 6.0.11をインストールして、レプリケーションのセットアップをする。

2. ここからSemi-Syncプラグインのバイナリをダウンロードする。

ただし、現在用意されているのはLinux用だけなので注意。

3. バイナリをplugin_dirに展開する。

plugin_dirはSHOW GLOBAL VARIABLESで確認できる。

mysql> SHOW GLOBAL VARIABLES LIKE 'plugin_dir';


4. INSTALL PLUGINコマンドでプラグインをインストールする。

マスター上

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'libsemisync_master.so';

スレーブ上

mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'libsemisync_slave.so';)


5. Semi-Synchronous Replicationを有効にする。

マスター上

mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;

スレーブ上

mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;


6. スレーブI/Oスレッドを再起動する。


mysql> STOP SLAVE IO_THREAD; START SLAVE IO_THREAD;


ちなみに、MySQL 6.0は現時点でも安定性はそれほど問題無い。ただし新機能を使わなければ。(特にFalcon。)MySQL 6.0は、我々日本人にとっては特に4バイトUTF-8のサポートが嬉しいバージョンなので、ぜひそちらの検証も兼ねてSemi-Sync Replicationの評価もして頂きたい。

2009-03-11

MySQLレプリケーションを安全に利用するための10のテクニック

MySQLのレプリケーションは非常に簡単に使える割には応用の幅が広いので非常に人気のある機能の一つである。レプリケーションの応用分野は例えば、
  • バックアップ
  • 参照系の負荷分散
  • HA(高可用性)
  • ディザスタリカバリ(サイト間レプリケーション)
  • BI(レポーティングetc)
という風にとても多くのバリエーションがある。このブログを読んで頂いている皆さんの中にもレプリケーションを使っている方は多いのではないだろうか。ご覧の通りMySQLのレプリケーション機能はミッションクリティカル分野でも利用されているが、レプリケーションの使い方が適切でないとシステムの安定稼働に支障を来してしまってDBAやシステム管理者の肉体的、精神的負担が増大してしまう。逆にレプリケーションを堅牢に運用することが出来ればマクラを高くして眠れるというものだ。レプリケーションはMySQLの代表的な機能であるので、レプリケーションを使いこなしてこそ真のMySQLエンジニアであると言えよう。

というわけで、今日はMySQLのレプリケーションをトラブルから守って安全に利用するポイントを10個紹介する。

2009-03-02

最強のMySQL HA化手法 - Semi-Synchronous Replication

MySQL 6.0で搭載される予定の機能の一つに、Semi-Synchronous Replicationというものがある。コイツを使うととんでもなく凄いHA化ができるので、今日はその方法を紹介しよう。

まずはSemi-Synchronous Replicationの機能説明から。そもそもSemi-Synchrounousってナニ?どうして完全な同期でもなく非同期でもなくSemi-Synchronousなの?という疑問をまずは解消したいと思う。さっそく次の図を見て欲しい。