【DB】 レプリケーション

レプリケーション

 * Replication = 「複製」 (cf. レプリカ)

 * データベースを複製する機能
  => テーブルなどの各種DBオブジェクトの複製を、他サーバ上に作成する機能

 * MySQLPostgreSQLなどがサポート

■ 使用目的

 [1] 負荷分散
 [2] 可用性の向上

■ 用語

マスター / スレーブ

マスター(Master)
 * 制御・操作する側の「マスター」機
スレーブ(Slave)
 * 制御・操作される側の「スレーブ」機
 * Slave = 奴隷

片方向 / 双方向

片方向
 * 「マスター」→「スレーブ」に対して、データ転送
 * 逆、つまり、「スレーブ」→「マスター」への転送はない
双方向(マルチマスタ)
 * 全てが、「マスター」(マルチマスタ)
 * 「マスター兼スレーブ」⇔「マスター兼スレーブ」で、お互いにデータ転送する

レプリケーションの方式

 [1] マスタスレーブ方式
    => 更新可能なデータベース(マスタと呼びます)は1つだけ、
       それ以外の複製されたデータベース(スレーブと呼びます)は読み取り専用
 [2] マルチマスタ方式
    => 複数、あるいはすべてのデータベースが更新可能

■ 実現方式

 [1] データを転送する方式
    => メリット :同じデータが複製が可能
    => デメリット:転送されるデータのサイズが大きくなる
 [2] SQLを転送する方式
    => メリット :転送されるデータサイズが小さい
    => デメリット:SQLの内容によっては、データが異なる可能性あり(現在時間、乱数使用時)


関連記事

高可用性システム構築について

http://blogs.yahoo.co.jp/dk521123/34672360.html