タグ

replicationに関するclavierのブックマーク (14)

  • 「MySQL High Availability tools」のフォローアップとorchestratorの追加 | Yakst

    MySQLのクラスター構成が一定規模を超えると自動フェイルオーバーに求められる要件が変化します。orchestratorはGitHubやBooking.comの大規模構成で自動フェイルオーバーを実現しており、数が多くなると顕在化する問題に取り組んでいます。記事ではSeveralninesの高可用を実現する製品の比較記事への投稿に対するorchestratorの考え方や取組み方の違いについて紹介します。 [MySQL]原文 “MySQL High Availability tools” followup, the missing piece: orchestrator | code.openark.org (English) 原文著者 Shlomi Noach 原文公開日 2017-04-06 翻訳依頼者 翻訳者 taka-h 翻訳レビュアー doublemarket 原著者への翻訳報告未

    「MySQL High Availability tools」のフォローアップとorchestratorの追加 | Yakst
  • 『Master⇔Slaveでbinlog圧縮通信』

    Master,Slave間のデータ通信量を下げる 使用したのはMySQL5.0 Master,Slave両方のmy.cnfに下記を追加 ------------------------------------------------ [mysqld] port = 3306 socket = /tmp/mysql.sock これ追加 slave_compressed_protocol = 1 ------------------------------------------------ MySQLを再起動(Master,Slave両方) 確認 # /usr/local/mysql5.0/bin/mysql mysql> show variables like 'slave_compressed_protocol'; +---------------------------+-------

    『Master⇔Slaveでbinlog圧縮通信』
  • MySQL 5.6のクラッシュセーフなレプリケーションの仕組み

    MySQL 5.6のnutshellを読むと、`クラッシュセーフなレプリケーションを実現するためにはmaster_info_repositoryとrelay_log_info_repositoryをTABLEに設定しな! おっと、relay_log_recoveryも1にしておくんだぜ'みたいことが書いてある。 で、このバグレポートを見た時からずっと、sync_master_infoの暗黙のデフォルト10000のまんまじゃクラッシュセーフじゃなくね? sync_master_info= 1必須? それはパフォーマンス的に死ねる。という感じでモヤモヤしていたのだが、やっと合点がいったのでメモしときます。 master_info_repository FILEの場合、従来どおりmaster.infoファイルに書く。 ファイル名はmaster_info_fileにより可変。 更新があるたび(バイ

  • MySQLでのレプリケーション - 日常メモ

    目次 ◎レプリケーションとは ◎レプリケーションの用途およびメリット・デメリット ◎レプリケーションの設定方法 ◎レプリケーションの運用 ◎レプリケーションとは レプリケーションとは、あるMySQLサーバで更新されたデータを別のMySQLサーバに複製する機能。 MySQLではマスタからスレーブヘの複製は非同期に行われるのが標準である*1。 ここで、レプリケーションの種類と仕組みについて整理する。 片方向レプリケーション 双方向レプリケーション 非同期レプリケーション ・マスタ→スレーブという片方向でのレプリケーション。 ・I/Oスレッドによる「スレーブでのバイナリログの受信」とSQLスレッドによる「スレーブでのバイナリログの実行」という2段階のステップが非同期に行われるレプリケーション。 ・マスタを2個以上持たせて、それぞれのマスタを更新できるようにした構成。MySQL Clusterが双

    MySQLでのレプリケーション - 日常メモ
  • MySQL 5.6 でのレプリケーション遅延は危険 : DSAS開発者の部屋

    MySQL 5.6 の検証中に MySQL 5.5 とは違うタイプのレプリケーション遅延を見つけたので紹介します。 MySQL のレプリケーションのおさらい MySQL のレプリケーションは次のような仕組みで動作しています。 マスターの更新トランザクションが binlog を書く スレーブの I/O スレッドがマスターに接続し、 binlog を取得し、 relaylog を書く. マスター側はスレーブからの接続を受け付けると(dump スレッド)、指定された場所から最新までの binlog を転送する binlog が追記されるのを待ってさらにスレーブに送る スレーブのSQLスレッドが relaylog を再生する MySQL 5.5 でよくあったレプリケーション遅延 マスターは並列してトランザクションを処理して、最終的にコミットした順で反映されれば問題ないようになっています。 一方、ス

    MySQL 5.6 でのレプリケーション遅延は危険 : DSAS開発者の部屋
  • Redis でダウンタイム無しの再起動 - akishin999の日記

    Apache でいうところの「graceful restart」的な機能が Redis には無いのかを調べてみたのですが、どうやらそういった機能そのものは無いようでした。 では Redis の場合はサービスを無停止でバージョンアップなどを行い、プロセスを再起動するにはどうしたらいいのでしょうか? ダウンタイム無しでの再起動については、公式の「Redis Administration」内の「Upgrading or restarting a Redis instance without downtime」という部分で触れられています。 Upgrading or restarting a Redis instance without downtime http://redis.io/topics/admin どうやら「ダウンタイム無しでプログラムの更新を行いたい場合にはレプリケーションを使用す

    Redis でダウンタイム無しの再起動 - akishin999の日記
  • MySQL のレプリケーションを SSL でやってみました - ようへいの日々精進XP

    要件 レプリケーションについて調べていたら脱線してレプリケーションを SSL 対応させてみた 構成 以下のような感じ。 インターネットを介して二台のサーバーで稼働している MySQL にてレプリケーションを行う。その際に SSL で通信を暗号化する。 手順 MySQL SSL 対応確認、設定 こちら を参考にマスター、スレーブともに MySQL を SSL 対応しておく スレーブ側も必要かは要確認 レプリケーションユーザー作成 マスター側のにレプリケーション用のユーザーを作成する。このときに注意するのは REQUIRE SSL オプション。 GRANT REPLICATION SLAVE ON *.* TO ${repl_user}@${slave_ip} IDENTIFIED BY '${your_password}' REQUIRE SSL; FLUSH PRIVILEGES; マスタ

    MySQL のレプリケーションを SSL でやってみました - ようへいの日々精進XP
  • Redis 2.8 の Sentinel の動きを検証してみた - chrone's external storage

    Redis 2.8 の redis-sentinel によるレプリケーションの自動フェイルオーバーについて、 比較的発生しそうな障害を想定して動作検証してみました。 結論から redis-server の自動再起動を構成している場合は要注意。 daemontools とか。 Master が落ちた後すぐ(例えば数秒)に再起動してきた場合、 再び Master としてレプリケーションに参加します。 よって、Master 再起動の前後でデータに差異があった場合でも、 再起動後のデータをもとに同期される為、データが破壊される可能性があります。 これを回避する為には、Sentinel により sdown/odown として認識されるのを待ってからインスタンスを復帰させるようにします。 復帰が早すぎると、障害(sdown/odown)ではなく再起動(reboot)と認識します。 レプリケーションの再

  • MySQLをmaster:slave=1:1構成にして参照をslaveに向けるのがなぜ良くないか - 酒日記 はてな支店

    MySQLのmasterとslave 1:1にして参照をslave向けるのってやりたがる人多いみたいだけど、性能たいして上がらない割に可用性落ちるだけだからやめようキャンペーン 2011-06-19 00:16:30 via YoruFukurou MySQL はレプリケーションが簡単に構成できるのですが、時折 master 1台 に対して slave 1台、更新処理は master に、参照は slave に、という構成を目にします。 個人的にはこの構成はお勧めでないと思っているので、その理由を考察してみます。 1. 可用性が落ちる 当然ですが、master, slave のどちらが落ちても影響を受けるために可用性が低下します。 2. 全体の性能がほとんど上がらない master 1台ですべてのクエリを処理する場合と比べて、可用性が落ちる引き換えとして見合った性能向上が得られるか、という

  • mysqlのHAがらみのトラブルの思い出 - smallpalace's blog

    いーつのことーだかー思い出してごーらん、あんなことーそんなことーあーったでしょー。 というわけでこんにちは。smallpalaceです。 ちょっと前にテクニカルセミナー的な機会があって思い出してくれということになり思い出したのでかける範囲で書いときます。 mysqlの運用時のトラブルまとめ。HAがらみのところほか順不同です。 ・高負荷後の「max_connect_errors」がらみでホストによっては拒否されてアクセスできなかったりなど。対策としては、flush hosts;とmax_connect_errors=999999999でエラーカウント無効になるようです。 ・主にクラウド上でI/OスパイクでF/Oしやすい。(I/O共有なのでしょうがないです)ベンダによってはDBだけ物理で提供(納期はかかる)というのもメニューにあったりして人気があるようです。予算が許せばioDriveとかステキ

    mysqlのHAがらみのトラブルの思い出 - smallpalace's blog
  • MariaDB Galera Cluster による DB サーバの冗長化 - dogmap.jp

    さくらインターネット研究所さんの「MariaDB Galera Clusterを試す」という記事を読んで居ても立ってもいられなくなり、さっそく AWS で構築してみました。 上記の記事によれば 簡単にまとめると次のようになります。 Galera Replicationが複数のRDBMをレプリケーションするwsrep APIを提供し、同期をとります 完全同期型であるため、すべてのノードがアクティブかつマスターとなります クラスターノードのどれに対してもリード/ライトが可能です ノードの追加/削除は自動で行えます クライアント接続は通常のMySQLとなんら変わりなく使えます via. MariaDB Galera Clusterを試す (1) « さくらインターネット研究所 おー!スレーブ/マスター形式のレプリケーションよりも、断然使いやすそうやんか! ってわけで AWS の ELB 配下に複

    MariaDB Galera Cluster による DB サーバの冗長化 - dogmap.jp
  • MySQL DBマスタのDC間移設 | Ore no homepage

    システムをデータセンターAからデータセンターBに論理移設を行うときのメモ。 肝になるのはDB、特にマスタDBだと思うので、主題の通りおもにDBマスタの切り替えに焦点を当てて手順を書く。 移設先であるデータセンターBではサーバ構築やアプリケーション/コンフィグのデプロイは完了していて、新マスタおよび全スレーブは現マスタにレプリを張っている状態からスタートする。新マスタにはバイナリログ出力など、DBマスタとして振る舞うための設定が入っているものとする。 手順の要約 現DBマスタへの更新クエリをすべてブロックする 全てのスレーブと新マスタでshow slave statusしてログとポジションが一致していることを確認する 新マスタと全てのスレーブでstop slaveする 新マスタと全てのスレーブでreset slaveする 新マスタでreset masterする 全てのスレーブでchange

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

    レプリケーションはMySQLで最もよく使われる機能のひとつだ。レプリケーションは基的に非同期でデータの複製を行う仕組みになっているのだが、非同期故にどうしても逃れられない問題がある。そのひとつが今回のテーマ、遅延である。というと、MySQLのレプリケーションはすぐに遅延が生じてしまうように感じてしまうかも知れないが、そのようなことはない。ほとんどの場合は即座にスレーブの更新が行われる。 なぜ遅延は発生するのか、どのように遅延が起きていることを調べるのか、どのように回避するのかということをエントリでは解説したい。うまく遅延と付き合って、MySQLのレプリケーションをより快適に運用してもらえればと思う。 そもそも遅延とは何かMySQLのレプリケーションは非同期で行われる。これは準同期でも同じであり、スレーブにおいて更新が起きるのはマスターよりも一瞬遅れてしまう。これは非同期であるが故に逃れ

    MySQLにおけるレプリケーション遅延の傾向と対策
  • 現場指向のレプリケーション詳説

    この文書は、技術評論社刊『WEB+DB PRESS Vol.22』に執筆した記事を技術評論社の 許可を得てWWWで公開しているものです。 このWWW版は校正前の原稿を元にしている点、WWW公開後に必要があれば修正する点で、雑誌版の文章とは異なる部分があります。また、図表も雑誌版とは異なります。 予めご了承ください。 また、この文章が対象しているのはMySQL 4.0系なので、最新のリリース版と比べると説明不足な点などが多々あると思います。 レプリケーションの基をおさえるには、この文書はまだ有益だと思いますが、設定レベルの説明は最新のドキュメントを参照するようにしてください。

  • 1