Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menggunakan Penasihat Pencadangan Basis Data untuk Mengotomatiskan Tugas Pemeliharaan

Bencana biasanya menyebabkan pemadaman, yang berarti waktu henti sistem dan potensi kehilangan data. Setelah kami mendeteksi pemadaman, kami memicu rencana DR kami untuk pulih darinya. Tapi itu akan mengejutkan, jika tidak ada cadangan, atau setelah berjam-jam pemulihan, Anda melihat itu bukan yang Anda butuhkan.

Meskipun pemadaman dapat menimbulkan biaya yang mahal - sering kali ada dampak keuangan  yang dapat membahayakan bisnis dan kehilangan data dapat menjadi alasan untuk menutup perusahaan.

Untuk meminimalkan kehilangan data, kita perlu memiliki banyak salinan data di berbagai tempat. Kita dapat merancang infrastruktur kita di lapisan yang berbeda dan mengabstraksi setiap lapisan dari yang di bawahnya. Misalnya, kami membangun lapisan untuk cluster instance database untuk melindungi dari kegagalan perangkat keras. Kami mereplikasi basis data di seluruh pusat data sehingga kami dapat mempertahankan diri dari kegagalan pusat data. Setiap lapisan tambahan menambah kerumitan, yang bisa menjadi mimpi buruk untuk dikelola. Tapi tetap saja, pada dasarnya, cadangan akan mengambil tempat sentral dalam pemulihan bencana.

Itulah mengapa sangat penting untuk memastikan bahwa itu adalah sesuatu yang dapat kita andalkan. Tapi bagaimana untuk mencapai ini? Nah, salah satu opsinya adalah memverifikasi apakah pencadangan dijalankan berdasarkan beberapa baris terakhir skrip pencadangan.

Contoh sederhana:

#!/bin/sh

mysqldump -h 192.168.1.1 -u user -ppassword dbname > filename.sql



if [ "$?" -eq 0 ]; then

    echo "Success."

else

    echo "Error."

fi

Tetapi bagaimana jika skrip cadangan tidak mulai sama sekali? Google menawarkan sedikit hasil pencarian untuk "Linux cron, not running."

Sayangnya, database open-source sering kali tidak menawarkan repositori cadangan.

Pengujian cadangan lainnya. Anda mungkin pernah mendengar tentang kucing Schrödinger. Teori Cadangan Schrödinger yang terkenal adalah . "Kondisi pencadangan apa pun tidak diketahui sampai pemulihan dicoba." Kedengarannya seperti pendekatan yang sederhana tetapi upaya seperti itu berarti Anda harus menyiapkan lingkungan pengujian, menyalin file, menjalankan pemulihan ... setelah setiap pencadangan.

Dalam artikel ini, kita akan melihat bagaimana Anda dapat menggunakan ClusterControl untuk memastikan pencadangan Anda dijalankan untuk mencapai database Tingkat Perusahaan dengan Database Open Source.

Laporan Cadangan

ClusterControl ditujukan untuk laporan operasional. Pelaporan Operasional memberikan dukungan untuk pemantauan dan pengendalian aktivitas perusahaan sehari-hari. Laporan cadangan adalah salah satu dari banyak. Anda dapat menemukan laporan seperti:

  • Laporan Sistem Harian
  • Laporan Peningkatan Paket
  • Laporan Perubahan Skema
  • Ketersediaan 
  • Cadangan

Tapi mengapa Anda membutuhkan ini?

Anda mungkin sudah memiliki alat pemantauan yang sangat baik dengan semua metrik/grafik yang mungkin dan Anda mungkin juga telah menyiapkan peringatan berdasarkan metrik dan ambang batas (beberapa bahkan akan memiliki penasihat otomatis yang memberi mereka rekomendasi atau memperbaiki sesuatu secara otomatis.) Itu bagus - memiliki visibilitas ke dalam sistem itu penting; namun, Anda harus dapat memproses banyak informasi.

Bagaimana cara kerjanya? ClusterControl mengumpulkan informasi tentang proses pencadangan, sistem, platform, dan perangkat di infrastruktur pencadangan saat pekerjaan pencadangan dipicu. Semua informasi itu dikumpulkan dan disimpan dalam CMON (database internal), jadi tidak perlu lagi menanyakan database tertentu. Selain itu, ketika menemukan bahwa Anda memiliki cluster yang sedang berjalan, tetapi tidak ada cadangan, hal itu juga akan dilaporkan.

Dalam detail laporan, Anda dapat melacak  ID cadangan dengan data mendetail tentang lokasi, ukuran, waktu, dan metode pencadangan. Template bekerja dengan data untuk tipe database yang berbeda, jadi ketika Anda mengelola lingkungan campuran Anda, Anda akan mendapatkan nuansa dan tampilan yang sama. Ini membantu mengelola cadangan basis data yang berbeda dengan lebih baik.

Laporan CLI

Bagi mereka yang lebih menyukai antarmuka baris perintah, opsi yang baik untuk melacak cadangan ClusterControl Command Line Interface (CLI).

