MySQL Replication and Scalability

Similar documents
How to Use the PowerPoint Template

Microsoft PowerPoint - MySQL-backup.ppt

スライド 1

Oracle Database 12c

サンのオープンソースへの 取り組み

スライド 1

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

MySQL研修コース & 資格のご案内

How to Use the PowerPoint Template

MySQL Cluster

Slide 1

PowerPoint Presentation

MySQL5.0データベース ログファイルおよびステータスの収集

VB実用Ⅲ⑩ フリーデータベースⅡ

PowerPoint Presentation

今さら聞けない!? Oracle入門 ~後編~

untitled

Oracle SQL Developerの移行機能を使用したOracle Databaseへの移行

MySQL 5.7 レプリケーション新機能 日本オラクル株式会社 MySQL Global Business Unit

How to Use the PowerPoint Template

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co

How to Use the PowerPoint Template

Oracle Web CacheによるOracle WebCenter Spacesパフォーマンスの向上

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

SRA OSS, Inc. のご紹介 1999 年より PostgreSQL サポートを中心に OSS ビジネスを開始 2005 年に現在の形に至る 主なビジネス PostgreSQL, Zabbix などの OSS のサポート コンサルティング 導入構築 PowerGres ファミリーの開発 販売

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

目次 はじめに... 2 無料トライアルのサインアップ方法... 3 トライアル環境へのアクセス 参考情報

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

SAFE HARBOR STATEMENT 以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメントするものではない為 購買決定を

【Cosminexus V9】クラウドサービスプラットフォーム Cosminexus

スライド 1

CA ARCserve Replication/HA r16.5 のご紹介 CA Technologies データマネジメント事業部 Click to edit Master subtitle style 第 1.0 版

<Insert Picture Here> 30 分で理解する ORACLE MASTER 日本オラクル株式会社 Oracle University

Arcserve Replication/HA r16.5 のご紹介 Arcserve Japan 第 1.6 版 1

PostgreSQLによる クラスタ運用および負荷分散術 SRA OSS, Inc. 日本支社 OSS事業本部 星合 拓馬

Make the Future Java FY13 PPT Template

Transforming Data Management

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2

How to Use the PowerPoint Template

今さら聞けない!? Oracle入門 ~前編~

DataKeeper for Windows リリースノート

untitled

Oracle Solaris 仮想環境とプロビジョン環境の構築

MySQL Cluster

HeartCoreインストールマニュアル

スライド 1

MySQL レプリケーションの用途 スケーラビリティ Web で中心となる参照処理を分散してシステムとしての拡張性を向上 可用性 データの複製を持たせ マスターに障害が発生した場合は切り替え 集計処理やバックアップ オンラインでの処理から処理を分離することによって全体の性能を維持 ディザスタリカバリ

MaxGauge_診断分析プロセス

Table of Contents

Title Slide with Picture

PowerPoint Presentation

Arcserve Replication/High Availability 製品の仕組み

PowerPoint_template_v1.3.pptx / パワーポイントテンプレート

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

MySQL Cluster

ORACLE TUNING PACK 11G

JP1 Version 11

_UserForum_05-Repl_jp.pptx

Slide 1

pg_monz 監視アイテム一覧 :Template App PostgreSQL Template App PostgreSQL アプリケーション LLD アイテムトリガー監視タイプ更新間隔ヒストリトレンドデフォルト説明ステータス pg.get pgsql.get.pg.bgwriter Zabb

データベースの近代化:シンプルなクロスプラットフォーム、最小のダウンタイムで実現するクラウド移行

変更履歴 項番版数内容更新日 版新規作成 2013 年 11 月 18 日 1

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

スライド 1

Attain3 インストール説明書

意外と簡単!? Oracle Database 11g -バックアップ・リカバリ編-

PassSureExam Best Exam Questions & Valid Exam Torrent & Pass for Sure

Database Cloud Service

Oracle Direct Seminar <Insert Picture Here> 試験対策ポイント解説 Bronze DBA11g 日本オラクル株式会社

Oracle SQL Developer Data Modeler

コンポーネントのインストール レプリケーション運用開始までの流れ 1 コンポーネントのインストール 2 シナリオの設定 3 同期処理 レプリケーション開始!! CA ARCserve Replication/HA 構成例 管理用 PC CA ARCserve RHA マネージャ CA ARCserv

