ClusterControl 1.7.1 memperkenalkan fitur baru yang disebut Create Cluster from Backup, yang memungkinkan Anda untuk menerapkan cluster baru berbasis MySQL atau Postgres dan memulihkan data di dalamnya dari cadangan. Entri blog ini menunjukkan cara kerja fitur baru ini, dan bagaimana jenis otomatisasi ini dapat memberikan peningkatan pada operasi infrastruktur Anda.
Memperkenalkan:Buat Cluster dari Cadangan
Manajemen pencadangan adalah fitur yang paling disukai oleh pengguna kami, dan kami baru saja meningkatkannya ke tingkat berikutnya. Fungsionalitas baru ini terdengar sederhana - ClusterControl 1.7.1 dapat menerapkan cluster baru dari cadangan yang ada. Namun, ada beberapa prosedur dan pemeriksaan yang terlibat untuk men-deploy cluster tingkat produksi langsung dari cadangan. Restorasi sendiri memiliki tantangan tersendiri, seperti:
- Konsekuensi pemulihan penuh atau sebagian
- Pencadangan dasar dan pemesanan cadangan tambahannya (untuk pencadangan tambahan)
- Dekripsi cadangan (jika dienkripsi)
- Opsi alat pemulihan
- Dekompresi (jika dikompresi)
- Cadangkan streaming dari sumber ke server tujuan
- Penggunaan ruang disk selama dan setelah pemulihan
- Pelaporan kemajuan pemulihan
Menggabungkan di atas dengan kompleksitas dan pengulangan tugas penyebaran cluster database, Anda dapat menghemat waktu dan mengurangi risiko dalam menjalankan prosedur rawan kesalahan. Bagian tersulit dari sudut pandang pengguna adalah memilih cadangan mana yang akan dipulihkan. ClusterControl akan menangani semua pekerjaan berat di belakang layar, dan melaporkan hasil akhirnya setelah selesai.
Langkah-langkahnya pada dasarnya sederhana:
- Siapkan SSH tanpa kata sandi dari node ClusterControl ke server baru.
- Pilih satu cadangan logis dari daftar cadangan, atau buat satu di bawah Cadangan -> Buat Cadangan .
- Klik Pulihkan -> Buat Cluster dari Cadangan dan ikuti wizard penerapan.
Fitur ini khusus dibangun untuk MySQL Galera Cluster dan PostgreSQL saat ini. Inilah yang akan Anda lihat di UI setelah mengeklik "Pulihkan" pada cadangan yang ada:
Opsi bawah adalah apa yang kita cari. Berikutnya, adalah dialog ringkasan pada cadangan yang dipilih sebelum konfigurasi penerapan:
Selanjutnya, wizard penyebaran cluster database yang sama untuk masing-masing cluster (MySQL Galera Cluster atau PostgreSQL) akan ditampilkan untuk mengonfigurasi cluster baru:
Perhatikan bahwa Anda harus menentukan nama pengguna dan kata sandi root/admin database yang sama dengan yang Anda miliki di cadangan. Jika tidak, penerapan akan gagal di tengah jalan saat memulai node pertama. Secara umum, prosedur pemulihan dan penerapan akan terjadi dalam urutan berikut:
- Instal perangkat lunak dan dependensi yang diperlukan pada semua node database.
- Mulai simpul pertama.
- Streaming dan pulihkan cadangan pada node pertama (dengan tanda mulai ulang otomatis).
- Konfigurasikan dan tambahkan node lainnya.
Cluster database baru akan dicantumkan di bawah dasbor cluster ClusterControl setelah pekerjaan selesai.
Apa yang dapat Anda peroleh darinya?
Ada beberapa hal yang dapat Anda manfaatkan dari fitur ini, seperti yang dijelaskan di bagian berikut.
Uji kumpulan data Anda dalam berbagai kondisi
Terkadang, Anda mungkin bertanya-tanya apakah versi database baru akan berfungsi atau berfungsi untuk beban kerja database Anda dan mengujinya adalah satu-satunya cara untuk mengetahuinya. Di sinilah fitur ini berguna. Hal ini memungkinkan Anda untuk melakukan pengujian dan benchmark pada banyak variabel yang terlibat yang akan mempengaruhi stabilitas atau kinerja database, misalnya, hardware yang mendasari, versi software, vendor dan database atau beban kerja aplikasi.
Sebagai contoh sederhana, ada peningkatan besar pada eksekusi DDL antara MySQL 5.6 dan MySQL 5.7. Operasi DROP berikut pada tabel 10 juta baris membuktikan semuanya:
mysql-5.7> ALTER TABLE sbtest1 DROP COLUMN xx;
Query OK, 0 rows affected (1 min 58.12 sec)
mysql-5.6> ALTER TABLE sbtest1 DROP COLUMN xx;
Query OK, 0 rows affected (2 min 23.74 sec)
Memiliki cluster lain untuk dibandingkan sebenarnya memungkinkan kami mengukur peningkatan dan membenarkan migrasi.
Migrasi basis data dengan pencadangan logis
Cadangan logis seperti mysqldump dan pg_dumpall adalah cara teraman untuk meningkatkan, menurunkan, atau memigrasikan data Anda dari satu versi atau vendor ke versi lain. Semua backup logis dapat digunakan untuk melakukan migrasi database. Langkah-langkah peningkatan basis data pada dasarnya sederhana:
- Buat (atau jadwalkan) pencadangan logis - mysqldump untuk MySQL atau pg_dumpall untuk PostgreSQL
- Siapkan SSH tanpa kata sandi dari node ClusterControl ke server baru.
- Pilih satu cadangan logis yang dibuat dari daftar cadangan.
- Klik Pulihkan -> Buat Cluster dari Cadangan dan ikuti wizard penerapan.
- Verifikasi pemulihan data pada cluster baru.
- Arahkan aplikasi Anda ke cluster baru.
Waktu pemulihan cluster total lebih cepat
Bayangkan kegagalan besar yang mencegah cluster Anda berjalan, seperti misalnya kegagalan penyimpanan terpusat yang memengaruhi semua mesin virtual yang terhubung dengannya, Anda bisa segera mendapatkan cluster pengganti (asalkan file cadangan disimpan di luar node database yang gagal , menyatakan yang sudah jelas). Fitur ini dapat diotomatisasi melalui klien s9s, di mana Anda dapat memicu pekerjaan melalui antarmuka baris perintah, misalnya:
$ s9s cluster \
--create \
--cluster-type=postgresql \
--nodes="192.168.0.101?master;192.168.0.102?slave;192.168.0.103?slave" \
--provider-version=11 \
--db-admin=postgres \
--db-admin-passwd='s3cr3tP455' \
--os-user=root \
--os-key-file=/root/.ssh/id_rsa \
--cluster-name="PostgreSQL 9.6 - Test"
--backup-id=214 \
--log
Satu hal yang perlu diperhatikan saat menggunakan fitur ini adalah menggunakan nama pengguna dan kata sandi admin yang sama dengan yang disimpan di cadangan. Selain itu, SSH tanpa kata sandi ke semua node basis data harus dikonfigurasi sebelumnya. Jika tidak, jika Anda lebih suka mengonfigurasinya secara interaktif, cukup gunakan antarmuka UI web.
Skalakan melalui Replikasi Asinkron
Untuk MySQL Galera Cluster, cluster yang baru dibuat memiliki kemungkinan untuk diskalakan melalui replikasi asinkron MySQL. Katakanlah kita sudah memulihkan cluster baru di kantor berdasarkan cadangan terbaru dari cluster produksi di pusat data, dan kita ingin cluster kantor terus mereplikasi dari cluster produksi, seperti yang diilustrasikan dalam diagram berikut:
Anda kemudian dapat menyiapkan tautan replikasi asinkron dengan menggunakan cara berikut:
-
Pilih satu node dalam produksi dan aktifkan logging biner (jika dinonaktifkan). Buka Node -> pilih node -> Node Actions -> Aktifkan Binary Logging.
-
Aktifkan pencatatan log biner di semua node untuk kluster kantor. Tindakan ini memerlukan restart bergulir yang akan dilakukan secara otomatis jika Anda memilih "Ya" di bawah tarik-turun "Node mulai ulang otomatis":
Jika tidak, Anda dapat melakukan operasi ini tanpa downtime dengan menggunakan Manage -> Upgrade -> Rolling Restart (atau restart secara manual satu node pada satu waktu).
-
Buat pengguna replikasi di kluster produksi dengan menggunakan Kelola -> Skema dan Pengguna -> Pengguna -> Buat Pengguna Baru:
-
Kemudian, pilih satu node untuk direplikasi ke node master di cluster produksi dan siapkan link replikasi:
mysql> CHANGE MASTER master_host = 'prod-mysql1', master_user = 'slave', master_password = 'slavepassw0rd', master_auto_position = 1; mysql> START SLAVE;
-
Verifikasi apakah replikasi berjalan:
Pastikan Slave_IO_Thread dan Slave_SQL_thread melaporkan 'Ya'. Cluster kantor harus mulai mengejar master node jika tertinggal.mysql> SHOW SLAVE STATUS\G
Itu saja untuk saat ini!