Comment sauvegarder / restaurer MySQL / MARIADB et PostgreSQL à l'aide de `` AutomySQLBackup 'et «AutoPostgreSQLBackup»

Comment sauvegarder / restaurer MySQL / MARIADB et PostgreSQL à l'aide de `` AutomySQLBackup 'et «AutoPostgreSQLBackup»

Si vous êtes un administrateur de base de données (Dba) ou sont responsables du maintien, 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: perdre des données signifie non seulement la perte d'informations importantes, mais peut également nuire à votre entreprise financière.

MySQL / MARIADB & POSTRESQL SAUXUP / RESTOR

Pour cette raison, vous devez toujours vous assurer que:

1. Vos bases de données sont sauvegardées sur une base périodique,
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 rencontrer un problème majeur sans avoir pratiqué ce qui doit être fait dans une telle situation.

Dans ce tutoriel, nous vous présenterons deux beaux utilitaires pour sauvegarder Mysql / / Mariadb et Postgresql bases de données, respectivement: automysqlbackup et autopostgresqlbackup.

Puisque le second est basé sur le premier, nous concentrerons notre explication sur automysqlbackup et mettre en évidence les différences avec autopgsqlbackup, le cas échéant du tout.

Il est fortement recommandé de stocker les sauvegardes dans un partage de réseau monté dans le répertoire de sauvegarde afin qu'en cas de crash à l'échelle du système, vous serez toujours couvert.

Lisez les guides utiles suivants sur MySQL:

Commandes d'administration de base de données de base MySQL MySQL MySQL Sauvegarde et restauration des commandes pour l'administration de la base de données PhpMyBackuPro - Un outil de sauvegarde MySQL basé sur le Web MySQLLDURMER: A PHP et Administrateur de la base de données MySQL MySQL 15 Basic MySQL Questions d'interview pour les administrateurs de la base de données MySQL

Installation de bases de données MySQL / MARIADB / POSTRESQL

1. Ce guide suppose que vous devez avoir 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:

# APTUTION UPDATE && aptitude installer mariaDB-Client MariaDB-Server MariaDB-Common PostgreSQL Client PostgreSQL PostgreSQL-COMMON-COMMON 

