データベースレプリケーションのセットアップ

データベースレプリケーションのセットアップ

既存のデータベースインスタンスにレプリカを作成できます。元のインスタンスを変更したとき、システムが自動的に、これらの変更をレプリカに適用します。

  • レプリカは読み込み専用です。
  • レプリカの作成時、--users--databases オプションを指定しないでください。
  • 複製に対して、元のものより小さなボリュームやフレーバーを選択できますが、複製のボリュームは元のデータのスナップショットを保持するために十分な大きさを持つ必要があります。

この例は、MySQL データベースインスタンスを複製する方法です。

レプリケーションのセットアップ

  1. インスタンス ID の取得

    複製したいインスタンスの ID を取得します。

    $ trove list
    +-----------+------------+-----------+-------------------+--------+-----------+------+
    |     id    |  name      | datastore | datastore_version | status | flavor_id | size |
    +-----------+------------+-----------+-------------------+--------+-----------+------+
    | 97b...ae6 | base_1     |   mysql   |     mysql-5.5     | ACTIVE |     10    |  2   |
    +-----------+------------+-----------+-------------------+--------+-----------+------+
    
  2. レプリカの作成

    元のインスタンスの複製になる、新しいインスタンスを作成します。 trove create コマンドに --replica_of オプションを渡して実行します。この例は、replica_1 という名前の複製を作成します。replica_1 は、元のインスタンス base_1 の複製です。

    $ trove create replica_1 6 --size=5 --datastore_version mysql-5.5 \
      --datastore mysql --replica_of ID_OF_ORIGINAL_INSTANCE
    
  3. 複製状態の検証

    trove show コマンドに replica_1 のインスタンス ID を渡し、新しく作成された replica_1 インスタンスが、元の base_1 の複製であることを検証します。replica_of プロパティが base_1 の ID に設定されていることに注意してください。

    $ trove show INSTANCE_ID_OF_REPLICA_1
    +-------------------+--------------------------------------+
    | Property          | Value                                |
    +-------------------+--------------------------------------+
    | created           | 2014-09-16T11:16:49                  |
    | datastore         | mysql                                |
    | datastore_version | mysql-5.5                            |
    | flavor            | 6                                    |
    | id                | 49c6eff6-ef91-4eff-91c0-efbda7e83c38 |
    | name              | replica_1                            |
    | replica_of        | 97b4b853-80f6-414f-ba6f-c6f455a79ae6 |
    | status            | BUILD                                |
    | updated           | 2014-09-16T11:16:49                  |
    | volume            | 5                                    |
    +-------------------+--------------------------------------+
    

    ここで、 trove show コマンドに base_1 のインスタンス ID に渡して、元のインスタンスに関連付けられている複製を一覧表示します。replica プロパティが replica_1 の ID に設定されていることに注意してください。複数のレプリカがある場合、コンマ区切りの一覧として表示されます。

    $ trove show INSTANCE_ID_OF_BASE_1
    +-------------------+--------------------------------------+
    | Property          | Value                                |
    +-------------------+--------------------------------------+
    | created           | 2014-09-16T11:04:56                  |
    | datastore         | mysql                                |
    | datastore_version | mysql-5.5                            |
    | flavor            | 6                                    |
    | id                | 97b4b853-80f6-414f-ba6f-c6f455a79ae6 |
    | ip                | 172.16.200.2                         |
    | name              | base_1                               |
    | replicas          | 49c6eff6-ef91-4eff-91c0-efbda7e83c38 |
    | status            | ACTIVE                               |
    | updated           | 2014-09-16T11:05:06                  |
    | volume            | 5                                    |
    | volume_used       | 0.11                                 |
    +-------------------+--------------------------------------+
    
  4. 複製の解除

    元のインスタンスが停止した場合、複製を解除できます。複製は、スタンドアロンのデータベースインスタンスになります。新しいスタンドアロンのインスタンスを持ち、インスタンスの新しい複製を作成できます。

    trove detach-replica コマンドを用いて、複製を解除します。

    $ trove detach-replica INSTANCE_ID_OF_REPLICA
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.