データベースをバックアップし、Object Storage サービスにバックアップを保存するために、Database を使用できます。後から、元のデータベースが破壊された場合、データベースをリストアするために、バックアップを使用できます。リストア処理は、データベースインスタンスを作成します。
この例は、MySQL データベースをバックアップし、リストアする方法を示します。
データベースインスタンスのバックアップ
背景として、以下の特性を持つデータベースインスタンスを作成してあることを仮定しています。
guest1
10
2
db1
および db2
user1
、パスワード password
まず、 trove list コマンドを使用して、guest1
データベースインスタンスの ID を取得します。
$ trove list
+--------------------------------------+--------+-----------+-------------------+--------+-----------+------+
| id | name | datastore | datastore_version | status | flavor_id | size |
+--------------------------------------+--------+-----------+-------------------+--------+-----------+------+
| 97b4b853-80f6-414f-ba6f-c6f455a79ae6 | guest1 | mysql | mysql-5.5 | ACTIVE | 10 | 2 |
+--------------------------------------+--------+-----------+-------------------+--------+-----------+------+
trove backup-create コマンドを使用して、データベースインスタン`backup1`` という名前です。INSTANCE_ID
を 97b4b853-80f6-414f-ba6f-c6f455a79ae6
に置き換えます。
注釈
このコマンド構文は、python-troveclient のバージョン 1.0.6 以降のみ利用できます。これ以前のバージョンは、バックアップ名を最初の引数として渡す必要があります。
$ trove backup-create INSTANCE_ID backup1
+-------------+--------------------------------------+
| Property | Value |
+-------------+--------------------------------------+
| created | 2014-03-18T17:09:07 |
| description | None |
| id | 8af30763-61fd-4aab-8fe8-57d528911138 |
| instance_id | 97b4b853-80f6-414f-ba6f-c6f455a79ae6 |
| locationRef | None |
| name | backup1 |
| parent_id | None |
| size | None |
| status | NEW |
| updated | 2014-03-18T17:09:07 |
+-------------+--------------------------------------+
このコマンドは、元のインスタンス ID (instance_id
) とバックアップの ID (id
) を返します。
後ほど、 trove configuration-parameter-list コマンドを使用して、この情報を取得します。
$ trove backup-list
+--------------------------------------+--------------------------------------+---------+-----------+-----------+---------------------+
| id | instance_id | name | status | parent_id | updated |
+--------------------------------------+--------------------------------------+---------+-----------+-----------+---------------------+
| 8af30763-61fd-4aab-8fe8-57d528911138 | 97b4b853-80f6-414f-ba6f-c6f455a79ae6 | backup1 | COMPLETED | None | 2014-03-18T17:09:11 |
+--------------------------------------+--------------------------------------+---------+-----------+-----------+---------------------+
trove backup-show コマンドを使用して、BACKUP_ID
を渡すことにより、追加の情報を取得できます。ここでは 8af30763-61fd-4aab-8fe8-57d528911138
です。
$ trove backup-show BACKUP_ID
+-------------+----------------------------------------------------+
| Property | Value |
+-------------+----------------------------------------------------+
| created | 2014-03-18T17:09:07 |
| description | None |
| id | 8af...138 |
| instance_id | 97b...ae6 |
| locationRef | http://10.0.0.1:.../.../8af...138.xbstream.gz.enc |
| name | backup1 |
| parent_id | None |
| size | 0.17 |
| status | COMPLETED |
| updated | 2014-03-18T17:09:11 |
+-------------+----------------------------------------------------+
データベースインスタンスのリストア
ここで guest1
データベースインスタンスが破壊され、リストアする必要があると仮定します。この例では、guest2
という名前の新規データベースインスタンスを作成するために、 trove create コマンドを使用します。
guest2
インスタンスが同じフレーバー (10
) を持ち、元の guest1
インスタンスと同じ容量のルートボリューム (2
) を持つことを指定します。BACKUP_ID
により識別されるバックアップに基づくことを指定するために、--backup
引数を使用します。この例では、BACKUP_ID
を 8af30763-61fd-4aab-8fe8-57d528911138
を置き換えます。$ trove create guest2 10 --size 2 --backup BACKUP_ID
+-------------------+----------------------------------------------+
| Property | Value |
+-------------------+----------------------------------------------+
| created | 2014-03-18T17:12:03 |
| datastore | {u'version': u'mysql-5.5', u'type': u'mysql'}|
|datastore_version | mysql-5.5 |
| flavor | {u'id': u'10', u'links': [{u'href': ...]} |
| id | ac7a2b35-a9b4-4ff6-beac-a1bcee86d04b |
| name | guest2 |
| status | BUILD |
| updated | 2014-03-18T17:12:03 |
| volume | {u'size': 2} |
+-------------------+----------------------------------------------+
バックアップの検証
新しい guest2
インスタンスが、元の guest1
インスタンスと同じ特性を持つことを確認します。
まず新しい guest2
インスタンスの ID を取得します。
$ trove list
+-----------+--------+-----------+-------------------+--------+-----------+------+
| id | name | datastore | datastore_version | status | flavor_id | size |
+-----------+--------+-----------+-------------------+--------+-----------+------+
| 97b...ae6 | guest1 | mysql | mysql-5.5 | ACTIVE | 10 | 2 |
| ac7...04b | guest2 | mysql | mysql-5.5 | ACTIVE | 10 | 2 |
+-----------+--------+-----------+-------------------+--------+-----------+------+
新しい guest2 インスタンスの情報を表示するために、 trove show コマンドを使用します。guest2 の INSTANCE_ID
を渡します。ここでは、ac7a2b35-a9b4-4ff6-beac-a1bcee86d04b
です。
$ trove show INSTANCE_ID
+-------------------+--------------------------------------+
| Property | Value |
+-------------------+--------------------------------------+
| created | 2014-03-18T17:12:03 |
| datastore | mysql |
| datastore_version | mysql-5.5 |
| flavor | 10 |
| id | ac7a2b35-a9b4-4ff6-beac-a1bcee86d04b |
| ip | 10.0.0.3 |
| name | guest2 |
| status | ACTIVE |
| updated | 2014-03-18T17:12:06 |
| volume | 2 |
| volume_used | 0.18 |
+-------------------+--------------------------------------+
データストア、フレーバー ID、ボリューム容量が、元の guest1
インスタンスと同じ値を持つことに注意します。
trove database-list コマンドを使用して、元のデータベース (db1
、db2
) がリストアされたインスタンスに存在することを確認します。
$ trove database-list INSTANCE_ID
+--------------------+
| name |
+--------------------+
| db1 |
| db2 |
| performance_schema |
| test |
+--------------------+
trove user-list コマンドを使用して、元のユーザー (user1
) がリストアされたインスタンスに存在することを確認します。
$ trove user-list INSTANCE_ID
+--------+------+-----------+
| name | host | databases |
+--------+------+-----------+
| user1 | % | db1, db2 |
+--------+------+-----------+
ユーザーへの通知
いま無効化されている guest1
データベースインスタンスにアクセスしていたユーザーに、guest2
にアクセスできることを通知します。guest2
の名前、IP アドレス、他の必要な情報を提供します。(trove show コマンドを使用して、この情報を取得できます。)
クリーンアップ
この時点で、 trove delete コマンドを使用して、無効化された guest1
インスタンスを削除したいかもしれません。
$ trove delete INSTANCE_ID
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.