71b09bae42
Change-Id: I13f80047cf1fb64f3452f20df58cc3cf21a17456 Signed-off-by: Dariusz Krol <dkrol3@gmail.com> Signed-off-by: Dariusz Krol <d.krol@samsung.com>
111 lines
5.0 KiB
ReStructuredText
111 lines
5.0 KiB
ReStructuredText
===========================
|
|
Set up database replication
|
|
===========================
|
|
|
|
You can create a replica of an existing database instance. When you make
|
|
subsequent changes to the original instance, the system automatically
|
|
applies those changes to the replica.
|
|
|
|
- Replicas are read-only.
|
|
|
|
- When you create a replica, do not specify the ``--users`` or
|
|
``--databases`` options.
|
|
|
|
- You can choose a smaller volume or flavor for a replica than for the
|
|
original, but the replica's volume must be big enough to hold the
|
|
data snapshot from the original.
|
|
|
|
This example shows you how to replicate a MySQL database instance.
|
|
|
|
Set up replication
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
#. **Get the instance ID**
|
|
|
|
Get the ID of the original instance you want to replicate:
|
|
|
|
.. code-block:: console
|
|
|
|
$ openstack database instance list
|
|
+-----------+------------+-----------+-------------------+--------+-----------+------+
|
|
| id | name | datastore | datastore_version | status | flavor_id | size |
|
|
+-----------+------------+-----------+-------------------+--------+-----------+------+
|
|
| 97b...ae6 | base_1 | mysql | mysql-5.5 | ACTIVE | 10 | 2 |
|
|
+-----------+------------+-----------+-------------------+--------+-----------+------+
|
|
|
|
#. **Create the replica**
|
|
|
|
Create a new instance that will be a replica of the original
|
|
instance. You do this by passing in the ``--replica_of`` option with
|
|
the :command:`openstack database instance create` command. This example creates a replica
|
|
called ``replica_1``. ``replica_1`` is a replica of the original instance,
|
|
``base_1``:
|
|
|
|
.. code-block:: console
|
|
|
|
$ openstack database instance create replica_1 6 --size=5 \
|
|
--datastore_version mysql-5.5 \
|
|
--datastore mysql --replica_of ID_OF_ORIGINAL_INSTANCE
|
|
|
|
#. **Verify replication status**
|
|
|
|
Pass in ``replica_1``'s instance ID with the :command:`openstack database instance show` command
|
|
to verify that the newly created ``replica_1`` instance is a replica
|
|
of the original ``base_1``. Note that the ``replica_of`` property is
|
|
set to the ID of ``base_1``.
|
|
|
|
.. code-block:: console
|
|
|
|
$ openstack database instance 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 |
|
|
+-------------------+--------------------------------------+
|
|
|
|
Now pass in ``base_1``'s instance ID with the :command:`openstack database instance show` command
|
|
to list the replica(s) associated with the original instance. Note
|
|
that the ``replicas`` property is set to the ID of ``replica_1``. If
|
|
there are multiple replicas, they appear as a comma-separated list.
|
|
|
|
.. code-block:: console
|
|
|
|
$ openstack database instance 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 |
|
|
+-------------------+--------------------------------------+
|
|
|
|
#. **Detach the replica**
|
|
|
|
If the original instance goes down, you can detach the replica. The
|
|
replica becomes a standalone database instance. You can then take the
|
|
new standalone instance and create a new replica of that instance.
|
|
|
|
You detach a replica using the :command:`openstack database instance detach replica` command:
|
|
|
|
.. code-block:: console
|
|
|
|
$ openstack database instance detach replica INSTANCE_ID_OF_REPLICA
|