タグ

レプリケーションに関するmasudaKのブックマーク (9)

  • せじまくんの刺さらない話(MySQL Slave増設編) | GREE Engineering

    はじめまして。プラットフォーム開発部のせじまです。好きなものはDisk I/Oです。 今回はMySQL(on Linux)のレプリケーションにまつわる、ちょっとしたお話をさせていただきたいと思います。 はじめに MySQL4.0以降のレプリケーションは、 Masterのmysqldが、INSERT/UPDATE/DELETEなどの更新情報を、バイナリログに記録する。 Slaveのmysqld(IOスレッド)は、masterのmysqldに接続し、バイナリログを転送する。 Slaveのmysqld(IOスレッド)は、受信したバイナリログ内容を、リレーログに記録する。 Slaveのmysqld(SQLスレッド)は、リレーログを読み込み、更新内容をslaveのDBに反映する。 といった仕組みになっています。図にすると次の通りです(*1)。 MySQLのレプリケーションはとても良くできた仕組みな

    せじまくんの刺さらない話(MySQL Slave増設編) | GREE Engineering
  • MySQL 5.6.5の新機能GTIDを試してみる

    MySQL 5.6.5の新機能GTIDを試してみる 2012-04-23 4月10日にリリースされたMySQL 5.6.5 DMRに、GTID(Global Transaction ID)という機能が搭載された。これは、トランザクションにID(GTID)を持たせることによって、レプリケーションの進行具合を、従来の「マスタのbinlogファイル名 + ポジション」という情報ではなく、GTIDで管理できるようになるという機能である。従来のバージョンと比べた時に一番分かりやすい点としては、「change masterする時にポジションを指定しなくてよくなる」ということだろう。 MySQLのレプリケーション機能開発者Luis Soares氏のブログを参考に、GTIDの機能を試してみた。 MySQL 5.6.5のインストール MySQLのダウンロードサイトからDevelopment Releaseを

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

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

    MySQLレプリケーションを安全に利用するための10のテクニック
  • Yahoo!オークションでのMySQL 冗長化技術

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちはオークション事業部プラットホーム技術のチャックです。 オークションでは一部サービスに RDBMSMySQL を使ってサービスをご提供させていただいております。 オークションでは多くのお客様よりアクセスを頂いておりますので、大量の更新、参照の処理速度に優れた MySQL を選択し、お客様にストレスなくサービスをご利用いただけるよう 日々業務に取り組まさせていただいております。 しかし、精密機器には故障がつきもので、サービス運用の観点からは 「機器が故障するのはしかたない、しかしそれをいかに早く復旧させるか」 といったことを念頭に入れております。 実際には、障害が起こってから復旧させるのではなく、障害が発生した場合に

    Yahoo!オークションでのMySQL 冗長化技術
  • mysqldumpでレプリケーション用にデータをダンプする方法 - dak ブログ

    mysqlでレプリケーションのスレーブ用にデータをダンプするのに、mysqldumpコマンドで--master-dataを指定すると、ダンプファイルにレプリケーション位置を指定するmaster_log_file、master_log_posを設定するSQLも出力されます。 $ mysqldump --master-data DB名 テーブル名 出力ファイルには以下のように master_log_file と、master_log_pos を指定するSQLが出力されています。 -- -- Position to start replication or point-in-time recovery from -- CHANGE MASTER TO MASTER_LOG_FILE='.000650', MASTER_LOG_POS=458955379;

    mysqldumpでレプリケーション用にデータをダンプする方法 - dak ブログ
  • 実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスクリーンキャストに収めました。 埋め込みプレイヤーだと、小さくてわからないと思うので、リンク直接でみてください。 http://www.irori.org/pub/mysql-mm.mov 登場するホスト 登場するホストは2台、db901db902です。 最初は、db901が更新系クエリを受けるプライマリでdb900の浮動IPアドレスを持っています。 画面分割 画面は5分割しています。 左上 = 「select sysdate(),@@server_id」をdb900に対して(sleep 1しながら)延々と実行しまくりんぐ 右上 = ping -n

    実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ
  • レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ

    MySQLで、レプリケーションベースのHAな構成について考えたメモです。 3台(というか2台+1台)がいいかなぁと思っていて、前半はその理由を、後半では{マスタ,スレーブ}が{再起不能になった,ちょっとダウンしてすぐ復帰した}場合のリカバリプランについて書きます。 今のところはこれがベストかなと思っているのですが、「こうしたほうがいいと思う!」「ここがおかしい!」などなどのご意見はコメント、TBなどでいただけるとうれしいです。 ゴール マスタが落ちてもぐーすか寝ていられるようにしたい リカバリの作業はできるだけ単純に、かつ、短時間で完了するようにしたい めんどくさいのはいや 基構成、方針 2台+1台 サービスで使うのは2台 (db1, db2) もう1台は管理用 (db3) スレーブを多数並べる構成にはしない 台数増えると管理コストが上がる マスタダウン時のフェイルオーバとそのフェイルバ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ
  • MogileFSで構築する高速スケーラブルな分散ファイルシステム - builder by ZDNet Japan

    連載「オープンソースソフトウェアでクリエイターを支援するmoonlinx」の第1回「ウェブメディア「moonlinx」を支えるオープンソースソフトウェア」ではmoonlinxの概要およびシステム構成を、第2回の「openSUSEの管理ツール「YaST」で作業を効率化:moonlinxを支えるOSS」では使用OSであるopenSUSEについて簡単に説明しました。 今回は、moonlinxで取り扱うメディアファイル(画像、音楽、動画)の保管方法について説明したいと思います。 分散ファイルシステム「MogileFS」 moonlinxでは、各種メディアファイルの保管に、オープンソースの分散ファイルシステム「MogileFS」を利用しています。 分散ファイルシステムを用いることにより、ファイルシステムを構成するノード群の一部がダウンしても、データを失うことなくシステムとして機能し続け、かつ自動レ

    MogileFSで構築する高速スケーラブルな分散ファイルシステム - builder by ZDNet Japan
  • PakuReserve R&D Laboratory » MySQLのレプリケーション

    姜子牙です。新サービスの規約作りから現実逃避中です。 MySQLのレプリケーション設定について書きます。覚書です。 MySQLは基機能としてDBのレプリケーションができる機能を備えています。 現在アプリケーション側から更新されているDBMySQL自身が設定したコピー先(以下SlaveDB)に 順次コピーしていく機能です。この設定を行うことで、SlaveDB自身は基的にコピー元(以下MasterDB)と全く同じDBを持つことになります。 行った手順は以下のようになります。 1、MasterDBサーバに対してバイナリログを取得するように設定を変更します。 ※MySQL5.0より前は更新ログと呼ばれていました。 MasterDBサーバの/etc/my.cnfに以下のような2行を追加します server-id=1 log-bin=/var/lib/mysql/binary.log s

  • 1