Backup and restore database (cadangan dan mengembalikan database)

Backup and restore database (cadangan dan mengembalikan database)

Anda dapat menggunakan layanan database untuk backup (cadangan) database dan menyimpan artefak cadangan dalam pelayanan Object Storage. Kemudian, jika database asli rusak, Anda dapat menggunakan artefak cadangan untuk mengembalikan database. Proses pemulihan menciptakan instance database.

Contoh ini menunjukkan Anda bagaimana untuk backup dan restore database MySQL.

  1. Backup the database instance (cadangan instance database)

    Sebagai latar belakang, menganggap bahwa Anda telah membuat instance database dengan karakteristik sebagai berikut:

    • Nama database instance: guest1
    • Flavor ID: 10
    • Root volume size: 2
    • Databases: db1 and db2
    • Pengguna: pengguna user1 dengan kata sandi password

    Pertama, mendapatkan ID dari guest1 instance database dengan menggunakan perintah trove list:

    $ trove list
    
    +--------------------------------------+--------+-----------+-------------------+--------+-----------+------+
    |                  id                  |  name  | datastore | datastore_version | status | flavor_id | size |
    +--------------------------------------+--------+-----------+-------------------+--------+-----------+------+
    | 97b4b853-80f6-414f-ba6f-c6f455a79ae6 | guest1 |   mysql   |     mysql-5.5     | ACTIVE |     10    |  2   |
    +--------------------------------------+--------+-----------+-------------------+--------+-----------+------+
    

    Back up database instance dengan menggunakan perintah trove backup-create. Dalam contoh ini, cadangan ini disebut backup1. Dalam contoh ini, menggantikan INSTANCE_ID dengan 97b4b853-80f6-414f-ba6f-c6f455a79ae6:

    Catatan

    Sintaks perintah ini berkaitan hanya dengan python-troveclient versi 1.0.6 dan kemudian. versi sebelumnya mengharuskan Anda untuk lulus dalam nama backup sebagai argumen pertama.

    $ 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          |
    +-------------+--------------------------------------+
    

    Perhatikan bahwa hasil perintah kedua ID dari instance asli (instance_id) dan ID dari backup artifact (id).

    Kemudian, gunakan perintah: perintah harta backup-list untuk mendapatkan informasi ini:

    $ 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 |
    +--------------------------------------+--------------------------------------+---------+-----------+-----------+---------------------+
    

    Anda bisa mendapatkan informasi tambahan tentang backup (cadangan) dengan menggunakan perintah trove backup-show dan melewat BACKUP_ID, dimana 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                      |
    +-------------+----------------------------------------------------+
    
  2. Restore a database instance (Kembalikan instance database)

    Sekarang asumsikan bahwa Anda basis data instance guest1 rusak dan Anda perlu untuk mengembalikannya. Dalam contoh ini, Anda menggunakan perintah trove create untuk membuat sebuah instance database baru yang disebut ` guest2`.

    • Anda menentukan bahwa baru instance guest2 memiliki flavor yang sama (10) dan ukuran volume akar yang sama (2) seperti aslinya guest1 instance.
    • Anda menggunakan argumen --backup untuk menunjukkan bahwa instance baru ini didasarkan pada artefak cadangan yang diidentifikasi oleh BACKUP_ID. Dalam contoh ini, gantilah BACKUP_ID dengan 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}                     |
    +-------------------+----------------------------------------------+
    
  3. Verify backup (Verifikasi cadangan)

    Sekarang periksa bahwa baru instance guest2 memiliki karakteristik yang sama seperti aslinya instance guest1.

    Mulai dengan mendapatkan ID yang baru instance guest2.

    $ 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   |
    +-----------+--------+-----------+-------------------+--------+-----------+------+
    

    Gunakan perintah trove show untuk menampilkan informasi tentang instance guest2 baru. Lulus dalam guest2 ini INSTANCE_ID, yang merupakan 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                 |
    +-------------------+--------------------------------------+
    

    Perhatikan bahwa data store, ID flavor, dan ukuran volume yang memiliki nilai yang sama seperti pada aslinya instance guest1.

    Gunakan perintah trove database-list untuk memeriksa bahwa database asli (` db1` dan` db2`) yang hadir pada instance dipulihkan.

    $ trove database-list INSTANCE_ID
    
    +--------------------+
    |        name        |
    +--------------------+
    |        db1         |
    |        db2         |
    | performance_schema |
    |        test        |
    +--------------------+
    

    Gunakan perintah trove user-list untuk memeriksa bahwa pengguna asli (` user1`) hadir pada instance dipulihkan.

    $ trove user-list INSTANCE_ID
    
    +--------+------+-----------+
    |  name  | host | databases |
    +--------+------+-----------+
    | user1  |  %   |  db1, db2 |
    +--------+------+-----------+
    
  4. Notify users (Beritahu pengguna)

    Memberitahu pengguna yang mengakses instance database now-disabled guest1 bahwa mereka sekarang dapat mengakses guest2. Menyediakan mereka dengan nama guest2, alamat IP, dan informasi lainnya yang mungkin mereka butuhkan. (Anda bisa mendapatkan informasi ini dengan menggunakan perintah trove show )

  5. Clean up (Membersihkan)

    Pada titik ini, Anda mungkin ingin menghapus instance guest1 disabled, dengan menggunakan perintah trove delete.

    $ trove delete INSTANCE_ID
    
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.