Si vous êtes un administrateur de base de données (DBA ) ou êtes responsable de la maintenance, de la sauvegarde et de la restauration des bases de données, vous savez que vous ne pouvez pas vous permettre de perdre des données. La raison est simple :la perte de données signifie non seulement la perte d'informations importantes, mais peut également nuire financièrement à votre entreprise.
Pour cette raison, vous devez toujours vous assurer que :
1. vos bases de données sont sauvegardées périodiquement,
2. ces sauvegardes sont stockées dans un endroit sûr, et
3. vous effectuez régulièrement des exercices de restauration.
Cette dernière activité ne doit pas être négligée, car vous ne voulez pas vous heurter à un problème majeur sans avoir pratiqué ce qui doit être fait dans une telle situation.
Dans ce tutoriel, nous allons vous présenter deux utilitaires sympas pour sauvegarder MySQL / MariaDB et PostgreSQL bases de données, respectivement :automysqlbackup et autopostgresqlbackup .
Puisque ce dernier est basé sur le premier, nous concentrerons notre explication sur automysqlbackup et mettre en évidence les différences avec autopgsqlbackup , le cas échéant.
Il est fortement recommandé de stocker les sauvegardes dans un partage réseau monté dans le répertoire de sauvegarde afin qu'en cas de plantage à l'échelle du système, vous soyez toujours couvert.
Lisez les guides utiles suivants sur MySQL :
Commandes d'administration de base de données MySQL de baseCommandes de sauvegarde et de restauration MySQL pour l'administration de base de donnéesphpMyBackupPro - Un outil de sauvegarde MySQL basé sur le WebMySQLDumper :un outil de sauvegarde de base de données MySQL basé sur PHP et PerlInstallation des bases de données MySQL / MariaDB / PostgreSQL
1. Ce guide suppose que vous devez disposer de MySQL / MariaDB / PostgreSQL instance en cours d'exécution, sinon, veuillez installer les packages suivants :
Distributions basées sur Fedora :
# yum update && yum install mariadb mariadb-server mariadb-libs postgresql postgresql-server postgresql-libs
Debian et dérivés :
# aptitude update && aptitude install mariadb-client mariadb-server mariadb-common postgresql-client postgresql postgresql-common
2. Vous avez un test MySQL / MariaDB / PostgreSQL base de données que vous pouvez utiliser (il est conseillé de NE PAS utilisez soit automysqlbackup ou autopostgresqlbackup dans un environnement de production jusqu'à ce que vous vous soyez familiarisé avec ces outils).
Sinon, créez deux exemples de bases de données et remplissez-les avec des données avant de continuer. Dans cet article, j'utiliserai les bases de données et tables suivantes :
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);
Installation d'automysqlbackup et d'autopgsqlbackup dans CentOS 7 et Debian 8
3. Dans Debian 8 , les deux outils sont disponibles dans les référentiels, leur installation est donc aussi simple que leur exécution :
# aptitude install automysqlbackup autopostgresqlbackup
Alors que dans CentOS 7 vous devrez télécharger les scripts d'installation et les exécuter. Dans les sections ci-dessous, nous nous concentrerons exclusivement sur l'installation, la configuration et le test de ces outils sur CentOS 7 depuis pour Debian 8 - là où ils fonctionnent presque hors de la boîte, nous apporterons les clarifications nécessaires plus loin dans cet article.
Installation et configuration d'automysqlbackup dans CentOS 7
4. Commençons par créer un répertoire de travail dans /opt
pour télécharger le script d'installation et l'exécuter :
# 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. Le fichier de configuration pour automysqlbackup est situé dans /etc/automysqlbackup sous le nom myserver.conf . Examinons les directives de configuration les plus pertinentes :
myserver.conf – Configurez 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"
Une fois que vous avez configuré automysqlbackup selon vos besoins, il est fortement conseillé de consulter le README fichier trouvé dans /etc/automysqlbackup/README .
Sauvegarde de la base de données MySQL
6. Lorsque vous êtes prêt, lancez le programme en passant le fichier de configuration en argument :
# automysqlbackup /etc/automysqlbackup/myserver.conf
Une inspection rapide du quotidien répertoire affichera que automysqlbackup s'est exécuté avec succès :
# pwd # ls -lR daily
Bien sûr, vous pouvez ajouter une entrée crontab pour exécuter automysqlbackup à l'heure de la journée qui vous convient le mieux (13h30 suis tous les jours dans l'exemple ci-dessous):
30 01 * * * /usr/local/bin/automysqlbackup /etc/automysqlbackup/myserver.conf
Restauration d'une sauvegarde MySQL
7. Laissons tomber maintenant mariadb_db base de données à dessein :
Créons-le à nouveau et restaurez la sauvegarde. Dans l'invite MariaDB, saisissez :
CREATE DATABASE mariadb_db; exit
Localisez ensuite :
# cd /var/backup/db/automysqlbackup/daily/mariadb_db # ls
Et restaurez la sauvegarde :
# 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;
Installation et configuration d'autopostgresqlbackup dans CentOS 7
8. Pour autopostgresql pour fonctionner parfaitement dans CentOS 7 , nous devrons d'abord installer certaines dépendances :
# yum install mutt sendmail
Ensuite, répétons le processus comme avant :
# 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
Rendons le script exécutable et commençons / activer le service :
# chmod 755 autopostgresqlbackup.sh # systemctl start postgresql # systemctl enable postgresql
Enfin, nous modifierons la valeur du paramètre de répertoire de sauvegarde en :
autopostgresqlbackup.sh - Configurer AutopostgresqlbackupBACKUPDIR="/var/backup/db/autopostgresqlbackup"
Après avoir parcouru le fichier de configuration de automysqlbackup , la configuration de cet outil est très simple (cette partie de la tâche vous est laissée).
9. Dans CentOS 7 , par opposition à Debian 8 , autopostgresqlbackup est mieux exécuté en tant que postgres utilisateur système, pour ce faire, vous devez soit passer à ce compte, soit ajouter une tâche cron à son fichier crontab :
# crontab -u postgres -e
30 01 * * * /opt/autopostgresqlbackup/autopostgresqlbackup.sh
Soit dit en passant, le répertoire de sauvegarde doit être créé et ses autorisations et la propriété du groupe doivent être définies de manière récursive sur 0770 et postgres (encore une fois, cela ne sera PAS nécessaire dans Debian ):
# mkdir /var/backup/db/autopostgresqlbackup # chmod -R 0770 /var/backup/db/autopostgresqlbackup # chgrp -R postgres /var/backup/db/autopostgresqlbackup
Le résultat :
# cd /var/backup/db/autopostgresqlbackup # pwd # ls -lR daily
10. Vous pouvez maintenant restaurer les fichiers si nécessaire (n'oubliez pas de le faire en tant qu'utilisateur postgres après avoir recréé la base de données vide) :
# gunzip -c postgresql_db_2015-09-02.Wednesday.sql.gz | psql postgresql_db
Considérations dans Debian 8
Comme nous l'avons mentionné précédemment, non seulement l'installation de ces outils dans Debian est plus simple, mais aussi leurs configurations respectives. Vous trouverez les fichiers de configuration dans :
- Automysqlbackup :/etc/default/automysqlbackup
- Autopostgresqlbackup :/etc/default/autopostgresqlbackup
Résumé
Dans cet article, nous avons expliqué comment installer et utiliser automysqlbackup et autopostgresqlbackup (apprendre à utiliser le premier vous aidera également à maîtriser le second), deux excellents outils de sauvegarde de base de données qui peuvent faciliter vos tâches en tant que DBA ou administrateur/ingénieur système.
Veuillez noter que vous pouvez développer ce sujet en configurant des notifications par e-mail ou envoyer des fichiers de sauvegarde en pièces jointes par e-mail - pas strictement obligatoire, mais peut parfois être utile.
Enfin, rappelez-vous que les autorisations des fichiers de configuration doivent être définies au minimum (0600 dans la plupart des cas). Nous avons hâte de savoir ce que vous pensez de cet article. N'hésitez pas à nous envoyer un message en utilisant le formulaire ci-dessous.