LEAP を使用して Cisco ワイヤレス クライアントを認証するための Funk RADIUS の設定

スライド 1

pgpool-ii で PostgreSQL のクラスタを楽々運用しよう OSC Tokyo 2014/12/12 SRA OSS, Inc. 日本支社マーケティング部 OSS 技術グループ 長田 悠吾

HP OpenSource ブループリント

ORACLE PARTITIONING

Microsoft PowerPoint _SQLDeveloper.ppt [互換モード]

リレーショナルデータベース入門 SRA OSS, Inc. 日本支社 Copyright 2008 SRA OSS, Inc. Japan All rights reserved. 1

Oracle Documents Cloud Service 企業利用に最も安全・安心なクラウドファイル同期・共有サービス

2. バージョンアップ内容 intra-mart WebPlatform/AppFramework Ver.7.1 および Ver.7.2 に対応いたしました SAP JCo 3.0.x に対応いたしました 3. 製品概要 IM-ERP リアルコネクトは SAP システム内のデータをリアルタイムに取

スライド 1

MySQL 5.7 入門 ( バックアップ編 ) Yoshiaki Yamasaki / 山﨑由章 MySQL Senior Sales Consultant, Asia Pacific and Japan Copyright 2015, Oracle and/or its affiliates.

サンのオープンソースへの 取り組み

Microsoft PowerPoint pptx

CLUSTERPRO for Linux MySQL HowTo

Microsoft Word - JP-AppLabs-MySQL_Update.doc

PostgreSQL 10 で作るクラスタ構成 SRA OSS, Inc. 日本支社 取締役支社長 石井達夫

ビジネスサーバ設定マニュアル_Standard応用編

HeartCoreインストールマニュアル(PHP版)

Slide 1

