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

Cara Mencadangkan/Memulihkan MySQL/MariaDB dan PostgreSQL Menggunakan Alat 'Automysqlbackup' dan 'Autopostgresqlbackup'

Jika Anda adalah administrator basis data (DBA ) atau bertanggung jawab untuk memelihara, mencadangkan, dan memulihkan basis data, Anda tahu bahwa Anda tidak boleh kehilangan data. Alasannya sederhana:kehilangan data tidak hanya berarti hilangnya informasi penting, tetapi juga dapat merusak bisnis Anda secara finansial.

Untuk itu, Anda harus selalu memastikan bahwa:

1. database Anda dicadangkan secara berkala,
2. cadangan tersebut disimpan di tempat yang aman, dan
3. Anda melakukan latihan restorasi secara teratur.

Aktivitas terakhir ini tidak boleh diabaikan, karena Anda tidak ingin mengalami masalah besar tanpa mempraktikkan apa yang perlu dilakukan dalam situasi seperti itu.

Dalam tutorial ini kami akan memperkenalkan dua utilitas bagus untuk mencadangkan MySQL / MariaDB dan PostgreSQL database, masing-masing:automysqlbackup dan autopostgresqlbackup .

Karena yang terakhir didasarkan pada yang pertama, kami akan memfokuskan penjelasan kami pada automysqlbackup dan soroti perbedaan dengan autopgsqlbackup , jika ada.

Sangat disarankan untuk menyimpan cadangan di jaringan berbagi yang dipasang di direktori cadangan sehingga jika terjadi kerusakan di seluruh sistem, Anda tetap terlindungi.

Baca panduan berguna berikut di MySQL:

Perintah-Perintah Administrasi Basis Data Dasar MySQL

Menginstal Database MySQL / MariaDB / PostgreSQL

1. Panduan ini mengasumsikan Anda harus memiliki MySQL / MariaDB / PostgreSQL instance berjalan, Jika tidak, silakan instal paket-paket berikut:

Distribusi berbasis Fedora:

# yum update && yum install mariadb mariadb-server mariadb-libs postgresql postgresql-server postgresql-libs

Debian dan turunannya:

# aptitude update && aptitude install mariadb-client mariadb-server mariadb-common postgresql-client postgresql postgresql-common

2. Anda memiliki pengujian MySQL / MariaDB / PostgreSQL database yang dapat Anda gunakan (Anda disarankan untuk TIDAK gunakan automysqlbackup atau autopostgresqlbackup dalam lingkungan produksi sampai Anda mengenal alat-alat ini).

Jika tidak, buat dua database sampel dan isi dengan data sebelum melanjutkan. Dalam artikel ini saya akan menggunakan database dan tabel berikut:

MySQL/MariaDB
CREATE DATABASE mariadb_db;
CREATE TABLE tecmint_tbl (UserID INT AUTO_INCREMENT PRIMARY KEY, 
UserName VARCHAR(50), 
IsActive BOOL);
PostgreSQL
CREATE DATABASE postgresql_db;
CREATE TABLE tecmint_tbl (
UserID SERIAL PRIMARY KEY,
UserName VARCHAR(50),
IsActive BOOLEAN);

Menginstal automysqlbackup dan autopgsqlbackup di CentOS 7 dan Debian 8

3. Di Debian 8 , kedua alat tersedia di repositori, jadi menginstalnya semudah menjalankan:

# aptitude install automysqlbackup autopostgresqlbackup

Sedangkan di CentOS 7 Anda perlu mengunduh skrip instalasi dan menjalankannya. Di bagian di bawah ini, kami akan fokus secara eksklusif pada pemasangan, konfigurasi, dan pengujian alat ini di CentOS 7 sejak untuk Debian 8 – di mana mereka hampir berhasil, kami akan membuat klarifikasi yang diperlukan nanti di artikel ini.

Menginstal dan mengkonfigurasi automysqlbackup di CentOS 7

4. Mari kita mulai dengan membuat direktori kerja di dalam /opt untuk mengunduh skrip instalasi dan menjalankannya:

# mkdir /opt/automysqlbackup
# cd /opt/automysqlbackup
# wget http://ufpr.dl.sourceforge.net/project/automysqlbackup/AutoMySQLBackup/AutoMySQLBackup%20VER%203.0/automysqlbackup-v3.0_rc6.tar.gz
# tar zxf automysqlbackup-v3.0_rc6.tar.gz
# ./install.sh

