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:
- Automysqlbackup: /etc/default/automysqlbackup
- 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.