Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


17.4.1 レプリケーションの機能と問題

[+/-]

17.4.1.1 レプリケーションと AUTO_INCREMENT
17.4.1.2 レプリケーションと BLACKHOLE テーブル
17.4.1.3 レプリケーションと文字セット
17.4.1.4 CREATE ... IF NOT EXISTS ステートメントのレプリケーション
17.4.1.5 CREATE TABLE ... SELECT ステートメントのレプリケーション
17.4.1.6 CREATE SERVER、ALTER SERVER、および DROP SERVER のレプリケーション
17.4.1.7 CURRENT_USER() のレプリケーション
17.4.1.8 DROP ... IF EXISTS ステートメントのレプリケーション
17.4.1.9 テーブル定義が異なるマスターとスレーブでのレプリケーション
17.4.1.10 レプリケーションと DIRECTORY テーブルオプション
17.4.1.11 呼び出される機能のレプリケーション
17.4.1.12 レプリケーションと浮動小数点値
17.4.1.13 レプリケーションと小数秒サポート
17.4.1.14 レプリケーションと FLUSH
17.4.1.15 レプリケーションとシステム関数
17.4.1.16 レプリケーションと LIMIT
17.4.1.17 レプリケーションと LOAD DATA INFILE
17.4.1.18 レプリケーションと REPAIR TABLE
17.4.1.19 レプリケーションとマスターまたはスレーブシャットダウン
17.4.1.20 レプリケーションと max_allowed_packet
17.4.1.21 レプリケーションと MEMORY テーブル
17.4.1.22 レプリケーションと一時テーブル
17.4.1.23 mysql システムデータベースのレプリケーション
17.4.1.24 レプリケーションとクエリーオプティマイザ
17.4.1.25 レプリケーションと予約語
17.4.1.26 レプリケーション中のスレーブエラー
17.4.1.27 サーバー側ヘルプテーブルのレプリケーション
17.4.1.28 レプリケーションとサーバー SQL モード
17.4.1.29 レプリケーション再試行とタイムアウト
17.4.1.30 レプリケーションとタイムゾーン
17.4.1.31 レプリケーションとトランザクション
17.4.1.32 レプリケーションとトリガー
17.4.1.33 レプリケーションと TRUNCATE TABLE
17.4.1.34 レプリケーションと変数
17.4.1.35 レプリケーションとビュー

以降のセクションでは、MySQL レプリケーションでサポートされていることとされていないことに関する情報、および特定のステートメントの複製時に発生する可能性がある固有の問題と状況に関する情報を提供します。

ステートメントベースレプリケーションは、SQL レベルでのマスターとスレーブ間の互換性に依存します。つまり、SBR が成功するには、使用する SQL 機能がマスターおよびスレーブサーバーの両方でサポートされる必要があります。たとえば、マスターサーバーで MySQL 5.6 (以降) でのみ利用できる機能を使用する場合、MySQL 5.5 (以前) を使用するスレーブに複製できません。

このような非互換性は、本番前リリースの MySQL を使用するときのリリースシリーズ内で発生することもあります。たとえば、SLEEP() 関数は MySQL 5.0.12 以降で使用できます。この関数をマスターで使用する場合、MySQL 5.0.11 以前を使用するスレーブに複製できません。

このため、本番設定のステートメントベースレプリケーションには、GA (Generally Available) リリースの SQL を使用してください。あるリリースシリーズが GA リリースステータスに到達すると、オラクルはそのシリーズ内で新しい SQL ステートメントを導入したりそれらの機能を変更したりしないためです。

MySQL 5.6 と 1 つ前の MySQL リリースシリーズとの間でステートメントベースレプリケーションを使用することを計画している場合は、そのシリーズのレプリケーション特性に関する情報について、以前のリリースシリーズに対応するエディションの MySQL リファレンスマニュアルを参照することもお勧めします。

MySQL のステートメントベースレプリケーションでは、ストアドルーチンまたはトリガーの複製で問題が発生する場合があります。これらの問題は、代わりに MySQL の行ベースのレプリケーションを使用することで回避できます。問題の詳細な一覧は、セクション20.7「ストアドプログラムのバイナリロギング」を参照してください。行ベースロギングおよび行ベースレプリケーションに関する詳細は、セクション5.2.4.1「バイナリロギング形式」およびセクション17.1.2「レプリケーション形式」を参照してください。

レプリケーションおよび InnoDB に固有の追加情報については、セクション14.17「InnoDB と MySQL レプリケーション」を参照してください。MySQL Cluster でのレプリケーションに関連する情報は、セクション18.6「MySQL Cluster レプリケーション」を参照してください。


User Comments
  Posted by Vasilli Stepanov on August 24, 2007
I use deleting requests from slave in one of my projects to save requests history on master. So I noticed that INSERT IGNORE query with affected rows 0 wouldn't be replicated.
So if you want to get asynchronous data on slave use INSERT ON DUPLICATE KEY UPDATE or REPLACE.
Sign Up Login You must be logged in to post a comment.