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

Pencadangan otomatis atau reguler dari data mysql

CSV dan PILIH KE OUTFILE

http://dev.mysql.com/doc/refman /5.7/en/select-into.html

SELECT ... INTO OUTFILE menulis baris yang dipilih ke file. Terminator kolom dan baris dapat ditentukan untuk menghasilkan format output tertentu.

Berikut ini contoh lengkapnya:

SELECT * FROM my_table INTO OUTFILE '/tmp/my_table.csv'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM test_table;

File disimpan di server dan jalur yang dipilih harus dapat ditulis. Meskipun kueri ini dapat dijalankan melalui PHP dan permintaan web, paling baik dijalankan melalui konsol mysql.

Data yang diekspor dengan cara ini dapat diimpor ke database lain menggunakan MUAT INFILE DATA

Meskipun metode ini lebih unggul dalam iterasi melalui kumpulan hasil dan menyimpan ke file baris demi baris, tidak sebaik menggunakan....

mysqldump

mysqldump lebih unggul dari SELECT INTO OUTFILE dalam banyak hal, memproduksi CSV hanyalah salah satu dari banyak hal yang dapat dilakukan oleh perintah ini.

Utilitas klien mysqldump melakukan pencadangan logis, menghasilkan satu set pernyataan SQL yang dapat dieksekusi untuk mereproduksi definisi objek database asli dan data tabel. Itu membuang satu atau lebih database MySQL untuk cadangan atau transfer ke server SQL lain. Perintah mysqldump juga dapat menghasilkan keluaran dalam CSV, teks terbatas lainnya, atau format XML.

Idealnya mysqldump harus dipanggil dari shell Anda. Dimungkinkan untuk menggunakan exec di php untuk menjalankannya tetapi karena menghasilkan dump mungkin memakan waktu lama tergantung pada jumlah data, dan skrip php biasanya hanya berjalan selama 30 detik, Anda harus menjalankannya sebagai proses latar belakang.

mysqldump bukannya tanpa masalah yang sama.

Ini tidak dimaksudkan sebagai solusi cepat atau terukur untuk mencadangkan sejumlah besar data. Dengan ukuran data yang besar, bahkan jika langkah pencadangan membutuhkan waktu yang wajar, pemulihan data bisa sangat lambat karena memutar ulang pernyataan SQL melibatkan I/O disk untuk penyisipan, pembuatan indeks, dan sebagainya.

Contoh klasik lihat pertanyaan ini: Server mogok pada cadangan MySQL menggunakan python di mana satu mysqldump tampaknya dimulai sebelum yang sebelumnya selesai dan membuat situs web benar-benar tidak responsif.

Replikasi MySQL

Replikasi memungkinkan data dari satu server database MySQL (master) untuk disalin ke satu atau lebih server database MySQL (slave). Replikasi secara default tidak sinkron; budak tidak perlu terhubung secara permanen untuk menerima pembaruan dari master. Tergantung pada konfigurasi, Anda dapat mereplikasi semua database, database yang dipilih, atau bahkan tabel yang dipilih dalam database.

Jadi replikasi beroperasi secara berbeda dari SELECT INTO OUTFILE atau msyqldump Ini sangat ideal untuk menjaga data dalam salinan lokal hampir upto date (Akan dikatakan sinkron tetapi ada sesuatu yang disebut slave lag) Di sisi lain jika Anda menggunakan tugas terjadwal untuk menjalankan mysqldump sekali setiap 24 jam. Bayangkan apa yang bisa terjadi jika server mogok setelah 23 jam?

Setiap kali Anda menjalankan mysqldump, Anda menghasilkan sejumlah besar data, terus lakukan secara teratur dan Anda akan menemukan hard disk Anda terisi penuh atau tagihan penyimpanan file Anda membengkak. Dengan replikasi hanya perubahan yang diteruskan ke server (dengan menggunakan apa yang disebut binlog)

XtraBackup

Alternatif untuk replikasi adalah dengan menggunakan Percona XtraBackup .

Percona XtraBackup adalah utilitas pencadangan panas sumber terbuka untuk server berbasis MySQL yang tidak mengunci basis data Anda selama pencadangan.

Meskipun oleh Percona, ini kompatibel dengan Mysql dan Mariadb. Ia memiliki kemampuan untuk melakukan pencadangan tambahan yang kekurangannya merupakan batasan terbesar dari mysqldump.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:banyak tabel atau satu tabel dengan banyak kolom?

  2. Perbedaan Antara Database SQL &NoSQL – Perbandingan MySQL &MongoDB

  3. mysqli_stmt::bind_result():Jumlah variabel ikat tidak cocok dengan jumlah bidang dalam pernyataan yang disiapkan

  4. Mengapa jumlah baris yang diperkirakan sangat berbeda dalam hasil phpmyadmin?

  5. Cara Membuat Tabel di MySQL