2. Vous avez un test Mysql / / Mariadb / / Postgresql base de données que vous pouvez utiliser (vous êtes conseillé de PAS Utiliser soit automysqlbackup ou autopostgresqlbackup dans un environnement de production jusqu'à ce que vous ayez fait connaissance avec ces outils).

Sinon, créez deux exemples de bases de données et remplissez-les de données avant de continuer. Dans cet article, j'utiliserai les bases de données et tables suivantes:

Mysql / mariadb
Créer la base de données mariaDB_DB; Créer la table Tecmint_tbl (UserId int Auto_increment Clé primaire, nom d'utilisateur Varchar (50), isactive bool); 
Créer la base de données MySQL PostgreSQL
Créer la base de données postgresql_db; Créer la table Tecmint_tbl (touche primaire de série utilisateur, nom d'utilisateur Varchar (50), isactive booléen); 
Créer une base de données PostgreSQL

Installation de l'automysqlbackup et autopgsqlbackup dans Centos 7 et Debian 8

3. Dans Debian 8, Les deux outils sont disponibles dans les référentiels, donc les installer est aussi simple que l'exécution:

# aptitude installer 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 pendant Debian 8 - Là où ils travaillent presque hors de la boîte, nous ferons les clarifications nécessaires plus tard dans cet article.

Installation et configuration de l'automysqlbackup dans Centos 7

4. Commençons par créer un répertoire de travail à l'intérieur /opter 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.le goudron.gz # tar zxf automysqlbackup-v3.0_rc6.le goudron.gz # ./installer.shot 

.
Installation de l'automysqlbackup dans CentOS-7

5. Le fichier de configuration pour automysqlbackup est situé à l'intérieur / etc / automysqlbackup sous le nom myserver.confli. Jetons un coup d'œil aux directives de configuration les plus pertinentes:

myserver.Conf - Configurez AutomySqlbackup
# Nom d'utilisateur pour accéder au serveur MySQL Config_Mysql_Dump_Username = 'racine'# Mot de passe config_mysql_dump_password ='Votre mot-d'œuvre'# Nom d'hôte (ou adresse IP) de MySQL Server config_mysql_dump_host ='hôte local'# Répertoire de sauvegarde config_backup_dir ='/ var / backup / db / automysqlbackup'# Liste des bases de données pour la sauvegarde quotidienne / hebdomadaire E.g. ('Db1 "db2" db3'…) # set to (), i.e. vide, si vous souhaitez sauvegarder toutes les bases de données config_db_names = (Noms d'addyNatabase ici) # Liste des bases de données pour les sauvegardes mensuelles. # réglé sur (), je.e. vide, si vous souhaitez sauvegarder toutes les bases de données config_db_month_names = (Noms d'addyNatabase ici) # Quel jour voulez-vous des sauvegardes mensuelles? (01 à 31) # Si le jour choisi est supérieur au dernier jour du mois, cela se fera # le dernier jour du mois. # Réglé sur 0 pour désactiver les sauvegardes mensuelles. Config_do_monthly = "01"# Quel jour voulez-vous des sauvegardes hebdomadaires? (1 à 7 où 1 est lundi) # réglé sur 0 pour désactiver les sauvegardes hebdomadaires. Config_do_weekly = "5"# Définir la rotation des sauvegardes quotidiennes. Valeur * 24hours # Si vous voulez conserver uniquement les sauvegardes d'aujourd'hui, vous pouvez choisir 1, je.e. Tout ce qui est plus âgé que 24 heures sera supprimé. Config_rotation_daily =6 # Définir la rotation pour les sauvegardes hebdomadaires. Valeur * 24hours. Une valeur de 35 signifie 5 semaines. Config_rotation_weekly =35 # Définir la rotation pour les sauvegardes mensuelles. Valeur * 24hours. Une valeur de 150 signifie 5 mois. Config_rotation_monthly =150 # Inclure la création de l'instruction de base de données dans la sauvegarde? Config_mysql_dump_create_database ='Non' # Répertoire et fichier de sauvegarde séparés pour chaque base de données? (oui ou non) config_mysql_dump_use_separate_dirs ='Oui' # Choisissez le type de compression. (gzip ou bzip2) config_mysql_dump_compression ='gzip' # Qu'aimeriez-vous être envoyé par la poste? # - Journal: Envoyez uniquement le fichier journal # - Fichiers: Envoyer un fichier journal et des fichiers SQL sous forme de pièces jointes (voir DOCS) # - STDOUT: il sera simplement publié le journal à l'écran si l'exécution manuelle. # - Silencieux: envoyez des journaux uniquement si une erreur se produit au MailAddr. Config_mailcontent ='calme' # Adresse e-mail pour envoyer le courrier à? ([e-mail protégé]) config_mail_address ='racine' # Souhaitez-vous crypter vos sauvegardes à l'aide d'OpenSSL? # Config_encrypt = 'non' # Choisissez un mot de passe pour crypter les sauvegardes. # Config_encrypt_password = 'password0123' # Commande à exécuter avant les sauvegardes (non comment à utiliser) #config_prebackup = "/ etc / mysql-backup-pre" # Commande exécuter après les sauvegardes (non-backup -poste" 

Une fois que vous avez configuré automysqlbackup Selon vos besoins, vous vous conseillez fortement de consulter le Réadmettre Fichier trouvé dans / etc / automysqlbackup / readme.

Sauvegarde de la base de données MySQL

6. Lorsque vous êtes prêt, allez-y et exécutez le programme, en passant le fichier de configuration comme argument:

# automysqlbackup / etc / automysqlbackup / myserver.confli 
Configurer AutomySQLBackup sur Centos 7

Une inspection rapide du quotidien Le répertoire montrera que automysqlbackup a fonctionné avec succès:

# pwd # ls -lr quotidien 
Sauvegarde de la base de données Daily MySQL

Bien sûr, vous pouvez ajouter une entrée crontab pour fonctionner automysqlbackup À une heure de la journée qui convient le mieux à vos besoins (1h30 suis tous les jours dans l'exemple ci-dessous):

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

Restauration d'une sauvegarde MySQL

7. Maintenant, laissons tomber le Mariadb_db Base de données exprès:

Base de données MariaDB

Créons à nouveau et restaurons la sauvegarde. Dans l'invite MariaDB, Type:

Créer la base de données mariaDB_DB; sortie 

Puis localisez:

# cd / var / backup / db / automysqlbackup / quotidien / mariadb_db # ls 
Localisez la sauvegarde de la base de données MARIADB

Et restaurer la sauvegarde:

# mysql -u root -p mariaDb_db Utilisez mariaDb_db; MariaDB [(Aucun)]> SELECT * FROM TECMINT_TB1; 
Restaurer la sauvegarde MariAdb

Installation et configuration de l'autopostgresqlbackup dans Centos 7

8. Afin de AutoPostgreSQL travailler parfaitement dans Centos 7, Nous devrons d'abord installer certaines dépendances:

# yum installer Mutt Sendmail 

Alors 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.shot.1.0 # MV AutoPostgreSQlbackup.shot.1.0 / Opt / AutoPostgreSQlBackup / AutoPostgreSQLBackup.shot 

Faisons le script exécutable et commencer / / activer le service:

# Chmod 755 AutoPostgreSQlbackup.SH # SystemCTL Démarrer PostgreSQL # SystemCTL Activer PostgreSQL 

Enfin, nous modifierons la valeur du paramètre de répertoire de sauvegarde sur:

autopostgresqlbackup.sh - configurer autopostgresqlbackup
Backupdir = "/ var / backup / db / autoPostgreSqlbackup" 

Après avoir eu le fichier de configuration de automysqlbackup, La configuration de cet outil est très facile (cette partie de la tâche vous est laissée).

9. Dans Centos 7, par opposition à Debian 8, autopostgresqlbackup est le meilleur courir comme le postgres Utilisateur du système, donc pour ce faire, vous devez soit passer à ce compte, soit ajouter un travail cron à son fichier crontab:

# crontab -u postgres -e 
30 01 * * * / opt / autoPostgreSQlBackup / AutoPostgreSQLBackup.shot 

Soit dit en passant, le répertoire de sauvegarde doit être créé et ses autorisations et sa possession de groupe doivent être définies pour 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 quotidien 
Sauvegarde de la base de données quotidienne de PostgreSQL

dix. Vous pouvez désormais restaurer les fichiers en cas de besoin (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.Mercredi.SQL.gz | PSQL PostgreSQL_DB 

Considérations dans Debian 8

Comme nous l'avons mentionné plus tôt, non seulement l'installation de ces outils dans Debian est plus simple, mais aussi leurs configurations respectives. Vous trouverez les fichiers de configuration dans:

  1. Automysqlbackup: / etc / par défaut / automysqlbackup
  2. Autopostgresqlbackup: / etc / par défaut / 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 la seconde), deux excellentes outils de sauvegarde de base de données qui peuvent faciliter vos tâches en tant qu'administrateur / ingénieur système.

Veuillez noter que vous pouvez développer ce sujet en mettant en place Notifications par email ou envoyer des fichiers de sauvegarde comme des pièces jointes par e-mail - pas strictement requis, mais peut parfois être utile.

En tant que note finale, n'oubliez pas que les autorisations de fichiers de configuration doivent être définies sur le minimum (0600 dans la plupart des cas). Nous sommes impatients d'entendre ce que vous pensez de cet article. N'hésitez pas à nous laisser une note en utilisant le formulaire ci-dessous.