【1】レプリケーション
* データベース全体のコピーを作ったり、そのコピーのこと => テーブルなどの各種DBオブジェクトの複製を、他サーバ上に作成する機能 * MySQL、PostgreSQLなどがサポート * Replication = 「複製」 (cf. レプリカ)
【2】使用目的
1)負荷分散 2)可用性の向上 などなど
【3】用語
1)マスター / スレーブ
マスター(Master)
* 制御・操作する側の「マスター」機
スレーブ(Slave)
* 制御・操作される側の「スレーブ」機 * Slave = 奴隷
2)片方向 / 双方向
片方向
* 「マスター」→「スレーブ」に対して、データ転送 * 逆、つまり、「スレーブ」→「マスター」への転送はない
双方向(マルチマスタ)
* 全てが、「マスター」(マルチマスタ) * 「マスター兼スレーブ」⇔「マスター兼スレーブ」で、お互いにデータ転送する
【4】レプリケーションの方式
1)マスタスレーブ方式
* 更新可能なデータベース(マスタと呼びます)は1つだけ、 それ以外の複製されたデータベース(スレーブと呼ぶ)は読み取り専用
2)マルチマスタ方式
* 複数、あるいはすべてのデータベースが更新可能
【5】実現方式
1)データを転送する方式
メリット
* 同じデータが複製が可能
デメリット
* 転送されるデータのサイズが大きくなる
2)SQLを転送する方式
メリット
* 転送されるデータサイズが小さい
デメリット
* SQLの内容によっては、データが異なる可能性あり(現在時間、乱数使用時)
参考文献
リプリケーションの説明
http://www.oss-db.jp/measures/dojo_10.shtml
http://www.oss-db.jp/measures/dojo_11.shtml
http://www.atmarkit.co.jp/ait/articles/1307/05/news005.html
http://thinkit.co.jp/free/article/0603/10/4/
同期レプリケーション
http://codezine.jp/article/detail/7109
同期/非同期レプリケーション
http://powergres.sraoss.co.jp/s/ja/tech/exp/v91/03_promoted.php
ストリーミング・レプリケーション
http://thinkit.co.jp/book/2011/10/20/2309
リプリケーションの構築
http://d.hatena.ne.jp/Yosuke_Taka/20130525/1369470821
ストリーミング・レプリケーション環境の構築
http://symfoware.blog68.fc2.com/blog-entry-1234.html
レプリケーションとバックアップの違い
http://www.wareportal.co.jp/products/cluster/backup_cluster.html
関連記事
DBの種類による共通点と違い
https://dk521123.hatenablog.com/entry/2012/11/18/173301