CLI memungkinkan Anda menjalankan sebagian besar fungsi yang tersedia dalam ClusterControl menggunakan perintah sederhana. Eksekusi pencadangan dan laporan pencadangan adalah salah satunya.

Digunakan bersama dengan GUI yang kuat, ini memberi pengguna ClusterControl cara alternatif untuk mengelola lingkungan database open-source mereka menggunakan mesin apa pun yang mereka inginkan.

$ s9s backup --list --cluster-id=1 --long --human-readable

ID CID STATE     OWNER HOSTNAME CREATED  SIZE FILENAME

 1   1 COMPLETED dba   10.0.0.5 07:21:39 252K mysqldump_2017-05-09_072135_mysqldb.sql.gz

 1   1 COMPLETED dba   10.0.0.5 07:21:43 1014 mysqldump_2017-05-09_072135_schema.sql.gz

 1   1 COMPLETED dba   10.0.0.5 07:22:03 109M mysqldump_2017-05-09_072135_data.sql.gz

 1   1 COMPLETED dba   10.0.0.5 07:22:07 679 mysqldump_2017-05-09_072135_triggerseventsroutines.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:20 252K mysqldump_2017-05-09_073016_mysqldb.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:24 1014 mysqldump_2017-05-09_073016_schema.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:44 109M mysqldump_2017-05-09_073016_data.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:49 679 mysqldump_2017-05-09_073016_triggerseventsroutines.sql.gz

Mulai dari versi 1.4.1, skrip penginstal akan menginstal paket ini secara otomatis pada node ClusterControl. CLI adalah bagian dari paket s9s-tools. Anda juga dapat menginstalnya secara terpisah pada mesin yang berbeda untuk mengelola cluster database dari jarak jauh. Mirip dengan ClusterControl, ia menggunakan komunikasi SSH yang aman.

Verifikasi Cadangan Otomatis

Cadangan bukanlah cadangan jika kita tidak dapat mengambil datanya. Memverifikasi cadangan adalah sesuatu yang biasanya diabaikan oleh banyak perusahaan. Mari kita lihat bagaimana ClusterControl dapat mengotomatiskan verifikasi cadangan dan membantu menghindari kejutan apa pun.

Di ClusterControl, pilih cluster Anda dan buka bagian "Cadangan", lalu pilih "Buat Cadangan".

Fitur verifikasi cadangan otomatis tersedia untuk pencadangan terjadwal jadi, mari kita pilih opsi “Jadwalkan Pencadangan”.

Saat menjadwalkan pencadangan, selain memilih opsi umum seperti metode atau penyimpanan, kami juga perlu menentukan jadwal/frekuensi. Dalam contoh ini, kita akan mengatur verifikasi cadangan MySQL. Namun hal yang sama dapat dicapai untuk database PostgreSQL dan Timescale.

Saat verifikasi cadangan dicentang, tab lain akan muncul.

Di sini kita dapat mengatur semua langkah yang diperlukan untuk mempersiapkan lingkungan. Ketika IP diberikan, kami siap untuk pergi dan menjadwalkan pencadangan tersebut. Setiap kali pencadangan selesai, pencadangan akan disalin ke lingkungan verifikasi pencadangan sementara (opsi "pulihkan cadangan aktif"). Setelah penyegaran berhasil, Anda akan melihat status verifikasi di tab repositori cadangan.

Eksekusi Pencadangan dan Layanan Integrasi Gagal

Opsi menarik lainnya untuk mendapatkan petunjuk lebih lanjut tentang eksekusi pencadangan adalah dengan menggunakan layanan Integrasi ClusterControl. Anda dapat mengontrol status eksekusi pencadangan dengan layanan pihak ketiga.

Integrasi alat pihak ketiga memungkinkan Anda untuk mengotomatiskan peringatan dengan sistem populer lainnya. Saat ini, ClusterControl mendukung ServiceNow, PagerDuty, VictorOps, OpsGenie, Slack, Telegram, dan Webhooks.

Di bawah ini kita dapat melihat contoh integrasi saluran Slack. Setiap kali acara pencadangan terjadi, itu akan muncul di saluran slack.

Kesimpulan

Pencadangan adalah wajib di lingkungan apa pun. Mereka membantu Anda melindungi data Anda dan berada di tengah skenario pemulihan bencana apa pun. ClusterControl dapat membantu mengotomatiskan proses pencadangan untuk database Anda dan, jika terjadi kegagalan, pulihkan dengan beberapa klik. Selain itu, Anda dapat yakin bahwa mereka dijalankan dengan sukses dan andal sehingga jika terjadi bencana, Anda tidak akan kehilangan data Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa kolom teks tidak dapat memiliki nilai default di MySQL?

  2. PyMySQL tidak dapat terhubung ke MySQL di localhost

  3. alternatif proxysql-admin - ClusterControl ProxySQL GUI

  4. kueri pemilihan mysql dalam array serial

  5. JSON_KEYS() – Mengembalikan Kunci dari Objek JSON di MySQL