Incremental backups let you chain together a series of backups. You start with a regular backup. Then, when you want to create a subsequent incremental backup, you specify the parent backup.
Restoring a database instance from an incremental backup is the same as creating a database instance from a regular backup—the Database service handles the complexities of applying the chain of incremental backups.
This example shows you how to use incremental backups with a MySQL database.
Assumptions. Assume that you have created a regular backup for the following database instance:
guest1
INSTANCE_ID
):
792a6a56-278f-4a01-9997-d997fa126370
BACKUP_ID
):
6dc3a9b7-1f3e-4954-8582-3f2e4942cddd
Create your first incremental backup
Use the trove backup-create command and specify:
INSTANCE_ID
of the database instance you are doing the
incremental backup for (in this example,
792a6a56-278f-4a01-9997-d997fa126370
)backup1.1
BACKUP_ID
of the parent backup. In this case, the parent
is the regular backup, with an ID of
6dc3a9b7-1f3e-4954-8582-3f2e4942cddd
$ trove backup-create INSTANCE_ID backup1.1 --parent BACKUP_ID
+-------------+--------------------------------------+
| Property | Value |
+-------------+--------------------------------------+
| created | 2014-03-19T14:09:13 |
| description | None |
| id | 1d474981-a006-4f62-b25f-43d7b8a7097e |
| instance_id | 792a6a56-278f-4a01-9997-d997fa126370 |
| locationRef | None |
| name | backup1.1 |
| parent_id | 6dc3a9b7-1f3e-4954-8582-3f2e4942cddd |
| size | None |
| status | NEW |
| updated | 2014-03-19T14:09:13 |
+-------------+--------------------------------------+
Note that this command returns both the ID of the database instance
you are incrementally backing up (instance_id
) and a new ID for
the new incremental backup artifact you just created (id
).
Create your second incremental backup
The name of your second incremental backup is backup1.2
. This
time, when you specify the parent, pass in the ID of the incremental
backup you just created in the previous step (backup1.1
). In this
example, it is 1d474981-a006-4f62-b25f-43d7b8a7097e
.
$ trove backup-create INSTANCE_ID backup1.2 --parent BACKUP_ID
+-------------+--------------------------------------+
| Property | Value |
+-------------+--------------------------------------+
| created | 2014-03-19T14:09:13 |
| description | None |
| id | bb84a240-668e-49b5-861e-6a98b67e7a1f |
| instance_id | 792a6a56-278f-4a01-9997-d997fa126370 |
| locationRef | None |
| name | backup1.2 |
| parent_id | 1d474981-a006-4f62-b25f-43d7b8a7097e |
| size | None |
| status | NEW |
| updated | 2014-03-19T14:09:13 |
+-------------+--------------------------------------+
Restore using incremental backups
Now assume that your guest1
database instance is damaged and you
need to restore it from your incremental backups. In this example,
you use the trove create command to create a new database
instance called guest2
.
To incorporate your incremental backups, you simply use the
--backup
parameter to pass in the BACKUP_ID
of your most
recent incremental backup. The Database service handles the
complexities of applying the chain of all previous incremental
backups.
$ trove create guest2 10 --size 1 --backup BACKUP_ID
+-------------------+-----------------------------------------------------------+
| Property | Value |
+-------------------+-----------------------------------------------------------+
| created | 2014-03-19T14:10:56 |
| 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': u'https://10.125.1.135:8779/v1.0/ |
| | 626734041baa4254ae316de52a20b390/flavors/10', u'rel': |
| | u'self'}, {u'href': u'https://10.125.1.135:8779/ |
| | flavors/10', u'rel': u'bookmark'}]} |
| id | a3680953-eea9-4cf2-918b-5b8e49d7e1b3 |
| name | guest2 |
| status | BUILD |
| updated | 2014-03-19T14:10:56 |
| volume | {u'size': 1} |
+-------------------+-----------------------------------------------------------+
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.