Sauvegardes à chaud avec Percona XtraBackup sur lapplication WordPress en un clic

Table des matières

  • introduction
  • Conditions préalables
  • Étape 1: créer un utilisateur système non root
  • Étape 2: vérifiez le moteur de stockage
  • Étape 3: créer un utilisateur de base de données pour la sauvegarde
  • Étape 4: installer Percona XtraBackup
  • Étape 5: créer des répertoires de stockage de sauvegarde
  • Étape 6: créer la première sauvegarde complète
  • Étape 7: créez les sauvegardes incrémentielles suivantes
  • Étape 8: préparer les fichiers de sauvegarde pour la restauration de la base de données
  • Étape 9: restaurer la base de données
  • Prochaines étapes

introduction

Percona XtraBackup est un programme gratuit basé sur MySQL utilisé pour effectuer des sauvegardes à chaud. Il est également open source. Avec Percona XtraBackup, vous pouvez effectuer des sauvegardes à chaud des bases de données MySQL, MariaDB ou Percona Server sans arrêter votre service de base de données ni le rendre en lecture seule. Il s'agit d'une fonctionnalité critique pour de nombreuses entreprises en ligne.

Pour les bases de données utilisant les moteurs de stockage InnoDB, XtraDB et HailDB, Percona XtraBackup peut effectuer des sauvegardes non bloquantes. Pour les bases de données utilisant les moteurs de stockage MyISAM, Merge et Archive, Percona XtraBackup peut également effectuer des sauvegardes en interrompant brièvement les écritures à la fin de la procédure de sauvegarde.

Dans cet article, je vais vous montrer comment installer et utiliser Percona XtraBackup pour effectuer des sauvegardes à chaud complètes et incrémentielles sur un serveur Vultr basé sur l'application WordPress en un clic. Nous allons effectuer une sauvegarde complète et deux sauvegardes incrémentielles, puis restaurer la base de données à l'état de chacune des trois sauvegardes en conséquence.

Conditions préalables

Je suppose que vous avez déployé une instance de serveur WordPress Vultr en un clic à partir de zéro et que vous vous êtes connecté en tant que root, en utilisant SSH.

Étape 1: créer un utilisateur système non root

Pour des raisons de sécurité, une pratique recommandée consiste à créer un autre compte d'utilisateur avec des autorisations root, puis à l'utiliser pour vous connecter et effectuer vos opérations quotidiennes sur le système. Vous pouvez toujours exécuter presque toutes les commandes de superutilisateur avec la sudocommande.

1) Créez un nouvel utilisateur. Remplacez-le sysuserpar votre propre nom d'utilisateur.

useradd sysuser

2) Définissez le mot de passe de votre nouvel utilisateur. Remplacez-le sysuserpar votre propre nom d'utilisateur.

passwd sysuser

3) Accordez des autorisations root à votre nouvel utilisateur.

visudo

Trouvez le paragraphe ci-dessous.

## Allow root to run any commands anywhere
root     ALL=(ALL)     ALL

Ajoutez une ligne directement sous ce paragraphe, remplacez-la sysuserpar votre propre nom d'utilisateur.

sysuser     ALL=(ALL)     ALL

Sauvegarder et quitter.

:wq

4) Basculez vers votre nouveau compte utilisateur.

logout

Ensuite, utilisez les informations d'identification du nouvel utilisateur pour vous connecter à partir de la fenêtre de votre terminal.

Étape 2: vérifiez le moteur de stockage

Par défaut, la connexion racine MySQL est enregistrée sur le VPS dans /root/.my.cnf. Affichez le mot de passe dans votre terminal avec la commande suivante.

sudo cat /root/.my.cnf

Utilisez les informations d'identification affichées à l'écran pour vous connecter à la console MySQL.

mysql -u root -p

Dans le shell MySQL, exécutez ce qui suit.

SHOW DATABASES;

Toutes les bases de données MySQL auront été affichées à l'écran. La base de données nommée comme wp5273512est la base de données WordPress que nous voulons sauvegarder. Dans la commande suivante, remplacez-la wp5273512par la vôtre:

USE wp5273512;

Vérifiez le moteur de stockage pour chaque table:

SHOW TABLE STATUS\G

Vous constaterez que toutes les tables de votre base de données WordPress MySQL utilisent le moteur de stockage InnoDB qui est parfait pour effectuer des sauvegardes à chaud avec Percona XtraBackup.

Pour toute autre base de données MySQL utilisant le moteur de stockage MyISAM, nous pouvons toujours les sauvegarder avec Percona XtraBackup en interrompant brièvement les écritures.

Étape 3: créer un utilisateur de base de données pour la sauvegarde

Toujours dans le shell MySQL, utilisez les commandes suivantes pour créer un utilisateur de base de données dédié pour la sauvegarde. N'oubliez pas de remplacer le nom d'utilisateur xbuseret le mot xbpasswdde passe de la base de données par les vôtres:

CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Les privilèges accordés ci-dessus sont nécessaires pour la fonctionnalité complète de Percona XtraBackup. Vous pouvez supprimer certains d'entre eux pour moins de fonctionnalités et une meilleure sécurité. Pour plus de détails, consultez le site officiel de Percona XtraBackup .

Étape 4: installer Percona XtraBackup

Vous pouvez installer Percona XtraBackup à partir du référentiel RPM de Percona assez facilement:

sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup

Étape 5: créer des répertoires de stockage de sauvegarde

Tout d'abord, vous devez ajouter un utilisateur sysuserau mysqlgroupe. Remplacez-le sysuserpar votre propre nom d'utilisateur.

sudo gpasswd -a sysuser mysql

Créez un répertoire pour stocker les sauvegardes complètes.

sudo mkdir -p /dbbackup/full/

