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

Gunakan mysqldump untuk Mencadangkan MySQL atau MariaDB

MySQL dan MariaDB menyertakan utilitas mysqldump untuk menyederhanakan proses membuat cadangan database atau sistem database. Menggunakan mysqldump membuat cadangan logis . Anda hanya dapat menggunakan alat ini jika proses database Anda dapat diakses dan berjalan.

Jika database Anda tidak dapat diakses karena alasan apa pun, Anda dapat membuatcadangan fisik , yang merupakan salinan struktur sistem file yang berisi data Anda.

Instruksi dalam panduan ini berlaku untuk MySQL dan MariaDB. Untuk penyederhanaan, nama MySQL akan digunakan untuk menerapkan keduanya.

Sebelum Anda Mulai

  • Anda akan memerlukan instalasi MySQL atau MariaDB yang berfungsi, dan pengguna database untuk menjalankan pencadangan. Untuk bantuan instalasi, lihat dokumentasi Linode MySQL.

  • Anda memerlukan akses root ke sistem, atau akun pengguna dengan sudo hak istimewa.

Mencadangkan Database

mysqldump sintaks umum perintah adalah:

mysqldump -u [username] -p [databaseName] > [filename]-$(date +%F).sql
  • mysqldump meminta kata sandi sebelum memulai proses pencadangan.
  • Tergantung pada ukuran database, mungkin perlu beberapa saat untuk menyelesaikannya.
  • Cadangan database akan dibuat di direktori tempat perintah dijalankan.
  • -$(date +%F) menambahkan stempel waktu ke nama file.

Contoh kasus penggunaan meliputi:

  • Buat cadangan seluruh Sistem Manajemen Basis Data (DBMS):

      mysqldump --all-databases --single-transaction --quick --lock-tables=false > full-backup-$(date +%F).sql -u root -p
    
  • Cadangkan database tertentu. Ganti db1 dengan nama database yang ingin Anda backup:

      mysqldump -u username -p db1 --single-transaction --quick --lock-tables=false > db1-backup-$(date +%F).sql
    
  • Cadangkan satu tabel dari database apa pun. Pada contoh di bawah ini, table1 diekspor dari database db1 :

      mysqldump -u username -p --single-transaction --quick --lock-tables=false db1 table1 > db1-table1-$(date +%F).sql
    

Berikut rincian mysqldump opsi perintah yang digunakan di atas:

  • --single-transaction :Mengeluarkan pernyataan SQL BEGIN sebelum membuang data dari server.
  • --quick :Terapkan tabel dumping baris demi baris. Ini memberikan keamanan tambahan untuk sistem dengan RAM kecil dan/atau database besar di mana menyimpan tabel dalam memori bisa menjadi masalah.
  • --lock-tables=false :Jangan mengunci tabel untuk sesi pencadangan.

Otomatis Pencadangan dengan cron

Entri dapat ditambahkan ke /etc/crontab untuk menjadwalkan pencadangan basis data secara teratur.

  1. Buat file untuk menyimpan kredensial login pengguna root MySQL yang akan melakukan pencadangan. Perhatikan bahwa pengguna sistem yang direktori home-nya menyimpan file ini bisa jadi tidak terkait dengan pengguna MySQL mana pun.

    File:/ home/example_user/.mylogin.cnf
    1
    2
    3
    
    [client]
    user = root
    password = MySQL root user's password
  2. Batasi izin file kredensial:

    chmod 600 /home/example_user/.mylogin.cnf
    
  3. Buat file tugas cron. Di bawah ini adalah contoh cron job untuk mencadangkan seluruh sistem manajemen basis data setiap hari pada jam 1 pagi:

    File:/ etc/cron.daily/mysqldump
    1
    
    0 1 * * * /usr/bin/mysqldump --defaults-extra-file=/home/example_user/.my.cnf -u root --single-transaction --quick --lock-tables=false --all-databases > full-backup-$(date +\%F).sql

    Untuk informasi lebih lanjut tentang cron, lihat halaman manual thecron(8) andcron(5).

Pulihkan Cadangan

Sintaks umum perintah restorasi adalah:

mysql -u [username] -p [databaseName] < [filename].sql
  • Pulihkan seluruh cadangan DBMS. Anda akan dimintai kata sandi pengguna root MySQL:
    Ini akan menimpa semua data saat ini di sistem database MySQL

      mysql -u root -p < full-backup.sql
    
  • Kembalikan dump database tunggal. Basis data tujuan yang kosong atau lama harus sudah ada untuk mengimpor data, dan pengguna MySQL yang Anda jalankan perintahnya harus memiliki akses tulis ke basis data tersebut:

      mysql -u [username] -p db1 < db1-backup.sql
    
  • Pulihkan satu tabel, Anda harus memiliki database tujuan yang siap menerima data:

      mysql -u dbadmin -p db1 < db1-table1.sql
    

Informasi Lebih Lanjut

Anda mungkin ingin berkonsultasi dengan sumber daya berikut untuk informasi tambahan tentang topik ini. Meskipun ini disediakan dengan harapan dapat bermanfaat, harap perhatikan bahwa kami tidak dapat menjamin keakuratan atau ketepatan waktu materi yang dihosting secara eksternal.

  • Halaman Metode Pencadangan Database MySQL
  • mysqldump - Program Pencadangan Basis Data, Manual Referensi MySQL

  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 Mendapatkan Data Satu Bulan Terakhir di MySQL

  2. MySQL - Operand harus berisi 1 kolom

  3. Bagaimana mendefinisikan pesanan ORDER BY khusus di mySQL

  4. Cara mengatur koneksi MySQL jarak jauh

  5. Mengapa mysqli memberikan perintah tidak sinkron?