Als u een databasebeheerder bent (DBA ) of verantwoordelijk bent voor het onderhouden, back-uppen en herstellen van databases, weet u dat u het zich niet kunt veroorloven om gegevens te verliezen. De reden is simpel:het verliezen van gegevens betekent niet alleen het verlies van belangrijke informatie, maar kan ook uw bedrijf financieel schaden.
Om die reden moet u er altijd voor zorgen dat:
1. van uw databases wordt periodiek een back-up gemaakt,
2. die back-ups worden opgeslagen op een veilige plaats, en
3. je voert regelmatig hersteloefeningen uit.
Deze laatste activiteit mag niet over het hoofd worden gezien, omdat je niet tegen een groot probleem aan wilt lopen zonder te hebben geoefend wat er in een dergelijke situatie moet worden gedaan.
In deze tutorial laten we je kennismaken met twee leuke hulpprogramma's om een back-up te maken van MySQL / MariaDB en PostgreSQL databases, respectievelijk:automysqlbackup en autopostgresqlbackup .
Aangezien de laatste op de eerste is gebaseerd, zullen we onze uitleg concentreren op automysqlbackup en markeer verschillen met autopgsqlbackup , als die er al is.
Het wordt sterk aanbevolen om de back-ups op te slaan in een netwerkshare die in de back-upmap is gemonteerd, zodat u in het geval van een systeembrede crash nog steeds gedekt bent.
Lees de volgende handige handleidingen over MySQL:
MySQL-basisopdrachten voor databasebeheerMySQL-back-up- en herstelopdrachten voor databasebeheerphpMyBackupPro – een webgebaseerde MySQL-back-uptoolMySQLDumper:een op PHP en Perl gebaseerde MySQL-databaseback-uptool15 Basic MySQL-interviewvragen voor databasebeheerdersMySQL / MariaDB / PostgreSQL-databases installeren
1. Deze handleiding gaat ervan uit dat u MySQL . moet hebben / MariaDB / PostgreSQL instantie actief. Indien niet, installeer dan de volgende pakketten:
Fedora-gebaseerde distributies:
# yum update && yum install mariadb mariadb-server mariadb-libs postgresql postgresql-server postgresql-libs
Debian en derivaten:
# aptitude update && aptitude install mariadb-client mariadb-server mariadb-common postgresql-client postgresql postgresql-common
2. U heeft een MySQL-test / MariaDB / PostgreSQL database die u kunt gebruiken (u wordt geadviseerd om NIET gebruik ofwel automysqlbackup of autopostgresqlbackup in een productieomgeving totdat je met deze tools kennis hebt gemaakt).
Maak anders twee voorbeelddatabases en vul deze met gegevens voordat u doorgaat. In dit artikel zal ik de volgende databases en tabellen gebruiken:
MySQL/MariaDBCREATE 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);
Automysqlbackup en autopgsqlbackup installeren in CentOS 7 en Debian 8
3. In Debian 8 , beide tools zijn beschikbaar in de repositories, dus het installeren ervan is net zo eenvoudig als het uitvoeren:
# aptitude install automysqlbackup autopostgresqlbackup
Terwijl in CentOS 7 u moet de installatiescripts downloaden en uitvoeren. In de onderstaande secties zullen we ons uitsluitend concentreren op het installeren, configureren en testen van deze tools op CentOS 7 sinds voor Debian 8 – waar ze bijna out-of-the-box werken, zullen we later in dit artikel de nodige verduidelijkingen geven.
Automysqlbackup installeren en configureren in CentOS 7
4. Laten we beginnen met het maken van een werkmap binnen /opt
om het installatiescript te downloaden en uit te voeren:
# 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. Het configuratiebestand voor automysqlbackup bevindt zich in /etc/automysqlbackup onder de naam mijnserver.conf . Laten we eens kijken naar de meest relevante configuratierichtlijnen:
myserver.conf – Configureer 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"
Nadat u automysqlbackup . heeft geconfigureerd volgens uw behoeften, wordt u ten zeerste aangeraden om de README . te bekijken bestand gevonden in /etc/automysqlbackup/README .
MySQL-databaseback-up
6. Als je klaar bent, ga je gang en voer je het programma uit, waarbij je het configuratiebestand als argument doorgeeft:
# automysqlbackup /etc/automysqlbackup/myserver.conf
Een snelle inspectie van de dagelijkse directory zal laten zien dat automysqlbackup is succesvol verlopen:
# pwd # ls -lR daily
Natuurlijk kun je een crontab-item toevoegen om automysqlbackup uit te voeren op een tijdstip dat het beste bij u past (1:30 ben elke dag in het onderstaande voorbeeld):
30 01 * * * /usr/local/bin/automysqlbackup /etc/automysqlbackup/myserver.conf
Een MySQL-back-up herstellen
7. Laten we nu de mariadb_db . laten vallen database expres:
Laten we het opnieuw maken en de back-up herstellen. Typ in de MariaDB-prompt:
CREATE DATABASE mariadb_db; exit
Zoek vervolgens:
# cd /var/backup/db/automysqlbackup/daily/mariadb_db # ls
En herstel de back-up:
# 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;
Autopostgresqlbackup installeren en configureren in CentOS 7
8. Om autopostgresql om probleemloos te werken in CentOS 7 , moeten we eerst enkele afhankelijkheden installeren:
# yum install mutt sendmail
Laten we het proces dan herhalen zoals eerder:
# 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
Laten we het script uitvoerbaar maken en starten / inschakelen de dienst:
# chmod 755 autopostgresqlbackup.sh # systemctl start postgresql # systemctl enable postgresql
Ten slotte zullen we de waarde van de instelling van de back-upmap wijzigen in:
autopostgresqlbackup.sh - Configureer AutopostgresqlbackupBACKUPDIR="/var/backup/db/autopostgresqlbackup"
Na het configuratiebestand van automysqlbackup , is het configureren van deze tool erg eenvoudig (dat deel van de taak wordt aan jou overgelaten).
9. In CentOS 7 , in tegenstelling tot Debian 8 , autopostgresqlbackup kan het beste worden uitgevoerd als de postgres systeemgebruiker, dus om dat te doen moet je ofwel overschakelen naar dat account of een cron-job toevoegen aan het crontab-bestand:
# crontab -u postgres -e
30 01 * * * /opt/autopostgresqlbackup/autopostgresqlbackup.sh
De back-upmap moet trouwens worden gemaakt en de machtigingen en groepseigendom moeten recursief worden ingesteld op 0770 en postgres (nogmaals, dit is NIET nodig in Debian ):
# mkdir /var/backup/db/autopostgresqlbackup # chmod -R 0770 /var/backup/db/autopostgresqlbackup # chgrp -R postgres /var/backup/db/autopostgresqlbackup
Het resultaat:
# cd /var/backup/db/autopostgresqlbackup # pwd # ls -lR daily
10. Nu kunt u de bestanden indien nodig herstellen (vergeet niet dit te doen als gebruiker postgres na het opnieuw aanmaken van de lege database):
# gunzip -c postgresql_db_2015-09-02.Wednesday.sql.gz | psql postgresql_db
Overwegingen in Debian 8
Zoals we eerder vermeldden, is niet alleen de installatie van deze tools in Debian is eenvoudiger, maar ook hun respectievelijke configuraties. U vindt de configuratiebestanden in:
- Automysqlback-up :/etc/default/automysqlbackup
- Autopostgresqlbackup :/etc/default/autopostgresqlbackup
Samenvatting
In dit artikel hebben we uitgelegd hoe u automysqlbackup . installeert en gebruikt en autopostgresqlbackup (als u de eerste leert gebruiken, kunt u ook de tweede onder de knie krijgen), twee geweldige databaseback-uptools die uw taken als DBA of systeembeheerder / engineer veel gemakkelijker kunnen maken.
Houd er rekening mee dat u dit onderwerp kunt uitbreiden door e-mailmeldingen in te stellen of het verzenden van back-upbestanden als bijlagen via e-mail – niet strikt vereist, maar kan soms van pas komen.
Onthoud als laatste opmerking dat de machtigingen van configuratiebestanden op het minimum moeten worden ingesteld (0600 in de meeste gevallen). We zijn benieuwd wat je van dit artikel vindt. Stuur ons gerust een berichtje via het onderstaande formulier.