Kif tagħmel backup/rrestawra MySQL/MariaDB u PostgreSQL billi tuża Automysqlbackup u Autopostgresqlbackup Tools


Jekk inti amministratur tad-database (DBA) jew responsabbli għaż-żamma, il-backup u r-restawr tad-databases, taf li ma tistax taffordja li titlef id-data. Ir-raġuni hija sempliċi: it-telf tad-data mhux biss ifisser it-telf ta 'informazzjoni importanti, iżda wkoll jista' jagħmel ħsara lin-negozju tiegħek finanzjarjament.

Għal dik ir-raġuni, għandek dejjem tiżgura li:

1. id-databases tiegħek huma appoġġjati fuq bażi perjodika,
2. dawk il-backups huma maħżuna f'post sigur, u
3. inti twettaq drills restawr regolarment.

Din l-aħħar attività m'għandhiex tiġi injorata, peress li ma tridx tiffaċċja kwistjoni kbira mingħajr ma tkun ipprattikat dak li jeħtieġ li jsir f'sitwazzjoni bħal din.

F'dan it-tutorja ser nintroduċuk għal żewġ utilitajiet sbieħ biex tagħmel backup tad-databases MySQL/MariaDB u PostgreSQL, rispettivament: automysqlbackup u autopostgresqlbackup.

Peress li l-aħħar huwa bbażat fuq l-ewwel, aħna se niffukaw l-ispjegazzjoni tagħna fuq automysqlbackup u nenfasizzaw id-differenzi ma 'autopgsqlbackup, jekk ikun hemm.

Huwa rakkomandat ħafna li taħżen il-backups f'sehem tan-netwerk immuntat fid-direttorju tal-backup sabiex f'każ ta 'ħabta fis-sistema kollha, xorta tkun kopert.

Aqra l-gwidi utli li ġejjin fuq MySQL:

Installazzjoni ta' Databases MySQL/MariaDB/PostgreSQL

1. Din il-gwida tassumi li jrid ikollok l-istanza MySQL/MariaDB/PostgreSQL taħdem, Jekk le, jekk jogħġbok installa l-pakketti li ġejjin:

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

