Cadangkan Server MySQL

13

Apa cara terbaik untuk membuat cadangan server MySQL? Saya ingin metode yang tidak perlu menurunkan server. Apakah sesuatu seperti cadangan panas InnoDB diperlukan, atau dapatkah saya menggunakan alat cadangan yang disediakan di alat Administrator MySQL. Keuntungan apa yang ditawarkan salah satu dari yang lain?

Kibbee
sumber

Jawaban:

12

Kami menggunakan mysqldump, yang berfungsi saat MySQL sedang berjalan. Kami mulai menggunakan mysqldump karena itu yang paling mudah diatur ketika kebutuhan kami kecil, dan sepertinya memenuhi kebutuhan itu. Database kami telah berkembang sejak saat itu, tetapi kami belum melampaui mysqldump. Apakah itu cocok untuk Anda akan tergantung pada ukuran database Anda, beban operasinya yang biasa, dan mungkin banyak hal lainnya.

TimB
sumber
mysqldump bagus. Tidak seperti dump biner dari beberapa RDMS lain, secara default file yang dihasilkan mysqldump adalah file teks dengan perintah sql penuh - sebagian besar CREATE TABLE pernyataan dan INSERT untuk baris. Sebagai file teks sederhana, mereka dapat dimanipulasi, dikompresi atau dienkripsi dengan mudah.
nedm
3
mysqldump rusak ketika Anda memiliki database besar, dan / atau ketika Anda mengandalkan MyISAM. Kami memiliki sekitar 400G basis data dengan banyak indeks yang perlu dibangun kembali ketika mengimpor dump, sehingga pemulihan dari cadangan membutuhkan waktu berhari-hari. Snapshot LVM memberikan waktu pemulihan yang jauh lebih baik ketika Anda sudah melebihi mysqldump.
Nils-Anders Nøttseter
4

lihatlah xtrabackup dari percona - ini merupakan alternatif open source yang menarik untuk mysqlhotcopy untuk database innodb.

Anda dapat membaca lebih lanjut di sini

pQd
sumber
3

mysqldump dapat digunakan, tetapi itu tidak akan menjamin dataset yang konsisten , kecuali jika Anda mengunci semua tabel selama durasi dump. Ini akan menempatkan database dalam mode read-only , tetapi akan memastikan dump konsisten.

Anda dapat mengunci tabel dengan perintah:

FLUSH TABLES WITH READ LOCK;

Dan ketika Anda selesai Anda dapat melepaskan kunci dengan:

UNLOCK TABLES;
Brent
sumber
7
mysqldump --satu transaksi akan memastikan snapshot yang konsisten
Dave Cheney
5
--satu transaksi hanya berfungsi ketika semua tabel Anda adalah InnoDB. Tabel MyISAM tidak mendukung transaksi.
Nils-Anders Nøttseter
2

Setup Replikasi MySQL . Sebagai bonus Anda mendapatkan server untuk menjalankan pekerjaan pelaporan berat dan mysqldump tanpa mempengaruhi db produksi utama Anda.

Dave Cheney
sumber
Ingatlah bahwa replikasi mungkin tertunda dan karenanya tidak perlu cadangan master Anda saat ini.
2
Replikasi bukan cadangan. Jika Anda tidak sengaja menghapus sesuatu di master, slave juga menghapusnya. Budak baik untuk menggunakan mysqldump, karena itu tidak akan mempengaruhi server produksi Anda (seperti yang disebutkan Dave).
Martijn Heemels
0

Cara termudah adalah dengan hanya menggunakan mysqldump perintah.

WerkkreW
sumber
0

Ada juga alat yang disebut mysqlhotcopy yang saya lihat sekaligus, dan berpikir itu memegang banyak janji - tidak pernah menggunakannya.

Brent
sumber