.

5. File konfigurasi untuk automysqlbackup terletak di dalam /etc/automysqlbackup dengan nama serversaya.conf . Mari kita lihat arahan konfigurasi yang paling relevan:

myserver.conf – Konfigurasi Automysqlbackup
# Username to access the MySQL server
CONFIG_mysql_dump_username='root'
# Password
CONFIG_mysql_dump_password='YourPasswordHere'
# Host name (or IP address) of MySQL server
CONFIG_mysql_dump_host='localhost'
# Backup directory
CONFIG_backup_dir='/var/backup/db/automysqlbackup'
# List of databases for Daily/Weekly Backup e.g. ( 'DB1' 'DB2' 'DB3' ... )
# set to (), i.e. empty, if you want to backup all databases
CONFIG_db_names=(AddYourDatabase Names Here)
# List of databases for Monthly Backups.
# set to (), i.e. empty, if you want to backup all databases
CONFIG_db_month_names=(AddYourDatabase Names Here)
# Which day do you want monthly backups? (01 to 31)
# If the chosen day is greater than the last day of the month, it will be done
# on the last day of the month.
# Set to 0 to disable monthly backups.
CONFIG_do_monthly="01"
# Which day do you want weekly backups? (1 to 7 where 1 is Monday)
# Set to 0 to disable weekly backups.
CONFIG_do_weekly="5"
# Set rotation of daily backups. VALUE*24hours
# If you want to keep only today's backups, you could choose 1, i.e. everything older than 24hours will be removed.
CONFIG_rotation_daily=6
# Set rotation for weekly backups. VALUE*24hours. A value of 35 means 5 weeks.
CONFIG_rotation_weekly=35
# Set rotation for monthly backups. VALUE*24hours. A value of 150 means 5 months.
CONFIG_rotation_monthly=150
# Include CREATE DATABASE statement in backup?
CONFIG_mysql_dump_create_database='no'
# Separate backup directory and file for each DB? (yes or no)
CONFIG_mysql_dump_use_separate_dirs='yes'
# Choose Compression type. (gzip or bzip2)
CONFIG_mysql_dump_compression='gzip'
# What would you like to be mailed to you?
# - log   : send only log file
# - files : send log file and sql files as attachments (see docs)
# - stdout : will simply output the log to the screen if run manually.
# - quiet : Only send logs if an error occurs to the MAILADDR.
CONFIG_mailcontent='quiet'
# Email Address to send mail to? ([email protected])
CONFIG_mail_address='root'
# Do you wish to encrypt your backups using openssl?
#CONFIG_encrypt='no'
# Choose a password to encrypt the backups.
#CONFIG_encrypt_password='password0123'
# Command to run before backups (uncomment to use)
#CONFIG_prebackup="/etc/mysql-backup-pre"
# Command run after backups (uncomment to use)
#CONFIG_postbackup="/etc/mysql-backup-post"

Setelah Anda mengonfigurasi automysqlbackup sesuai kebutuhan Anda, Anda sangat disarankan untuk memeriksa README file ditemukan di /etc/automysqlbackup/README .

Cadangan Database MySQL

6. Saat Anda siap, lanjutkan dan jalankan program, dengan meneruskan file konfigurasi sebagai argumen:

# automysqlbackup /etc/automysqlbackup/myserver.conf

Pemeriksaan cepat harian direktori akan menunjukkan bahwa automysqlbackup telah berhasil dijalankan:

# pwd
# ls -lR daily

Tentu saja Anda dapat menambahkan entri crontab untuk menjalankan automysqlbackup pada waktu yang paling sesuai dengan kebutuhan Anda (1:30 am setiap hari dalam contoh di bawah ini):

30 01 * * * /usr/local/bin/automysqlbackup /etc/automysqlbackup/myserver.conf

Memulihkan Cadangan MySQL

7. Sekarang, lepaskan mariadb_db basis data dengan sengaja:

Mari kita buat lagi dan pulihkan cadangannya. Di prompt MariaDB, ketik:

CREATE DATABASE mariadb_db;
exit

Kemudian cari:

# cd /var/backup/db/automysqlbackup/daily/mariadb_db
# ls

Dan pulihkan cadangan:

# mysql -u root -p mariadb_db < daily_mariadb_db_2015-09-01_23h19m_Tuesday.sql
# mysql -u root -p
MariaDB [(none)]> USE mariadb_db; 
MariaDB [(none)]> SELECT * FROM tecmint_tb1;

