Mengelola konfigurasi database

Mengelola konfigurasi database

Anda dapat mengelola tugas konfigurasi database dengan menggunakan kelompok konfigurasi. Kelompok konfigurasi memungkinkan Anda mengatur opsi konfigurasi, dalam jumlah besar, pada satu atau lebih database.

Contoh ini mengasumsikan Anda telah membuat database MySQL dan menunjukkan cara menggunakan kelompok konfigurasi untuk mengkonfigurasinya. Meskipun contoh ini menetapkan hanya satu pilihan pada satu database, Anda dapat menggunakan prosedur yang sama untuk mengatur beberapa pilihan di beberapa instance database seluruh lingkungan Anda. Hal ini dapat memberikan penghematan waktu yang signifikan dalam mengelola cloud Anda.

Konfigurasi massal database (bulk-configure database)

  1. List available options (daftar pilihan yang tersedia)

    Pertama, tentukan opsi konfigurasi dimana Anda dapat mengatur. Versi penyimpanan data yang berbeda memiliki opsi konfigurasi yang berbeda.

    Daftar nama dan ID dari semua versi yang tersedia dari penyimpanan data mysql:

    $ trove datastore-version-list mysql
    
    +--------------------------------------+-----------+
    |                  id                  |    name   |
    +--------------------------------------+-----------+
    | eeb574ce-f49a-48b6-820d-b2959fcd38bb | mysql-5.5 |
    +--------------------------------------+-----------+
    

    Melewatkan dalam ID versi penyimpanan data dengan perintah trove configuration-parameter-list untuk mendapatkan opsi yang tersedia:

    $ trove configuration-parameter-list DATASTORE_VERSION_ID
    
    +--------------------------------+---------+---------+----------------------+------------------+
    |              name              |   type  |   min   |         max          | restart_required |
    +--------------------------------+---------+---------+----------------------+------------------+
    |    auto_increment_increment    | integer |    1    |        65535         |      False       |
    |     auto_increment_offset      | integer |    1    |        65535         |      False       |
    |           autocommit           | integer |    0    |          1           |      False       |
    |    bulk_insert_buffer_size     | integer |    0    | 18446744073709547520 |      False       |
    |      character_set_client      |  string |         |                      |      False       |
    |    character_set_connection    |  string |         |                      |      False       |
    |     character_set_database     |  string |         |                      |      False       |
    |    character_set_filesystem    |  string |         |                      |      False       |
    |     character_set_results      |  string |         |                      |      False       |
    |      character_set_server      |  string |         |                      |      False       |
    |      collation_connection      |  string |         |                      |      False       |
    |       collation_database       |  string |         |                      |      False       |
    |        collation_server        |  string |         |                      |      False       |
    |        connect_timeout         | integer |    1    |        65535         |      False       |
    |        expire_logs_days        | integer |    1    |        65535         |      False       |
    |    innodb_buffer_pool_size     | integer |    0    |     68719476736      |       True       |
    |     innodb_file_per_table      | integer |    0    |          1           |       True       |
    | innodb_flush_log_at_trx_commit | integer |    0    |          2           |      False       |
    |     innodb_log_buffer_size     | integer | 1048576 |      4294967296      |       True       |
    |       innodb_open_files        | integer |    10   |      4294967296      |       True       |
    |   innodb_thread_concurrency    | integer |    0    |         1000         |      False       |
    |      interactive_timeout       | integer |    1    |        65535         |      False       |
    |        join_buffer_size        | integer |    0    |      4294967296      |      False       |
    |        key_buffer_size         | integer |    0    |      4294967296      |      False       |
    |          local_infile          | integer |    0    |          1           |      False       |
    |       max_allowed_packet       | integer |   1024  |      1073741824      |      False       |
    |       max_connect_errors       | integer |    1    | 18446744073709547520 |      False       |
    |        max_connections         | integer |    1    |        65535         |      False       |
    |      max_user_connections      | integer |    1    |        100000        |      False       |
    |    myisam_sort_buffer_size     | integer |    4    | 18446744073709547520 |      False       |
    |           server_id            | integer |    1    |        100000        |       True       |
    |        sort_buffer_size        | integer |  32768  | 18446744073709547520 |      False       |
    |          sync_binlog           | integer |    0    | 18446744073709547520 |      False       |
    |          wait_timeout          | integer |    1    |       31536000       |      False       |
    +--------------------------------+---------+---------+----------------------+------------------+
    

    Dalam contoh ini, perintah trove configuration-parameter-list mengembalikan daftar pilihan yang berjalan dengan MySQL 5.5.

  2. Create a configuration group (buat kelompok konfigurasi)

    Sebuah kelompok konfigurasi berisi daftar pasangan kunci-nilai (key-value pair) yang dipisahkan koma (comma-separated) . Setiap pasangan terdiri dari opsi konfigurasi dan nilainya.

    Anda dapat membuat kelompok konfigurasi dengan menggunakan perintah trove configuration-create. Sintaks umum untuk perintah ini adalah:

    $ trove configuration-create NAME VALUES --datastore DATASTORE_NAME
    
    • NAME. Nama Anda ingin gunakan untuk kelompok ini.
    • VALUES. Daftar pasangan kunci-nilai (key-value pair).
    • DATASTORE_NAME. Nama penyimpanan data yang terkait.

    Set VALUES sebagai kamus JSON, misalnya:

    {"myFirstKey" : "someString", "mySecondKey" : 1}
    

    Contoh ini membuat kelompok konfigurasi yang disebut group1. group1 hanya mengandung satu pasangan kunci dan nilai, dan pasangan ini menetapkan opsi sync_binlog ke 1.

    $ trove configuration-create group1 '{"sync_binlog" : 1}' --datastore mysql
    
    +----------------------+--------------------------------------+
    |       Property       |                Value                 |
    +----------------------+--------------------------------------+
    | datastore_version_id | eeb574ce-f49a-48b6-820d-b2959fcd38bb |
    |     description      |                 None                 |
    |          id          | 9a9ef3bc-079b-476a-9cbf-85aa64f898a5 |
    |         name         |                group1                |
    |        values        |          {"sync_binlog": 1}          |
    +----------------------+--------------------------------------+
    
  3. Examine your existing configuration (periksa konfigurasi yang ada)

    Sebelum Anda menggunakan kelompok konfigurasi yang baru dibuat (newly-created configuration group), lihat bagaimana opsi sync_binlog dikonfigurasi pada database Anda. Gantilah nilai hubungan sampel berikut dengan nilai yang menghubungkan ke database Anda:

    $ mysql -u user7 -ppassword -h 172.16.200.2 myDB7
     Welcome to the MySQL monitor. Commands end with ; or \g.
     ...
     mysql> show variables like 'sync_binlog';
     +---------------+-------+
     | Variable_name | Value |
     +---------------+-------+
     | sync_binlog   | 0     |
     +---------------+-------+
    

    Seperti yang Anda lihat, opsi sync_binlog saat ini diatur ke 0 untuk database myDB7.

  4. Change the database configuration using a configuration group (mengubah konfigurasi database menggunakan kelompok konfigurasi)

    Anda dapat mengubah konfigurasi database dengan menghubungkan (attaching) kelompok konfigurasi untuk instance database. Anda melakukan ini dengan menggunakan perintah trove configuration-attach dan lewatkan di ID dari database instance dan ID dari kelompok konfigurasi.

    Dapatkan ID dari database instance:

    $ trove list
    
    +-------------+------------------+-----------+-------------------+--------+-----------+------+
    |     id      |       name       | datastore | datastore_version | status | flavor_id | size |
    +-------------+------------------+-----------+-------------------+--------+-----------+------+
    | 26a265dd... | mysql_instance_7 |   mysql   |     mysql-5.5     | ACTIVE |     6     |  5   |
    +-------------+------------------+-----------+-------------------+--------+-----------+------+
    

    Dapatkan ID dari kelompok konfigurasi:

    $ trove configuration-list
    
    +-------------+--------+-------------+---------------------+
    |    id       |  name  | description |datastore_version_id |
    +-------------+--------+-------------+---------------------+
    | 9a9ef3bc... | group1 |     None    |      eeb574ce...    |
    +-------------+--------+-------------+---------------------+
    

    Menghubungkan kelompok konfigurasi ke instance database:

    Catatan

    Sintaks perintah ini berkaitan hanya dengan python-troveclient versi 1.0.6 dan kemudian. Versi sebelumnya mengharuskan Anda untuk melewatkan dalam ID kelompok konfigurasi sebagai argumen pertama.

    $ trove configuration-attach DB_INSTANCE_ID CONFIG_GROUP_ID
    
  5. Re-examine the database configuration (pemeriksaan kembali konfigurasi database)

    Tampilkan kembali pengaturan sync_binlog:

    mysql> show variables like 'sync_binlog';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | sync_binlog   | 1     |
    +---------------+-------+
    

    Seperti yang Anda lihat, opsi sync_binlog ini telah diatur untuk 1, sebagaimana ditentukan dalam kelompok konfigurasi group1.

