【DB】 Replication(レプリケーション)

【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