2. Għandek database ta' ttestjar MySQL/MariaDB/PostgreSQL li tista' tuża (intom avżati biex MA tużax la automysqlbackup jew autopostgresqlbackup f'ambjent ta' produzzjoni sakemm tkun sirt familjari ma' dawn l-għodod).

Inkella, oħloq żewġ databases kampjun u timlahom bid-dejta qabel ma tipproċedi. F'dan l-artikolu ser nuża d-databases u t-tabelli li ġejjin:

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

Installazzjoni ta' automysqlbackup u autopgsqlbackup f'CentOS 7 u Debian 8

3. F'Debian 8, iż-żewġ għodod huma disponibbli fir-repożitorji, għalhekk l-installazzjoni tagħhom hija sempliċi daqs li taħdem:

# aptitude install automysqlbackup autopostgresqlbackup

Billi f'CentOS 7 ser ikollok bżonn tniżżel l-iskripts tal-installazzjoni u tmexxihom. Fit-taqsimiet hawn taħt se niffukaw esklussivament fuq l-installazzjoni, il-konfigurazzjoni u l-ittestjar ta 'dawn l-għodod fuq CentOS 7 peress li għal Debian 8 - fejn kważi jaħdmu barra mill-kaxxa, se nagħmlu l-kjarifiki meħtieġa aktar tard f'dan l-artikolu.

4. Ejja nibdew billi noħolqu direttorju ta' ħidma ġewwa /opt biex tniżżel l-iskrittura tal-installazzjoni u tħaddem:

# 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. Il-fajl tal-konfigurazzjoni għal automysqlbackup jinsab ġewwa /etc/automysqlbackup taħt l-isem myserver.conf. Ejja nagħtu ħarsa lejn l-aktar direttivi ta’ konfigurazzjoni rilevanti:

# 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 )
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"

Ladarba tkun ikkonfigurat automysqlbackup skont il-bżonnijiet tiegħek, inti parir bil-qawwa biex tiċċekkja l-fajl README misjub f'/etc/automysqlbackup/README.

6. Meta tkun lest, kompli u mexxi l-programm, u tgħaddi l-fajl tal-konfigurazzjoni bħala argument:

# automysqlbackup /etc/automysqlbackup/myserver.conf

Spezzjoni ta 'malajr tad-direttorju ta' kuljum turi li l-automysqlbackup mexxa b'suċċess:

# pwd
# ls -lR daily

Naturalment tista 'żżid entrata crontab biex tħaddem automysqlbackup f'ħin tal-ġurnata li jaqbel l-aħjar għall-bżonnijiet tiegħek (1:30 am kuljum fl-eżempju ta' hawn taħt):

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

7. Issa ejja niżżel id-database mariadb_db apposta:

Ejja noħolquha mill-ġdid u nirrestawraw il-backup. Fil-pront ta' MariaDB, ittajpja:

CREATE DATABASE mariadb_db;
exit

Imbagħad sib:

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

U restawra l-backup:

# 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;

Installazzjoni u konfigurazzjoni ta 'autopostgresqlbackup f'CentOS 7

8. Sabiex l-autopostgresql jaħdem bla difetti f'CentOS 7, se jkollna bżonn ninstallaw xi dipendenzi l-ewwel:

# yum install mutt sendmail

Imbagħad ejja rrepeti l-proċess bħal qabel:

# 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

Ejja nagħmlu l-iscript eżekutibbli u nibdew/nippermettu s-servizz:

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

Fl-aħħarnett, aħna se neditjaw il-valur tal-issettjar tad-direttorju tal-backup għal:

BACKUPDIR="/var/backup/db/autopostgresqlbackup"

Wara li jkollok permezz tal-fajl ta 'konfigurazzjoni ta' automysqlbackup, il-konfigurazzjoni ta 'din l-għodda hija faċli ħafna (dik il-parti mill-kompitu titħalla f'idejk).

9. F'CentOS 7, għall-kuntrarju ta' Debian 8, autopostgresqlbackup jitmexxa l-aħjar bħala l-utent tas-sistema postgres, għalhekk biex tagħmel dan għandek jew taqleb għal dak il-kont jew iżżid xogħol cron fil-fajl crontab tiegħu:

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

Id-direttorju tal-backup, mill-mod, jeħtieġ li jinħoloq u l-permessi tiegħu u l-pussess tal-grupp għandhom jiġu ssettjati b'mod rikorsiv għal 0770 u postgres (għal darb'oħra, dan MHUX se jkun meħtieġ f'Debian):

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

Ir-riżultat:

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

10. Issa tista' tirrestawra l-fajls meta jkun meħtieġ (ftakar li tagħmel dan bħala postgres tal-utent wara li terġa' toħloq id-database vojta):

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

Konsiderazzjonijiet f'Debian 8

Kif semmejna qabel, mhux biss l-installazzjoni ta 'dawn l-għodda f'Debian hija aktar sempliċi, iżda wkoll il-konfigurazzjonijiet rispettivi tagħhom. Issib il-fajls tal-konfigurazzjoni fi:

  1. Automysqlbackup: /etc/default/automysqlbackup
  2. Autopostgresqlbackup: /etc/default/autopostgresqlbackup

Sommarju

F'dan l-artikolu spjegajna kif tinstalla u tuża automysqlbackup u autopostgresqlbackup (titgħallem kif tuża l-ewwel se jgħinek tikkontrolla t-tieni ukoll), żewġ għodod ta 'backup ta' database kbira li jistgħu jagħmlu l-kompiti tiegħek bħala DBA jew amministratur tas-sistema/inġinier ħafna aktar faċli.

Jekk jogħġbok innota li tista' tespandi fuq dan is-suġġett billi twaqqaf notifiki bl-email jew tibgħat fajls ta' backup bħala annessi permezz ta' email - mhux strettament meħtieġ, iżda kultant jista' jkun utli.

Bħala nota finali, ftakar li l-permessi tal-fajls tal-konfigurazzjoni għandhom ikunu stabbiliti għall-minimu (0600 fil-biċċa l-kbira tal-każijiet). Nistennew bil-ħerqa li nisimgħu x'taħseb dwar dan l-artikolu. Ħossok liberu li tibgħatilna nota billi tuża l-formola hawn taħt.