Dalam hal pencadangan dan pengarsipan data, departemen TI sering kali berada di bawah tekanan untuk memenuhi perjanjian tingkat layanan yang ketat serta memberikan prosedur pencadangan yang lebih kuat yang akan meminimalkan waktu henti, mempercepat proses pencadangan, biaya lebih sedikit, dan memenuhi persyaratan keamanan yang ketat.
Ada beberapa cara untuk membuat cadangan database MySQL, tetapi kami dapat membagi metode ini menjadi dua kelompok - logis dan fisik.
Cadangan Logis berisi data yang diekspor menggunakan perintah SQL dan disimpan dalam file. Ini bisa berupa, misalnya, satu set perintah SQL, yang, ketika dijalankan, akan menghasilkan pemulihan konten database. Dengan beberapa modifikasi pada sintaks file keluaran, Anda dapat menyimpan cadangan dalam file CSV.
Pencadangan logis mudah dilakukan, hanya dengan satu baris, Anda dapat mencadangkan semua tabel, database, atau semua database mysql dalam instans.
Sayangnya, pencadangan logis memiliki banyak keterbatasan. Mereka biasanya lebih lambat daripada yang fisik. Ini karena overhead yang diperlukan untuk mengeksekusi perintah SQL untuk mengeluarkan data dan kemudian menjalankan serangkaian perintah SQL lain untuk mendapatkan data kembali ke database. Mereka kurang fleksibel, kecuali jika Anda menulis beban kerja pencadangan kompleks yang mencakup beberapa langkah. Itu tidak bekerja dengan baik di lingkungan paralel, memberikan keamanan yang lebih sedikit, dan seterusnya dan seterusnya.
Cadangan Fisik di Dunia MySQL
MySQL tidak datang dengan cadangan fisik online untuk edisi komunitas. Anda dapat membayar untuk versi Perusahaan atau menggunakan alat pihak ketiga. Alat pihak ketiga yang paling populer di pasaran adalah XtraBackup. Yang akan kita bandingkan di artikel blog ini.
Percona XtraBackup adalah perangkat lunak pencadangan panas MySQL/MariaDB sumber terbuka yang sangat populer yang melakukan pencadangan tanpa pemblokiran untuk basis data InnoDB dan XtraDB. Itu termasuk dalam kategori cadangan fisik, yang terdiri dari salinan persis direktori data MySQL dan file di bawahnya.
Salah satu keuntungan terbesar XtraBackup adalah tidak mengunci database Anda selama proses pencadangan. Untuk database besar (100+ GB), ini memberikan waktu pemulihan yang jauh lebih baik dibandingkan dengan mysqldump. Proses pemulihan melibatkan penyiapan data MySQL dari file cadangan, sebelum mengganti atau mengalihkannya dengan direktori data saat ini pada node target.
Percona XtraBackup bekerja dengan mengingat nomor urut log (LSN) saat dimulai dan kemudian menyalin file data ke lokasi lain. Menyalin data membutuhkan waktu, dan jika file berubah, mereka mencerminkan keadaan database pada titik waktu yang berbeda. Pada saat yang sama, XtraBackup menjalankan proses latar belakang yang mengawasi file log transaksi (alias redo log), dan menyalin perubahan darinya. Ini harus dilakukan terus-menerus karena log transaksi ditulis secara round-robin, dan dapat digunakan kembali setelah beberapa saat. XtraBackup memerlukan catatan log transaksi untuk setiap perubahan pada file data sejak dimulainya eksekusi.
Dengan menggunakan alat ini, Anda dapat:
- Buat cadangan InnoDB terbaru, yang selesai dengan cepat dan andal, tanpa menjeda database Anda atau menambah beban ke server
- Buat cadangan tambahan
- Pindahkan tabel antar server MySQL secara online
- Buat slave replikasi MySQL baru dengan mudah
- Streaming cadangan MySQL terkompresi ke server lain
- Menghemat ruang disk dan bandwidth jaringan
MySQL Enterprise Backup memberikan pencadangan panas, online, tanpa pemblokiran di berbagai platform. Ini bukan alat pencadangan gratis, tetapi menawarkan banyak fitur. Biaya lisensi standar adalah $5000 (tetapi dapat bervariasi sesuai kesepakatan Anda dengan Oracle.)
Platform yang Didukung Proses Pencadangan
MySQL Enterprise
Ini dapat berjalan di Linux, Windows, Mac &Solaris. Yang penting itu juga dapat menyimpan cadangan ke tape, yang biasanya merupakan solusi yang lebih murah daripada menulis ke disk. Rekaman langsung menulis mendukung integrasi dengan Veritas Netbackup, Tivoli Storage Manager, dan EMC NetWorker.
XtraBackup
XtraBackup hanya dapat berjalan di platform Linux, yang tidak diragukan lagi merupakan show stopper bagi mereka yang berjalan di windows. Solusi di sini mungkin replikasi ke budak yang berjalan di Linux dan menjalankan cadangan dari sana.
Perbedaan Utama Proses Pencadangan
MySQL Enterprise Backup menyediakan serangkaian fitur dan fungsionalitas pengembalian dan pemulihan yang kaya, termasuk peningkatan kinerja yang signifikan dibandingkan metode pencadangan MySQL yang ada.
Oracle menunjukkan pencadangan Enterprise bahkan 49x lebih cepat daripada mysqldump. Itu, tentu saja, dapat bervariasi tergantung pada data Anda, namun ada banyak fitur untuk meningkatkan proses pencadangan. Cadangan paralel jelas merupakan salah satu perbedaan terbesar antara cadangan mysqldump dan Enterprise. Ini meningkatkan kinerja dengan pemrosesan multi-utas. Namun, fitur yang paling menarik adalah kompresi.
--kompres
Membuat cadangan dalam format terkompresi. Untuk pencadangan reguler, di antara semua mesin penyimpanan yang didukung oleh MySQL, hanya file data dalam format InnoDB yang dikompresi, dan mereka memiliki ekstensi .ibz setelah kompresi. Demikian pula, untuk cadangan gambar tunggal, hanya file data format InnoDB di dalam gambar cadangan yang dikompresi. Log biner dan file log relai dikompresi dan disimpan dengan ekstensi .bz saat disertakan dalam cadangan terkompresi.
-compress-method=zlib,lz4(default), lzma, punch-hole
--compress-level=LEVEL(0-9)
--include-tables=REGEXP
Pencadangan MySQL dengan ClusterControl
ClusterControl memungkinkan Anda menjadwalkan pencadangan menggunakan XtraBackup dan mysqldump. Itu dapat menyimpan file cadangan secara lokal di node tempat cadangan diambil, atau file cadangan juga dapat dialirkan ke node pengontrol dan dikompresi dengan cepat. Itu tidak mendukung cadangan MySQL Enterprise namun dengan fitur tambahan mysqldump dan XtraBackup itu mungkin pilihan yang baik.
ClusterControl adalah sistem manajemen database open source lengkap untuk pengguna dengan lingkungan campuran. Ini menyediakan fungsionalitas manajemen pencadangan tingkat lanjut untuk MySQL atau MariaDB.
Dengan ClusterControl Anda dapat:
- Buat kebijakan cadangan
- Pantau status pencadangan, eksekusi, dan server tanpa pencadangan
- Jalankan pencadangan dan pemulihan (termasuk pemulihan waktu tertentu)
- Kontrol retensi cadangan
- Simpan cadangan di penyimpanan awan
- Validasi cadangan (pengujian penuh dengan pemulihan di server mandiri)
- Enkripsi cadangan
- Kompres cadangan
- Dan banyak lagi
Kesimpulan
Sebagai DBA, Anda perlu memastikan bahwa database dicadangkan secara teratur, dan prosedur pemulihan yang sesuai tersedia dan diuji. Percona XtraBackup dan MySQL Enterprise Backup menyediakan DBA dengan solusi pencadangan online berkinerja tinggi dengan kompresi data dan teknologi enkripsi untuk menjamin data Anda terlindungi jika terjadi waktu henti atau gangguan
Pencadangan harus direncanakan sesuai dengan persyaratan pemulihan. Kehilangan data bisa penuh atau sebagian. Misalnya, Anda tidak selalu perlu memulihkan seluruh data. Dalam beberapa kasus, Anda mungkin hanya ingin melakukan pemulihan sebagian dengan memulihkan tabel atau baris yang hilang. Dengan rangkaian fitur jangkauan, kedua solusi tersebut akan menjadi pengganti yang bagus dari mysqldump, yang masih merupakan metode yang sangat populer untuk melakukan pencadangan. Memiliki mysqldump juga penting untuk pemulihan sebagian, di mana database yang rusak dapat diperbaiki dengan menganalisis isi dump. Log biner memungkinkan kita untuk mencapai pemulihan point-in-time, mis., hingga tepat sebelum server MySQL down.
Ini semua untuk bagian pertama, di bagian selanjutnya kita akan menguji kinerja kedua solusi dan menjalankan beberapa skenario pencadangan dan pemulihan kasus nyata.