第 3 章 メディア障害とバックアップ リカバリ この章では メディア障害の発生に備えたバックアップ方法と 障害時の基本的なリカバリ方法につい て説明します 1. メディア リカバリ概要 2. ファイルの多重化 3. アーカイブ モードの設定 4. バックアップ概要 5. 一貫性バックアップ ( オ

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル

Slide 1

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

Oracle Real Application Clusters 10g: 第4世代

Oracle Warehouse Builder: 製品ロードマップ

2. 製品概要 IM-ERP リアルコネクトは SAP システム内のデータをリアルタイムに取得 更新するための API SAP リアルタイム連携 API を提供いたします またこれらの API を利用した業務テンプレートが同梱されています 各機能の詳細や設定方法に関しては 各マニュアルまたはセットア

Veritas System Recovery 16 Management Solution Readme

Transcription:

<Insert Picture Here> MySQL レプリケーション & スケーラビリティ 日本オラクル MySQL Global Business Unit テクニカルアナリスト奥野幹也 2011 年 10 月 28 日

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらないで下さい オラクル製品に関して記載されている機能の開発 リリースおよび時期については 弊社の裁量により決定されます Oracle は 米国オラクル コーポレーション及びその子会社 関連会社の米国及びその他の国における登録商標または商標です 他社名又は製品名は それぞれ各社の商標である場合があります 2

期待できること レプリケーションのいろいろな使い方を概観できる レプリケーションの細かいセットアップ方法 ( ファイル修正 パラメタ設定など ) には立ち入らない 開発者 vs. 管理者のアプローチ 3

レプリケーションとは? 1 つの MySQL データベースサーバー ( マスター ) から 1 つ以上の MySQL データベースサーバーにデータを複製 ( レプリケート ) します binlog relay log Master Slave 4

タイプ : レプリケーションの タイプとフォーマット 非同期 マスターから更新を受け取るために スレーブはずっと接続しておく必要がない 準同期 マスターから スレーブのうち最低一つのスレーブがコミットをリレーログに書き込んだことを確認する 同期 全てのスレーブがコミットをデータベースにまで書込込んだことを確認する フォーマット : 文ベース SQL 文をマスターからスレーブに伝搬する 行ベース 各行の変更をマスターからスレーブに伝搬する Mixed 文ベースと行ベースの混合 5

レプリケーションの短所 真の高可用性 (High Availability) ではない システムダウンの際データがロストする 一つ以上のスレーブのフェイルオーバー / フェイルバックが複雑 リカバリしたマスターはバイナリログ (binlog) に記録されなかった変更が欠損する スレーブはマスターから送れるタイムラグがある 6

レプリケーションの利用法 高可用性 (High Availability) ( フェイルオーバー ) スケーラビリティ スケールアップ / スケールアウト データセキュリティ / バックアップ 分析 長距離間のデータ配布 7

レプリケーション構成 バイナリロギングのメカニズムがベース マスターはレプリケーションには 無関係 それぞれのスレーブがバイナリログとの連動をキープ スレーブは接続 切断可能 マスターとスレーブはそれぞれユニークな id を持つ スレーブはマスターの hostid, バイナリログ名とバイナリログ内の位置を知る必要がある 8

MySQL バイナリログ (binlog) バイナリログ (binlog) データベースにおこなった全ての変更を記録する 複数のファイルから構成される 古いバイナリログは削除する Binlog インデックスファイル : どのバイナリログが存在するかという情報を持つ バイナリログは次の用途に使われる : レプリケーション ポイントインタイムリカバリ (Point-in-time recovery) 監査 (Auditing) ( 更新のみの限定的な監査 ) 9

バイナリログの例 mysql> create table test (text TEXT); Query OK, 0 rows affected (0.56 sec) mysql> insert into test values ( Replication!"); Query OK, 1 row affected (0.46 sec) mysql> select * from test; +-------------------+ text +-------------------+ Replication! +-------------------+ 1 row in set (0.00 sec) 10

バイナリログのイベント mysql> show binlog events G *************************** 2. row *********************** Log_name: mysql-bin.000001 Pos: 107 Event_type: Query Server_id: 1 End_log_pos: 210 Info: use `sample`; create table test (text TEXT) *************************** 4. row *********************** Log_name: mysql-bin.000001 Pos: 289 Event_type: Query Server_id: 1 End_log_pos: 408 Info: use `sample`; insert into test values ( Replication! ) 11

レプリケーションのセットアップ マスターでバイナリログを ON にする edit my.cnf ファイルを修正 : ([mysqld] グループ ) 追加 : log-bin = master-bin 追加 : log-bin-index = master-bin.index ユニークなサーバ id を構成 追加 : server-id = 1 マスターに接続できてレプリケーション権限を持つユーザを別途用意する ( オプション ) 12

マスターのクローニング テーブルをフラッシュしてREAD LOCKする 現在のbinlog positionを書き留める マスターのバックアップを作成する マスターのテーブルをUNLOCKする バックアップをスレーブにリストアする スレーブを構成する スレーブをスタートする スレーブがスタートしマスターに追いつく Master Slave 13

マスタのクローニング master> flush tables with read lock; master> show master status G *************************** 1. row *************************** File: mysql-bin.000001 Position: 47710 Binlog_Do_DB: Binlog_Ignore_DB: master $ mysqldump -all-databases host=master-1 > backup.sql master> unlock tables; slave $ mysql -host=slave-1 < backup.sql slave> change master to -> MASTER_HOST = master-1, -> MASTER_PORT = 3306, -> MASTER_USER = slave. -> MASTER_PASSWORD = password_value, -> MASTER_LOG_FILE = mysql-bin.000001 -> MASTER_LOG_POS = 47710; slave> start slave; バックアップにMysqldumpを使う場合 --master-data=2をつけるとflush tables~とbinlog position の確認 change mater to が不要です 14

レプリケーションアーキテクチャの基本 Clients I/O Thread Master 1 3 4 dump thread Slave 2 binlog relay log 5 SQL Thread 15

一般的なレプリケーション / スケールアウトの利用法 読み取り用ロードバランス 掻きこみ宇ロードバランス データロールベースの配布 地理的領域によるパーティショニング ホットスタンバイによる災害回避 リモートレプリケーションによる災害回避 バックアップ レポート作成 データのパーティショニング又はフィルタリング 16

読込 ( 書込ではない ) のスケールアウト 全てのスレーブがマスターから同じ書込負荷を受けるという前提 Avg. Load = Read Load + Write Load (master) Capacity Avg. Load = 6000 (reads) + 4000 (writes) (master) 10,000 Avg. Load = 6000 + (4 x 4000) = 22,000 = 55% (master + 3 slaves) 4 x 10,000 40,000 17

Clients マスターと 3 つのスレーブ Slaves Reads App/Web Server Writes Master 18

書込 ( 読込ではない ) の スケールアウト データシャーディング ( 分化 (splintering) またはパーティショニング ) シャーディングの理由 : 地理的にユーザに近い場所に置く ワーキングセットのサイズを削減する ロードバランシング シャード (shards) のバランシングと移動 シャードの場所が固定でない 19

Shards with Central Repository Clients Clients Shard 1 Shard 3 Central Repository Node 1 Node 2 Shard 2 Shard 4 Shard 5 20

ホットスタンバイ レプリケーショントポロジで一番簡単 ホットスタンバイがマスターを二重化 潜在的な問題 : 新しいマスタからのレプリケーションは バイナリログの位置 (binlog position) をオリジナルのものから翻訳する必要がある ホットスタンバイの変更はスレーブにマッチしないかもしれない 修復されたマスターは追加のバイナリログの変更を持つかもしれない 21

Master ホットスタンバイ binlog Slave Failover relay log relay log binlog Hot Standby 22

リモートレプリケーション 地理的に離れた二つのデータセンター間のレプリケーション 災害時復旧 (Disaster recovery) ユーザの近くにデータを置く SSL によるセキュリティ / 暗号化 組み込みのレプリケーション通信暗号化を使う SSL tunnel 作成のために Stunnell を使う Ssh を tunnel mode で使う 23

レプリケーションを バックアップに利用する 一般的なレプリケーションのバックアップ利用 バックアップとリカバリ ポイントインタイムリカバリ (PITR) スレーブを停止 バックアップを実行 物理ファイルコピー (tar, WinZip) mysqldumpの使用 MySQL Enterprise Backup(MEB) スレーブ停止の必要なし 24

レポートの生成 マスターサーバーのストレスを取り除く レポート作成の間はスレーブを停止 レポートはビジネストランザクションほどクリティカルなものではない 手順は自動化できるかもしれない スレーブで真夜中前にレプリケーションを停止 真夜中後 マスターから最新のバイナリログ位置を取得 スレーブをスタートして この位置に達するまで走らせる レポート作成実行 スレーブを再起動 25

バイナリログのフィルタリング my.cnf ファイルオプション : binlog-do-db, 例 : [mysqld] binlog-ignore-db = two_db binlog-ignore-db これはマスター側でのフィルタリング スレーブ側で行った方が自由度が高く問題が少ない > USE two_db; INSERT INTO table1 VALUES (1),(2); > USE two_db; INSERT INTO one_db.table1 VALUES (1),(2); > USE two_db; INSERT INTO one_db.table2, three_db.table1 SET a = b; 例えばデータベース. テーブルで書く代わりに use 使う INSERT INTO books.pages values( Binlog, 143 ); Instead, write: USE books; INSERT INTO pages values ( Binlog, 143 ); 26

階層レプリケーション / リレースレーブ マスターがレプリケートできるスレーブ数は限られる リレースレーブを使うことによりマスターの付加を軽くすることができる マスターから来る変更をバイナリログに記録 データベースに変更を書かないように Blackhole エンジンを使う リレースレーブはさらなる遅延を発生させる 階層型のセットアップは通常より難しい 27

スレーブのリレー Clients Slaves Master Relay Slave 28

レプリケーションのトポロジ Single Chain Circular Multiple Multi - Master Multi - Circular Circular 構成は運用や障害の対処が難しいことに注意が必要 29

MySQL 5.6 の新機能 クラッシュセーフのスレーブ レプリケーション チェックサム バイナリログサイズの削減 完全 / 部分 RBR (rowbased replication: 行ベースレプリケーション ) イメージ用のオプション 時間遅延レプリケーション 情報ログイベント バイナリログのリモートバックアップ サーバ UUID s (Universally Unique Identifier) DM Download! 30

MySQL 5.6 の新機能 マルチスレッドスレーブ スレーブのパフォーマンス向上 負荷が並列に適用される : それぞれのデータベースへの変更が個別に適用 コミットされる Transaction 1 Relay Log T2 Database 01 Transaction 2 Database 02 IO Thread SQL Thread Coordination SQL Threads (Workers ) T1 Database 03 Databases DM Download! 31

32

33

34