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

Backup Best Practices untuk MySQL, MariaDB dan Galera Cluster

Terima kasih banyak kepada semua orang yang mendaftar dan/atau berpartisipasi dalam webinar hari Selasa tentang strategi pencadangan dan praktik terbaik untuk cluster MySQL, MariaDB, dan Galera yang dipimpin oleh Krzysztof Książek, Senior Support Engineer di Somenines. Jika Anda melewatkan sesi tersebut, ingin menontonnya lagi atau menelusuri slide, mereka sekarang online untuk dilihat. Lihat juga transkrip sesi tanya jawab di bawah ini.

Tonton replay webinar

Baik Anda seorang SysAdmin, DBA, atau DevOps profesional yang mengoperasikan kluster MySQL, MariaDB, atau Galera dalam produksi, Anda harus memastikan bahwa pencadangan Anda dijadwalkan, dijalankan, dan diuji secara rutin. Krzysztof membagikan beberapa tips &trik praktik terbaiknya kemarin tentang cara melakukan hal itu; termasuk demo langsung dengan ClusterControl. Singkatnya, replay webinar ini menunjukkan pro dan kontra dari berbagai opsi pencadangan dan membantu Anda memilih yang paling sesuai dengan lingkungan Anda.

Selamat membuat cadangan!

Pertanyaan &Jawaban

T. Bisakah kita mengontrol I/O saat mengambil backup dengan mysqldump dan mysqldumper (saya telah menggunakan Nice sebelumnya, tetapi tidak membantu).

A. Secara teoritis mungkin, meskipun kami belum benar-benar mengujinya. Jika Anda benar-benar ingin menerapkan beberapa pembatasan maka Anda mungkin ingin melihat ke dalam cgroup - ini akan membantu Anda untuk membatasi aktivitas I/O pada basis per-proses.

T. Bisakah kita menggunakan mydumper dengan ClusterControl dan apakah ClusterControl adalah perangkat lunak gratis?

A. Saat ini kami tidak mendukungnya, tetapi Anda selalu dapat menggunakannya secara manual; ClusterControl tidak mencegah Anda menggunakan alat ini. Ada versi komunitas gratis dari ClusterControl, ya, meskipun fitur cadangannya adalah bagian dari versi komersial. Dengan versi komunitas gratis, Anda dapat menerapkan dan memantau database (cluster) Anda serta mengembangkan penasihat database kustom Anda sendiri. Anda juga memiliki masa percobaan satu bulan yang memberi Anda akses ke semua fitur ClusterControl. Anda dapat menemukan semua detail fitur di sini:https://severalnines.com/pricing

T. Dapatkah xtrabackup bekerja dengan enkripsi data-at-rest?

A. Ini dapat bekerja dengan data terenkripsi di MySQL atau Server Percona - karena mereka hanya mengenkripsi tablespace, yang hanya disalin xtrabackup - tidak harus mengakses konten tablespace. MariaDB tidak hanya mengenkripsi tablespace tetapi juga, misalnya, redo log InnoDB, yang harus diakses oleh xtrabackup - oleh karena itu xtrabackup tidak dapat bekerja dengan enkripsi data-at-rest seperti yang diterapkan di MariaDB. Karena itu, MariaDB Corporation melakukan fork xtrabackup ke MariaDB Backup. Alat ini mendukung enkripsi yang dilakukan oleh MariaDB.

T. Dapatkah Anda menggunakan mydumper untuk pemulihan point-in-time?

J. Ya, itu mungkin. mydumper dapat menyimpan data GTID sehingga Anda dapat mengidentifikasi transaksi terakhir yang diterapkan dan menggunakannya sebagai posisi awal untuk memproses log biner.

T. Apakah masalah jika kita menggunakan log biner dengan xtrabackup dengan start-datetime dan end-datetime alih-alih posisi awal dan posisi akhir? Kami membuat cadangan penuh pada hari Jumat dan setiap hari cadangan tambahan. Ketika kami perlu memulihkan, kami mengambil cadangan penuh dan semua tambahan terakhir dan log biner mulai hari ini mulai dari 00:00 hingga SEKARANG ... mungkinkah ada masalah dengan apply-log?

A. Secara umum, Anda tidak boleh menggunakan --start-datetime atau --end-datetime ketika Anda ingin membalas log biner pada database. Itu tidak cukup terperinci - ia memiliki resolusi satu detik dan mungkin ada banyak transaksi yang terjadi selama detik itu. Anda dapat menggunakannya untuk meminimalkan kerangka waktu untuk mencari secara manual, tetapi itu saja. Jika Anda ingin memutar ulang log biner, Anda harus menggunakan --start-position dan --end-position. Hanya ini yang akan menentukan dengan tepat dari acara mana Anda akan memutar ulang binlog dan di acara mana itu akan berakhir.

T. Haruskah saya menjalankan perangkat lunak dump pada load balancer atau salah satu node MySQL?

A. Biasanya Anda akan menggunakannya pada node MySQL. Beberapa alat hanya dapat melakukan hal itu. Misalnya, Xtrabackup - Anda harus menjalankannya secara lokal, di host database. Anda dapat mengalirkan output ke lokasi lain, tetapi harus dimulai secara lokal.

T. Bisakah kita mengambil sebagian backup dengan ClusterControl? Dan jika ya, bagaimana kami dapat memulihkan cadangan pada instance yang sedang berjalan?

A. Ya, Anda dapat mengambil cadangan sebagian menggunakan ClusterControl (Anda dapat mencadangkan skema terpisah menggunakan xtrabackup) tetapi, untuk saat ini, Anda tidak dapat memulihkan cadangan sebagian pada instans yang sedang berjalan. Ini disebabkan oleh fakta bahwa skema yang Anda pulihkan tidak akan konsisten dengan cluster lainnya. Untuk membuatnya konsisten, cluster harus di-bootstrap dari node tempat Anda memulihkan cadangan. Jadi, secara teknis, node berjalan sepanjang waktu tetapi ini adalah operasi yang cukup berat dan invasif. Ini akan berubah di versi ClusterControl berikutnya di mana Anda dapat memulihkan cadangan di host terpisah. Dari host tersebut, Anda dapat membuang konten skema yang dipulihkan menggunakan mysqldump (atau mydumper) dan memulihkannya di kluster produksi.

T. Bisakah Anda membagikan perintah mysqldumper?

A. Agak sulit untuk menjawab pertanyaan ini tanpa melakukan copy dan paste dari dokumentasi, jadi kami pikir akan lebih baik jika kami mengarahkan Anda ke dokumentasi:https://github.com/maxbube/mydumper/tree/ master/dokumen

Tonton replay webinar

Buku putih terkait Panduan DevOps untuk Pencadangan Database untuk MySQL dan MariaDB Buku putih ini membahas dua utilitas pencadangan paling populer yang tersedia untuk MySQL dan MariaDB, yaitu mysqldump dan Percona XtraBackup.Download

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menghubungkan Database MySQL dengan Situs Web PHP

  2. Bagaimana mengatasi masalah pengkodean karakter MySQL?

  3. Bagaimana cara mengaktifkan koneksi ulang otomatis klien MySQL dengan MySQLdb?

  4. Dapatkan nama kolom tabel di MySQL?

  5. Nilai string salah:'\xF0\x9F\x8E\xB6\xF0\x9F...' MySQL