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

Comment installer MODX Revolution sur un VPS CentOS 7 LAMP

Comment installer MODX Revolution sur un VPS CentOS 7 LAMP

Vous utilisez un système différent? MODX Revolution est un système de gestion de contenu (CMS) de niveau entreprise rapide, flexible, évolutif, gratuit et open source écrit i

Installation de McMyAdmin sur Ubuntu 14.10

Installation de McMyAdmin sur Ubuntu 14.10

McMyAdmin est un panneau de contrôle de serveur Minecraft utilisé pour administrer votre serveur. Bien que McMyAdmin soit gratuit, il existe plusieurs éditions, dont certaines sont pai

Configurer un serveur TeamTalk sous Linux

Configurer un serveur TeamTalk sous Linux

TeamTalk est un système de conférence qui permet aux utilisateurs davoir des conversations audio / vidéo de haute qualité, un chat textuel, de transférer des fichiers et de partager des écrans. Cest moi

Comment installer et configurer CyberPanel sur votre serveur CentOS 7

Comment installer et configurer CyberPanel sur votre serveur CentOS 7

Vous utilisez un système différent? Introduction CyberPanel est lun des premiers panneaux de contrôle du marché à la fois open source et utilisant OpenLiteSpeed. Quest-ce que

Installer phpBB avec Apache sur Ubuntu 16.04

Installer phpBB avec Apache sur Ubuntu 16.04

PhpBB est un programme de babillard open source. Cet article vous montrera comment installer phpBB sur un serveur Web Apache sur Ubuntu 16.04. Cétait écrit

Configurer un utilisateur non root avec Sudo Access sur Ubuntu

Configurer un utilisateur non root avec Sudo Access sur Ubuntu

Avoir un seul utilisateur, qui est root, peut être dangereux. Permet donc de résoudre ce problème. Vultr nous donne la liberté de faire ce que nous voulons avec nos utilisateurs et nos serveurs

Installer eSpeak sur CentOS 7

Installer eSpeak sur CentOS 7

Vous utilisez un système différent? ESpeak peut générer des fichiers audio de synthèse vocale (TTS). Ceux-ci peuvent être utiles pour de nombreuses raisons, telles que la création de votre propre Turin

Comment installer Thelia 2.3 sur CentOS 7

Comment installer Thelia 2.3 sur CentOS 7

Vous utilisez un système différent? Thelia est un outil open source pour la création de sites Web de commerce électronique et la gestion de contenu en ligne, écrit en PHP. Code source Thelia i

Installation de Fuel CMS sur Ubuntu 16.04 LTS

Installation de Fuel CMS sur Ubuntu 16.04 LTS

Vous utilisez un système différent? Fuel CMS est un système de gestion de contenu basé sur CodeIgniter. Son code source est hébergé sur GitHub. Ce guide vous montrera comment

Comment configurer loptimisation TCP sous Linux

Comment configurer loptimisation TCP sous Linux

Introduction Vous avez des problèmes de connectivité lorsque des visiteurs dautres pays accèdent à votre site Web? Vous vous demandez pourquoi la vitesse de téléchargement de votre Foreig

Comment déployer Ghost v0.11 LTS sur Ubuntu 16.04

Comment déployer Ghost v0.11 LTS sur Ubuntu 16.04

Vous utilisez un système différent? Ghost est une plate-forme de blogs open source qui gagne en popularité auprès des développeurs et des utilisateurs ordinaires depuis sa 201

Comment installer Pip sur Linux

Comment installer Pip sur Linux

Pip est un outil de gestion des packages Python. Lutilisation dun gestionnaire de packages permet une gestion efficace de votre serveur. Dans ce tutoriel, je vais expliquer comment t

Comment déployer Google BBR sur CentOS 7

Comment déployer Google BBR sur CentOS 7

BBR (Bottleneck Bandwidth and RTT) est un nouvel algorithme de contrôle de congestion qui est contribué à la pile TCP du noyau Linux par Google. Avec BBR en place,

Comment installer Icinga 2 et Icinga Web 2 sur Ubuntu 16.04

Comment installer Icinga 2 et Icinga Web 2 sur Ubuntu 16.04

Icinga 2 est un système de surveillance des ressources réseau open source largement utilisé, et Icinga Web 2 est linterface Web officielle pour Icinga 2. Dans ce didacticiel,

Comment installer YOURLS sur CentOS 7

Comment installer YOURLS sur CentOS 7

YOURLS (Your Own URL Shortener) est une application open source de raccourcissement dURL et danalyse de données. Dans cet article, nous couvrirons le processus dinstallation

Comment activer TLS 1.3 dans Apache sur Fedora 30

Comment activer TLS 1.3 dans Apache sur Fedora 30

Vous utilisez un système différent? TLS 1.3 est une version du protocole TLS (Transport Layer Security) qui a été publiée en 2018 en tant que norme proposée dans la RFC 8446

Configurer un Chroot sur Debian

Configurer un Chroot sur Debian

Cet article vous apprendra comment configurer une prison chroot sur Debian. Je suppose que vous utilisez Debian 7.x. Si vous utilisez Debian 6 ou 8, cela peut fonctionner, bu

Comment installer PiVPN sur Debian

Comment installer PiVPN sur Debian

Introduction Un moyen facile de configurer un serveur VPN sur Debian est avec PiVPN. PiVPN est un installateur et un wrapper pour OpenVPN. Il crée des commandes simples pour vous t

Comment installer Alfresco Community Edition sur Ubuntu 16.04

Comment installer Alfresco Community Edition sur Ubuntu 16.04

Vous utilisez un système différent? Alfresco Community Edition est une version open source des services de contenu Alfresco. Il est écrit en Java et utilise PostgreSQL t

Configurer Nginx-RTMP sur CentOS 7

Configurer Nginx-RTMP sur CentOS 7

Vous utilisez un système différent? RTMP est idéal pour diffuser du contenu en direct. Lorsque RTMP est associé à FFmpeg, les flux peuvent être convertis en différentes qualités. Vultr i

Comment générer des clés SSH?

Comment générer des clés SSH?

Découvrez comment générer une clé SSH pour accéder à votre serveur sans mot de passe. Suivez nos étapes faciles à comprendre pour créer et ajouter des clés SSH.

Créer un serveur de messagerie avec hMailServer sous Windows

Créer un serveur de messagerie avec hMailServer sous Windows

Découvrez comment créer un serveur de messagerie avec hMailServer sous Windows pour recevoir des e-mails facilement.

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.