Menginstal dan mengonfigurasi autopostgresqlbackup di CentOS 7

8. Agar autopostgresql untuk bekerja dengan sempurna di CentOS 7 , kita perlu menginstal beberapa dependensi terlebih dahulu:

# yum install mutt sendmail

Kemudian mari kita ulangi proses seperti sebelumnya:

# mkdir /opt/autopostgresqlbackup
# cd /opt/autopostgresqlbackup
# wget http://ufpr.dl.sourceforge.net/project/autopgsqlbackup/AutoPostgreSQLBackup/AutoPostgreSQLBackup-1.0/autopostgresqlbackup.sh.1.0
# mv autopostgresqlbackup.sh.1.0 /opt/autopostgresqlbackup/autopostgresqlbackup.sh

Mari buat skrip dapat dieksekusi dan mulai / aktifkan layanan:

# chmod 755 autopostgresqlbackup.sh
# systemctl start postgresql
# systemctl enable postgresql

Terakhir, kami akan mengedit nilai pengaturan direktori cadangan menjadi:

autopostgresqlbackup.sh - Konfigurasi Autopostgresqlbackup
BACKUPDIR="/var/backup/db/autopostgresqlbackup"

Setelah melalui file konfigurasi automysqlbackup , mengonfigurasi alat ini sangat mudah (sebagian tugas diserahkan kepada Anda).

9. Di CentOS 7 , sebagai lawan dari Debian 8 , autopostgresqlbackup paling baik dijalankan sebagai postgres pengguna sistem, jadi untuk melakukannya Anda harus beralih ke akun itu atau menambahkan tugas cron ke file crontabnya:

# crontab -u postgres -e
30 01 * * * /opt/autopostgresqlbackup/autopostgresqlbackup.sh

Omong-omong, direktori cadangan perlu dibuat dan izin serta kepemilikan grupnya harus disetel secara rekursif ke 0770 dan postgres (sekali lagi, ini TIDAK diperlukan di Debian ):

# mkdir /var/backup/db/autopostgresqlbackup
# chmod -R 0770 /var/backup/db/autopostgresqlbackup
# chgrp -R postgres /var/backup/db/autopostgresqlbackup

Hasilnya:

# cd /var/backup/db/autopostgresqlbackup
# pwd
# ls -lR daily

10. Sekarang Anda dapat memulihkan file saat diperlukan (ingat untuk melakukan ini sebagai postgres pengguna setelah membuat ulang database kosong):

# gunzip -c postgresql_db_2015-09-02.Wednesday.sql.gz | psql postgresql_db

Pertimbangan di Debian 8

Seperti yang kami sebutkan sebelumnya, tidak hanya pemasangan alat ini di Debian lebih mudah, tetapi juga konfigurasi masing-masing. Anda akan menemukan file konfigurasi di:

  1. Automysqlbackup :/etc/default/automysqlbackup
  2. Pencadangan Autopostgresql :/etc/default/autopostgresqlbackup

Ringkasan

Pada artikel ini kami telah menjelaskan cara menginstal dan menggunakan automysqlbackup dan autopostgresqlbackup (mempelajari cara menggunakan yang pertama akan membantu Anda menguasai yang kedua juga), dua alat pencadangan basis data hebat yang dapat membuat tugas Anda sebagai DBA atau administrator / insinyur sistem menjadi lebih mudah.

Harap perhatikan bahwa Anda dapat memperluas topik ini dengan menyiapkan pemberitahuan email atau mengirim file cadangan sebagai lampiran melalui email – tidak sepenuhnya diperlukan, tetapi terkadang berguna.

Sebagai catatan terakhir, ingatlah bahwa izin file konfigurasi harus disetel ke minimum (0600 umumnya). Kami berharap dapat mendengar pendapat Anda tentang artikel ini. Jangan ragu untuk memberikan catatan kepada kami menggunakan formulir di bawah ini.


  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 Tambahkan Kunci Asing

  2. Cara Mengaktifkan Operator Penggabungan Pipa di MySQL

  3. Panduan Merancang Database Untuk Task Manager Di MySQL

  4. Kesalahan mysql 1452 - Tidak dapat menambah atau memperbarui baris anak:batasan kunci asing gagal

  5. Prosedur tersimpan yang secara otomatis menghapus baris yang lebih lama dari 7 hari di MYSQL