Conclusion (kesimpulan) Menggunakan kelompok konfigurasi untuk menetapkan opsi tunggal pada database tunggal jelas contoh sepele. Namun, kelompok konfigurasi dapat memberikan efisiensi besar ketika Anda mempertimbangkan bahwa:

  • Sekelompok konfigurasi dapat menentukan sejumlah besar nilai pilihan.
  • Anda dapat menerapkan kelompok konfigurasi untuk ratusan atau ribuan instance database di lingkungan Anda.

Digunakan dengan cara ini, kelompok konfigurasi membiarkan Anda mengubah konfigurasi cloud database Anda, dengan cepat, dalam skala besar.

Maintenance. (pemeliharaan) Ada juga sejumlah fitur pemeliharaan berguna untuk bekerja dengan kelompok konfigurasi. Kamu bisa:

  • Pisahkan kelompok konfigurasi dari instance database, gunakan perintah trove configuration-detach.
  • Memodifikasi kelompok konfigurasi dengan cepat, dengan menggunakan perintah trove configuration-patch.
  • Cari tahu apakah instance menggunakan kelompok konfigurasi, menggunakan perintah trove configuration-instances.
  • Menghapus kelompok konfigurasi, menggunakan perintah trove configuration-delete. Anda mungkin ingin melakukan hal ini jika tidak ada instance menggunakan kelompok.
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.