Créez un autre répertoire pour stocker les sauvegardes incrémentielles.

sudo mkdir -p /dbbackup/inc/

Remplacez le propriétaire de ces répertoires par utilisateur sysuseret groupe sysuser.

sudo chown -R sysuser:sysuser /dbbackup

Déconnectez-vous pour appliquer ces modifications.

logout

Connectez-vous ensuite avec sysuser.

Étape 6: créer la première sauvegarde complète

XtraBackup se compose principalement du programme XtraBackup et du innobackupexscript perl. Habituellement, vous pouvez utiliser le innobackupexscript perl pour effectuer diverses procédures d'exploitation pour plus de commodité.

Saisissez la commande suivante pour créer la première sauvegarde complète. N'oubliez pas de remplacer le nom d'utilisateur de xbuserla base de données, le mot de passe de l'utilisateur de la base de données xbpasswdet le répertoire de sauvegarde complet /dbbackup/full/par les vôtres.

sudo innobackupex --user=xbuser  --password=xbpasswd /dbbackup/full/

Avec cette commande exécutée correctement, vous verrez le message de confirmation "innobackupex: terminé OK!" à la dernière ligne de la sortie.

Tous les fichiers nouvellement créés de cette sauvegarde complète seront stockés dans un répertoire horodaté sous /dbbackup/full/. Par exemple /dbbackup/full/2015-05-22_05-45-54,.

Étape 7: créez les sauvegardes incrémentielles suivantes

Entrez la commande suivante pour créer la première sauvegarde incrémentielle. Remplacez les variables dans la commande en conséquence.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/

Encore une fois, vous verrez "innobackupex: terminé OK!" à la fin de la sortie lorsque la commande s'exécute avec succès. Les fichiers de sauvegarde seront stockés dans un répertoire horodaté sous /dbbackup/inc/.

Entrez la commande suivante pour créer la deuxième sauvegarde incrémentielle. Remplacez les variables dans la commande en conséquence.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/

En cas de succès, vous verrez le "innobackupex: terminé OK!" message à nouveau. Vérifiez à /dbbackup/inc/nouveau le dossier pour voir les fichiers de sauvegarde.

Étape 8: préparer les fichiers de sauvegarde pour la restauration de la base de données

Tous les fichiers de sauvegarde de la base de données doivent être préparés avant de pouvoir être utilisés pour restaurer la base de données.

Remarque : Avant d'effectuer les procédures de préparation et de restauration, vous feriez mieux de conserver une copie de l'ensemble du répertoire de sauvegarde (tel que /dbbackup/) à un autre endroit au cas où des dommages à la sauvegarde des fichiers seraient causés par erreur.

Dans chaque répertoire de sauvegarde, il existe un fichier nommé xtrabackup_checkpointsqui contient le type de sauvegarde et les numéros de séquence de journal de début et de fin ( from_lsnet to_lsn). Vous pouvez utiliser ces chiffres pour clarifier votre stratégie de restauration de base de données. Regardez les exemples ci-dessous.

Dans le xtrabackup_checkpointsfichier de la première sauvegarde complète, j'ai:

backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478

Dans le xtrabackup_checkpointsfichier de la première sauvegarde incrémentielle, j'ai:

backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177

Dans le xtrabackup_checkpointsfichier de la deuxième sauvegarde incrémentielle, j'ai:

backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672

En bref, vous devez aborder chaque sauvegarde avec l'ordre croissant de lsn. Si la séquence lsn est incomplète ou désordonnée, vous risquez de perdre des données.

Remarque : Les commandes suivantes impliquent trois répertoires, remplacez-les par les vôtres.

Pour restaurer la base de données à l'état de la première sauvegarde complète, vous devez préparer les fichiers de sauvegarde avec la commande suivante:

sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Pour restaurer la base de données à l'état de la première sauvegarde incrémentielle, vous devez préparer les fichiers de sauvegarde avec les commandes suivantes:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Pour restaurer la base de données à l'état de la deuxième sauvegarde incrémentielle, vous devez préparer les fichiers de sauvegarde avec les commandes suivantes:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Remarques :

Pour les sauvegardes incrémentielles, vous devez utiliser l' --redo-onlyoption sur toutes les sauvegardes incrémentielles sauf la dernière. Néanmoins, l'utilisation de cette option sur la dernière sauvegarde incrémentielle est toujours inoffensive pour la cohérence de vos données - elle ne causera qu'un certain retard en raison de la restauration de la base de données.

La dernière commande de chaque scénario incrémentiel est facultative mais recommandée, car elle accélérera la restauration.

Après la préparation, les modifications enregistrées dans les fichiers de sauvegarde incrémentielle seront ajoutées aux fichiers de sauvegarde complète de base préparés, vous devez donc toujours utiliser les fichiers de sauvegarde complète préparés pour restaurer votre base de données, que vous choisissiez une sauvegarde complète ou une sauvegarde incrémentielle.

Étape 9: restaurer la base de données

Avant de pouvoir restaurer votre base de données, vous devez arrêter le service de base de données.

sudo service mysqld stop

Vous devez également vider le répertoire de la base de données. Vous pouvez déplacer les fichiers de base de données actuels vers un autre emplacement par précaution.

sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb

Restaurez votre base de données avec les fichiers de «sauvegarde complète» préparés.

sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54

Étant donné que la procédure de restauration modifiera le propriétaire du répertoire de la base de données, vous devez le modifier mysql:mysqlpour le rendre opérationnel.

sudo chown -R mysql:mysql /var/lib/mysql

Redémarrez le service de base de données.

sudo service mysqld start

C'est ça. À ce stade, vous pouvez visiter votre site WordPress pour vérifier que le processus de restauration a réussi.



Leave a Comment

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.