PostgreSQL avec pgBackRest : installation, configuration et sauvegarde | Marek Obuchowski | Skillshare
Recherche

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

PostgreSQL avec pgBackRest : installation, configuration et sauvegarde

teacher avatar Marek Obuchowski, DevOps and Cloud Engineer

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction

      1:48

    • 2.

      Ce que nous allons construire

      2:18

    • 3.

      Préparation du serveur

      3:52

    • 4.

      Installation et configuration initiale de Postgres

      5:54

    • 5.

      Configurer le serveur principal et le serveur de secours

      13:24

    • 6.

      Installer et configurer pgbackrest

      13:16

    • 7.

      Prendre une sauvegarde complète avec pgbackrest

      3:46

    • 8.

      Restaurer les données à partir d'une sauvegarde

      4:59

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

3

apprenants

--

projet

À propos de ce cours

Bienvenue dans le  cours d'installation et de configuration de PostgreSQL avec PgBackRest !

Cette formation propose des conseils étape par étape sur la configuration de la base de données Postgres avec PgBackRest comme solution de sauvegarde et de restauration rapide et efficace.

Dans ce cours, vous apprendrez à installer PostgreSQL, à le configurer et à comprendre les paramètres essentiels qui assurent sa fonctionnalité.

De plus, nous nous pencherons sur pgBackRest, une solution de sauvegarde et de restauration puissante, qui vous permettra d'acquérir une expérience pratique dans la mise en œuvre de cet outil de protection des données robuste.

À la fin de ce cours, vous serez équipé des compétences nécessaires pour gérer des bases de données PostgreSQL et effectuer des opérations de sauvegarde vitales, garantissant la sécurité et l'intégrité de vos données.

Ce cours est conçu pour tous ceux qui souhaitent se plonger dans le monde des bases de données, et il couvre tout, des concepts de base aux stratégies de sauvegarde avancées. Que vous soyez un débutant complet ou un professionnel de l'informatique cherchant à améliorer vos compétences, cette formation complète vous permettra d'acquérir les outils et les connaissances essentiels nécessaires pour gérer efficacement les bases de données PostgreSQL.

Une partie importante de ce cours est dédiée à pgBackRest, une solution robuste de sauvegarde et de restauration. Vous acquerrez une expérience pratique dans l'installation et la configuration de pgBackRest, dans la réalisation d'opérations de sauvegarde fiables et dans l'exécution de procédures de restauration efficaces.

Faites le premier pas vers la maîtrise de PostgreSQL dès aujourd'hui !

Rencontrez votre enseignant·e

Teacher Profile Image

Marek Obuchowski

DevOps and Cloud Engineer

Enseignant·e
Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction: Bonjour, je m'appelle Mark et je tiens à vous remercier d'avoir choisi cette formation dans laquelle nous passerons en revue le processus complet de configuration étape par étape de la base de données Postgres et de la solution de sauvegarde et de restauration PG Brest solution de sauvegarde et de restauration Je travaille en tant qu'ingénieur des plateformes Debobs et Cloud depuis de nombreuses années création, la mise à niveau et la migration bases de données constituent une part importante de J'ai décidé de créer cette formation dans le cadre de laquelle nous pouvons configurer une infrastructure que vous pourrez ensuite répliquer dans votre environnement de production Postdscule est l'une des bases de données les plus populaires, mais sa configuration peut parfois être un peu difficile en raison des nombreux éléments mobiles et des ajustements spécifiques qui sont parfois nécessaires pour que Postdscule fonctionne exactement comme nous le souhaitons Ce cours peut sembler très avancé et s' adresse peut-être aux professionnels des bases Le fait est que vous devriez être capable de le suivre même si vous n'avez aucune expérience informatique préalable. Nous allons installer Postgres et PG Brest ici. Nous allons les configurer tous les deux. Nous explorerons des options presque importantes afin que vous puissiez avoir cette solution complète en place et opérationnelle. Bien qu'il puisse être utile de comprendre un peu Linux et de connaître les commandes Linux les plus populaires, ce n'est pas un prérequis et vous devriez être en mesure de terminer ce cours même sans ces connaissances. Vous n'avez en réalité qu'un ordinateur portable ou un PC et environ une heure de temps libre. Si vous êtes intéressé par Dobs et les technologies Cloud, n'oubliez pas que vous pouvez rejoindre notre communauté sur la plateforme automation avenue.com, où vous pourrez tout savoir sur Terraform, AWS, Cloud , Python et bien d'autres sujets liés au Cloud et bien d'autres J'espère que cela vous aidera et je vous remercie de votre attention, Mark. 2. 2 ce que nous allons construire: Voyons exactement ce que nous allons construire, à quoi ressemblera notre infrastructure. Exécuter la presse sur une seule instance n'est certainement pas quelque chose que vous souhaitez avoir en production. Vous connaissez le dicton, deux c'est un et un c'est aucun. Nous allons d' abord créer un serveur principal qui agira en tant que serveur actif et acceptera toutes les demandes entrantes de nos clients. Une fois qu'il sera opérationnel, nous ajouterons également un serveur de secours. Ce serveur de secours sera tenu à jour en lisant un flux d'enregistrements écrits à l' avance ou de fichiers muraux en bref. Cela signifie que si le serveur principal tombe en panne ou s'il lui arrive quoi que ce soit d'autre, nous pouvons rapidement sélectionner ce serveur de secours pour devenir notre nouveau serveur principal. C'est ce que nous allons définir en premier alors. Mais une fois que nous l'aurons fait, nous ajouterons PG Brest, qui est une solution de sauvegarde et de restauration pour Postgres, et PG Brest continuera à envoyer nos fichiers muraux et nos principales sauvegardes à distance. Il peut s'agir de n'importe quel endroit éloigné de notre choix. Mais cela signifie que même si les deux serveurs, principal et secondaire, tombent en panne, nous serons toujours en mesure de les reconstruire et de restaurer toutes les données depuis cet emplacement distant. Et aujourd'hui, nous allons construire tout cela. Nous configurerons tout, puis nous effectuerons le basculement et divers autres scénarios de reprise après sinistre Juste à noter que dans cette vidéo, je vais installer Postgres 16 sur les serveurs Ubu to 2404 LTS, mais cela ne devrait pas avoir d'importance car le processus est similaire pour la plupart des distributions Linux, et le processus d'installation et de configuration Postgres sera également très similaire pour toutes les versions de Postgres publiées ces dernières Vous pouvez donc suivre ce tutoriel même si vous avez, disons, Fedora et que vous souhaitez installer Postdress 14 ou Post dress 17 Je vais utiliser le compartiment AWS S Three comme stockage à distance , mais PG Brest vous permet de stocker des murs et des sauvegardes presque où vous le souhaitez. Il peut donc s'agir d'un autre serveur, d'un stockage NAS, je ne sais pas, ou d'un autre emplacement dans le cloud, comme GCP ou Azure, c'est probablement quelque chose dont je ne suis même pas au courant, mais PG Bast est très flexible et il est également mais PG Bast est très flexible assez facile à configurer C'est pourquoi il est très courant de le voir dans un environnement de production. Commençons alors. 3. Préparation de 3 serveurs fusionnés: Mes serveurs seront des serveurs virtuels dans AWS, et on les appelle EC twos là-bas Mais encore une fois, peu importe où se trouvent vos serveurs. S'ils sont dans le cloud ou s'ils sont sur site, tant que vous pouvez les configurer pour qu'ils puissent communiquer entre eux , tout va bien Je vais donc simplement lancer des instances. Créez rapidement des serveurs comme ce que l'on appelle PG, et comme je l'ai dit, ce sera Ubuntu. 24 heures sur quatre. Par exemple, tapez, choisissons quelque chose parmi T trois, peut-être T trois de large. Il s'agit de la taille de notre serveur. Keeper, je vais ajouter la clé SSH et les paramètres réseau. Je voudrais changer une chose ici, en fait. Tout d'abord, il se peut que vous voyiez une adresse IP publique attribuée automatiquement. En production, vous ne voulez certainement pas avoir d'adresse IP publique sur votre base de données. Mais ici, comme je n'ai pas de passerelle Nut, elle s'appelle passerelle Nut. Sinon, mes instances ne pourront pas se connecter à Internet, et je ne veux pas créer ces passerelles Nut Rappelons-nous donc que ces serveurs ne devraient pas vraiment avoir d' adresses IP publiques. Je devrais le désactiver. À ces fins, c'est juste pour les tests, donc je peux les laisser tels quels, car nous devrons simplement installer certaines choses. Allons plus loin. Groupe de sécurité, je peux l'appeler postgress et en gros, ce dont j'ai besoin, c' le SSH est déjà autorisé, mais je voudrais ajouter Nous devons ajouter le port 5432 pour être également autorisé. Ces serveurs doivent donc être en mesure de communiquer sur le port 5432, en gros Et comme source, je veux choisir l' intégralité de mon sous-réseau 1723 116 Ce sera notre connectivité post-gress car vos serveurs doivent pouvoir communiquer sur ce port En ce qui concerne le stockage, nous pouvons l'augmenter un peu, cela n'a pas vraiment d'importance Mais ce qui compte dans AWS, c'est que je dois activer le chiffrement. C'est ça. Et puis j'ai besoin de deux instances, en fait, pas une seule. Nous allons simplement lancer des instances. C'est ça. Deux instances ont été créées. Regardons-les. Nous pouvons voir qu'ils sont en attente. Vous pouvez ignorer le précédent. Je me rends compte que j'ai une instance en cours d'exécution. Changeons peut-être leurs noms. Ce sera notre PG principal et ce sera notre PG secondaire. Nous devrions pouvoir nous y connecter sous peu, en les initialisant, mais peut-être que nous pouvons déjà essayer Je vais élargir un peu le terminal : ouvrez TMux maintenant Control B, puis passez rapidement à la vitesse supérieure plus cinq Nous pouvons diviser le TMX verticalement et nous nous connecterons à nos deux serveurs Je pense que je dois me connecter comme je veux utiliser. Changeons également les noms d'hôtes pour qu' il soit parfaitement clair où nous nous trouvons. Donc sudo, nom d'hôte CTL, définit le nom d'hôte PG primary Il en va de même pour le secondaire. Nous devons les redémarrer après cela. Mais maintenant, lorsque nous nous reconnectons, ce nom devrait être reflété. 4. 4 installations et configuration initiale de postgres: C'est bon. Maintenant, ce que nous pouvons faire, cliquer sur Control plus B , puis sur column et taper setw sync panes De cette façon, nous pouvons taper les mêmes commandes dans les deux fenêtres en même temps. Commençons par pudo up get update. C'est toujours la première commande que vous devez exécuter de toute façon. Soyons clairs une fois de plus. Laissez-moi le faire en plein écran. Je pense que nous savons maintenant de quoi nous parlons. Deuxième commande, je ne sais pas trop si j'en ai besoin, mais j'installe généralement les outils GN PG two et W G. C'est donc PSUDout qui installe Gnu PG two et WG. Parfait Soyons clairs une fois de plus. Et maintenant, nous n'avons besoin que d'une seule commande pour installer postgress sur le serveur bumto Devinez ce que c'est, c'est PostgresSQL. Procédez donc pour installer PostgresSQL. C'est ça. Soyons clairs une fois de plus. Nous pouvons vérifier s'il a été installé à l'aide de la commande System CTL, tube systemctl L, et nous le récupérerons pour le post. Nous pouvons voir que le service principal de Postgress 16 fonctionne. Nous pouvons vérifier exactement ce service en tapant le statut CTL du système, Postgress QL à 16 main SQL PostgreSQL. Désolée Et il est opérationnel. Si nous contrôlons CA, soyez clair à nouveau. Si nous voulons nous connecter au Postgress lui-même, nous pouvons utiliser l'utilitaire PSQL C'est quelque chose qui est installé avec le postgress et vous pouvez l'utiliser puis utiliser l' utilisateur Postgress. Nous avons l'erreur. Il indique que l'authentification par les pairs a été enregistrée pour l'utilisateur Postgress. Vous pouvez donc voir que nous devons configurer certains bits et bobs. Arrêtons d'abord cette postgress. Nous n'en avons pas besoin pour le moment. Nous pouvons utiliser cette commande mais changer le statut pour arrêter. Oh, désolée. Changeons également d'utilisateur. Donc pour l'utilisateur root. Nous pouvons donc à nouveau exécuter cette commande. Maintenant, si nous vérifions le statut, nous pouvons voir qu'il est arrêté. Ce que nous devons faire, c'est aller dans le dossier de données de Postgres C'est essentiellement là que les fichiers de base existent si vous écrivez quelque chose dans cette base de données, et ces données seront conservées dans VR, Lip, Postgres QL, 16 Forwardlash MI Si nous exécutons LSLA, tous ces fichiers et dossiers appartiennent à l' utilisateur et au groupe Postgres Comme je l'ai dit, il s'agit de l'endroit où se trouvent les données de cette base de données elle-même. Mais il y a encore un autre emplacement et c'est dans aTC, c'est S at C pos GrasQUL 16 slash main et voici l'emplacement où tous les fichiers de configuration sont conservés Deux dossiers très importants se trouvent ici. Il s'agit de PGHBA et de postgresqel.com, et nous allons jouer avec les deux, afin de savoir à quoi ils servent exactement Eh bien, modifions ce Pg HBA parce que nous devons changer certaines choses ici Donc je fais mpgba.com. Vous pouvez utiliser Control F pour avancer. Et vous pouvez voir quelques entrées ici en bas de page. Réduisons-le légèrement pour qu'ils correspondent à une seule ligne. OK, fermons-le. J'espère que ce formatage est un peu meilleur. Changeons donc certaines choses ici. Je vais appuyer sur I, et ici, dans cette première ligne, je vais vouloir remplacer ce dernier point par une impulsion. Ensuite, entrée pour le domaine Unix également du pair à l'extension et peut-être cette troisième entrée pour l'hôte local Modifions-le également pour faire confiance. OK, nous pouvons maintenant appuyer sur Escape, Scroll sur WQ. Redémarrons le Postgres. Non Si j'essaie de me connecter à cette base de données Postgress localement maintenant, je devrais être autorisé à entrer . Et je suis partante. Je peux faire des choses comme créer une base de données, Marek, disons, et un point-virgule Si j'appuie maintenant sur la barre oblique inverse L, elle devrait s'afficher Encore une fois, le formatage n'est pas parfait, mais vous pouvez voir que la base de données Marek existe. Nous savons donc maintenant que Postgress est opérationnel. Quittons cette barre oblique inverse Q, appuyons à nouveau sur Ctrl B et le set de colonnes W synchronise les broches, cela la désactivera pour nous en fait Parce que ce que je voulais montrer, connectons-nous à nouveau, utilisateur Postgras Si je crée une autre base de données, disons Jack, ce sera uniquement sur cette base secondaire car ces bases de données sont désormais deux serveurs distincts. Ils ne se parlent pas. Backslash L me montre Jack et Marek. Ce n'est pas secondaire. Mais si je fais de même en primaire, nous ne pouvons voir que la base de données Marek n'y a pas de base de données Jack. 5. 5 configurer les serveurs primaire et de secours fusionnés: Ce que nous voulons réaliser , c'est le premier, ce PG primaire, nous voulons l' avoir comme base de données principale. Et lorsque nous écrivons des données dans cette base de données principale, nous voulons qu'elle les diffuse automatiquement vers la base de données secondaire de celle-ci. Ils sont donc tous les deux synchronisés. Tout ce que nous écrivons sur le primaire est automatiquement répliqué sur le secondaire Et s'il arrive quelque chose à cette base de données, nous pouvons simplement la fermer et choisir cette base de données secondaire comme nouvelle base de données principale. Faisons-le alors. Nous pouvons à nouveau arrêter le service postgres sur ces deux serveurs. Et ce que nous voulons faire, c'est modifier à nouveau ce fichier pggba.com Mais cette fois, sur le serveur principal, nous autoriserons les connexions depuis le serveur secondaire. Concentrons-nous donc sur ce serveur principal. Nous devons rejouer avec ce fichier. Gagnons GBA, et ajoutons peut-être en bas, une nouvelle entrée Nous avons besoin d'une entrée indiquant hôte, puis réplication. Ensuite, nous devons spécifier un utilisateur que nous allons utiliser pour ce processus de réplication, et j'utiliserai simplement l'utilisateur Postgres Postgress, puis l'adresse IP de l'autre serveur, où proviendra la demande de réplication, et ce sera notre Vérifions cette adresse IP. Il s'agit de son adresse IP. Donc 172-31-3017 signifie adresse exacte, donc c'est Arch 32. Je veux dire, nous n'en avons pas besoin, mais soyons précis et ensuite insistons. Cela signifie que ce serveur secondaire pourra se connecter au serveur principal pour les besoins de l' application lorsque l'utilisateur publiera du grass, et il ne nécessitera aucune authentification pour le faire. Évasion. Colon WQ. Supprimons à nouveau ce PDBA. C'est notre entrée. Et c'est une entrée que le serveur secondaire pourra utiliser pour se connecter au serveur principal. D'ailleurs, vous n'avez rien à changer sur le secondaire, car le secondaire est le serveur d'où proviendra la demande , et cela sera automatiquement autorisé sur ce serveur secondaire. Il vous suffit d'autoriser les connexions sur le serveur principal. Parfait. Ici, dans le dossier , il y a un autre fichier, s'appelle pogresqel.com Et à ce stade, je veux changer une valeur dans ce pogre.com, et je vais vous dire pourquoi Passons d'abord à cette machine virtuelle posgsqel.com. Contrôle F. Et c'est cette valeur que je souhaite modifier. L'adresse d'écoute est actuellement commentée, ce qui signifie qu'elle utilise l'option par défaut. Vous pouvez même le voir ici, hôte par défaut est local, mais nous voulons le remplacer par astérisque Et ce que c'est, 1 seconde, laissez-moi d'abord le changer, puis je vous dirai ce que c'est. Pour être honnête, l'explication se trouve ici. Il indique quelles adresses IP écouter. Cela signifie que par défaut, le postgress n'écoutera aucune adresse IP ou interface externe avec laquelle ce serveur est configuré Ce que je veux dire par là, c'est peut-être passer à la primaire pendant un moment. Par exemple, il s'agit des adresses IP avec lesquelles le serveur principal est configuré. Il possède une interface de bouclage, 127001, et une interface ENS Five configurée avec cette adresse IP Par défaut, postgres n' écoutera que sur la première interface LO en boucle, et non sur cette interface externe ENS five Cela signifie que ces deux serveurs ne pourraient pas se connecter pour se contacter car ils vont communiquer via cette interface. C'est pourquoi nous devons remplacer cette adresse d'écoute toutes les interfaces possibles de Post Grass. Vous n'êtes pas obligé d'écouter sur toutes les interfaces. Vous pouvez être plus précis et choisir qu'un ou deux, par exemple, mais en général, les gens ont tendance à utiliser comme moi. Il suffit d'utiliser Asterisk Cela signifie que chaque interface configurée sur ce serveur sera écoutée par Pose Grass. Sauvegardons-le. Problème d'évasion WQ Nous devons faire de même pour les primaires. C'est bon. Ce que nous pouvons faire maintenant, c'est redémarrer le service Postgres sur le serveur principal, car le serveur principal est désormais configuré Nous pouvons également vérifier le statut. Nous pouvons voir qu'il est actif et qu'il fonctionne. Au niveau secondaire, si nous ne changeons rien, le postgres devrait être hors service. Et c'est inactif, c'est très bien. Si, pour une raison quelconque, vous l'avez en cours d'exécution, vous devez l'arrêter maintenant car nous allons configurer comme serveur secondaire. Nous allons donc à l'endroit où Postgres conserve ses données, c'est-à-dire dans var, lib, Postgres QL, pour slash 16, pour slash Ce sont toutes les données, et nous voulons toutes les supprimer. Soyez prudent car n'oubliez pas que toutes les données ont disparu à ce stade. Notre base de données, que nous appelons jack ou quelque chose comme ça, disparaîtra, et tout ce qui est enregistré maintenant disparaîtra. Nous allons tout supprimer. D'accord, tu vois plus rien. Ce que nous voulons faire maintenant, c'est exécuter commande appelée PG base backup. Et si vous souhaitez en savoir plus sur la sauvegarde basée sur PG, même directement sur le serveur, vous pouvez exécuter une sauvegarde basée sur PG man. Comme vous pouvez le voir, il est indiqué de faire une sauvegarde de base du cluster PogreQL Et il y a une grille assez longue avec toutes les propriétés, les commentaires et les arguments. Mais je vais juste vous parler de ceux qui nous intéressent. Tout d'abord, vous devez l' exécuter en tant qu'utilisateur Posgress. C'est très important. Donc, si vous êtes quelqu'un d'autre, vous devez vous assurer que vous exécutez sudo U Posgress C'est donc un petit U, en fait. Je veux dire, je n'ai pas besoin de pseudo ici parce que je suis déjà en route, mais tant pis. Ça n'a pas d'importance. L'important est de le lancer en tant qu'utilisateur postgress Ensuite, c'est la commande elle-même, donc c'est PG base backup. Ensuite, c'est H et l' hôte l'hôte distant. Alors, de qui voulez-vous répliquer ? Nous voulons répliquer à partir de notre adresse IP principale, à savoir son adresse IP C'est donc de là que nous voulons répliquer. C'est donc 172-313-1144. Ensuite, nous pouvons faire un petit W en minuscules. Cela signifie que nous pouvons le faire sans fournir d' informations d'identification. Et c'est à vous de décider si vous voulez utiliser vos identifiants ou non, mais je suis paresseux. Nous avons déjà configuré dans PGHBA sur le serveur principal que nous faisions confiance à cet autre serveur Nous pouvons donc faire cette conversation sans mot de passe supplémentaire. Maintenant, nous voulons spécifier l'utilisateur qui sera utilisé à des fins de réplication. Je l'ai utilisé dans PGHBA ici sur le primaire, j'ai utilisé l'utilisateur Postgres Mais vous pouvez utiliser un autre utilisateur ici. Par exemple, vous pourriez avoir un utilisateur dédié comme je ne sais pas, Replicator ou autre. Tu peux l'appeler comme tu veux. Mais quoi que vous utilisiez ici, vous devez le spécifier dans PGHBA sur le serveur principal Mais pour moi, c'était le même utilisateur, et c'était le même utilisateur qu' ici, c'est-à-dire Postgres Créé par défaut lors de l'installation de Post GrasQL. Maintenant, il existe d' autres options comme F. Il s'agit du format de sortie. Nous pouvons choisir le plan, par exemple, mais le plan est de toute façon utilisé par défaut En théorie, vous pouvez l' omettre, mais j'aime inclure au cas où quelqu'un déciderait qu'il ne devrait plus être celui par défaut Ensuite, vous pouvez spécifier la méthode de diffusion ici et c'est X. Le mode que j'utilise toujours est stream. Vous pouvez le télécharger ou le diffuser ici. Il s'agit des informations, de la manière dont vous souhaitez récupérer les fichiers muraux, des fichiers journaux d'écriture anticipée Si vous ne connaissez pas bien Postgress, quoi que vous fassiez sur Postgres, comme nous avons créé la base de données, toutes ces informations sont d'abord écrites dans un fichier appelé write ahead log ou wall en bref comme nous avons créé la base toutes ces informations sont d'abord écrites un fichier appelé write ahead log ou wall Ce n'est qu'alors qu'une fois que ce fichier mural obtient ces informations qu' il est écrit dans la base de données réelle. Cela permet de rendre la base de données encore plus résiliente. Le fait est que lorsque vous avez une très grande base de données à répliquer, ce processus de sauvegarde de la base PG, comme nous le faisons actuellement, peut prendre des heures, des heures, voire des jours N'oubliez pas que le serveur principal fonctionne toujours et continue probablement à recevoir de nouvelles informations, et que ces informations sont écrites dans ces fichiers Wall, et nous choisissons ici si nous voulons diffuser tous ces nouveaux Wallfiles et nous choisissons ici si nous voulons diffuser tous ces nouveaux Wallfiles sur ce serveur de sauvegarde dès leur création, ou si nous avons choisi la méthode fetch ici, alors ces wallfles ne seront récupérés fin du processus, pas en temps réel. La méthode de diffusion crée un canal séparé qui écoute temps réel si de nouveaux fichiers muraux sont créés sur le serveur principal, et si des fichiers muraux ont été créés entre-temps sur le serveur principal, ils n' attendront pas la fin du processus de sauvegarde de base PG. Il récupérera ces fichiers muraux immédiatement, nous les récupérons du fichier principal et les enregistrons sur le secondaire en tant que processus indépendant Ensuite, nous avons R, R, qui indique à la postgress de créer un fichier de configuration de restauration et fichier de signal de veille afin que le serveur sache qu'une fois la postgress lancée, ce serveur se rendra compte qu'il est un serveur de secours et qu'il n'est pas censé écrire quoi Il est uniquement censé continuer à répliquer les données du serveur principal, il n'est donc pas censé écrire quoi que ce soit lui-même. Vous ne devriez pas être en mesure de créer ou modifier des données sur ce serveur, et c'est exactement ce que nous voulons à ce stade. Ce n'est censé être qu' écoute secondaire par rapport au primaire. La prochaine chose à faire est de choisir S, et je vais l'appeler machine à sous Mrek ou quelque chose comme ça, et composer C. Ce que c'est, eh bien, ces deux arguments vont de pair C dit de créer un emplacement et S est le nom de l'emplacement, et ils l'ont appelé emplacement Mrec Combinés, ils créent ce que l'on appelle un slot de réplication. Et ce n'est pas obligatoire. Cela signifie essentiellement que tous les fichiers muraux situés sur le serveur principal attendront que le fichier secondaire soit confirmé. Oui, j'ai tous les fichiers muraux, nous allons le confirmer pour revenir au fichier principal et ce qu'alors que le fichier principal se débarrassera de tous les fichiers muraux. Cela peut en fait poser certains problèmes car si votre périphérique secondaire est en panne, le slot de réplication est écrit sur le principal, ce qui signifie que le principal continuera à accumuler wallfiles et que vous risquez de remplir votre volume, mais cela présente également de grands avantages Eh bien, laissons les choses telles quelles parce que nous avons juste besoin d' un argument de plus, c' est D D. C'est un répertoire dans lequel nous voulons écrire toutes les données que nous récupérons depuis le primaire, où nous voulons les enregistrer sur le secondaire et nous voulons les enregistrer exactement là où nous avons supprimé tous les fichiers précédents et c'est une dislocation C'est bon. Appuyons ensuite sur Entrée. C'est ça. Eh bien, cette base de données est très, très petite sur le serveur principal, donc cela n'a pris que 2 secondes. Mais comme je l'ai dit, ce processus peut également prendre des jours. Maintenant, la dernière chose à faire est de démarrer la base de données Postgres Faisons maintenant une petite expérience. Passons au principal, connectez-vous à la base de données. Nous avons maintenant Marek et Postgresso en deuxième position. C'est mieux. Nous avons donc Marek, Postgress et le modèle zéro, le modèle un Si nous créons maintenant une nouvelle base de données, comme ici, nous avons Mark un, deux, trois, quatre, cinq, nous passons maintenant à la base de données secondaire et nous nous connectons à la base de données. Vous pouvez voir que ces données sont immédiatement répliquées. Cela signifie donc que toutes les données présentes, toutes les nouvelles données sont reflétées sur le serveur de sauvegarde aussi rapidement que le transfert entre les serveurs permet de répliquer ces nouvelles informations Si vous exécutez sur le serveur principal, sélectionnez l'astérisque dans les emplacements de réplication PG, vous verrez que l' emplacement Mex a été créé et qu'il est en fait utilisé pour diffuser ces données immédiatement vers qu'il est en fait utilisé pour diffuser ces données immédiatement vers Essayons cependant d'écrire quelque chose sur le secondaire. Disons que je souhaite créer une nouvelle base de données ici. Vous pouvez voir que vous ne pourrez pas le faire car cette base de données est actuellement en mode lecture seule. Nous simulerons ultérieurement la défaillance du serveur principal et nous élirons ce serveur de secours comme nouveau serveur principal. Mais avant cela, ajoutons une autre fonctionnalité de résilience externe ou appelons-la sauvegarde hors site 6. 6 installer et configurer pgbackrest fusionné: Nous installerons un outil appelé PG Burst, que nous utiliserons pour envoyer les principales sauvegardes. Nous commencerons également à archiver tous les bons fichiers journaux de tête générés, et nous enverrons toutes ces informations à ce stockage hors site Ainsi, même en cas de panne des deux serveurs, principal et secondaire, nous serons toujours en mesure de le reconstruire à l'aide de cette sauvegarde hors site Et comme je l'ai déjà dit, j'utiliserai bucket AWS ST comme emplacement distant, mais vous pouvez également configurer d'autres sites distants. Tout ce que tu as là. PG Brust le soutient très probablement Ce que nous devons faire en premier lieu, c'est créer une connectivité SSH entre les serveurs Be PG BCrst aura besoin d' informations complètes sur les deux serveurs, principaux et secondaires, et il utilise la connexion SSH pour ce faire PG BCRs n' utilise pas d'utilisateur distinct. Il utilisera l'utilisateur Postgres qui a déjà été créé lors de l' installation de Postgres Comme vous pouvez le voir, j'ai quitté TMox pour le moment parce que je n'aime pas la façon dont TMok joue parfois lorsque vous copiez entre eux et nous allons faire du copier-coller De plus, il existe différentes manières de créer et d'échanger des clés SSH, mais jamais En gros, ce dont nous avons besoin en tant qu'utilisateur, après coup. Il en va de même pour S PosGreo, tous les deux. Nous créons simplement des clés SSH et la commande est SSH keygen. Ensuite, il suffit d'entrer, d'entrer, d'entrer. Faites de même sur le primaire. C'est bon. Maintenant, si vous faites du LSI, nous pouvons voir un nouveau dossier SSH, le même que celui créé ici Soyons clairs à nouveau. Si nous y allons, nous pouvons voir une paire de clés. Il s'agit d'une clé privée et d'une clé publique. En gros, nous devons copier ce qu'il contient dans un fichier appelé clés autorisées sur ce serveur et vice versa. Nous allons donc recopier cette clé publique sur ce serveur, afin qu'ils se fassent confiance. Nous sommes donc dans le point en tant que site. Nous touchons les touches autorisées. C'est le fichier dont nous avons besoin, ou nous pouvons également créer une machine virtuelle, car nous devons ajouter une clé publique à partir d' ici. Il s'agit de la clé publique. Je vais le copier et le placer là. Maintenant, sur ce serveur, nous copions à partir d'ici. C'est tout ce dont nous avons besoin, vraiment. Maintenant, quelle est à nouveau l'adresse IP ? C'est 17 23131144. C'est bon. Vous pouvez voir maintenant qu'il est écrit PG primary. Nous sommes passés du serveur secondaire au serveur principal. Donc, si je pars, nous reviendrons au secondaire maintenant. Mais essayons l' inverse. Encore une fois, quelle est cette adresse ? C'est celui-ci. Essayons donc les deux côtés. SSH 17, deux, 313017. Oh. OK, secondaire. Nous passons donc du primaire au secondaire en SSH. Nous pouvons donc sortir. Nous sommes de retour à la primaire. Cela fonctionne. C'est très bien Nous devons maintenant installer PG Brust. Et la commande est d' installer PG Brust. Je veux dire, partons. Je veux dire, nous devons en fait être root ou sudo Oui Faisons-le ici en attendant. C'est ça. Si nous allons maintenant à l'emplacement de l'ITC , eh bien, vous pouvez voir qu'il existe un fichier appelé PG Burst. C'est donc le nouveau fichier, le propriétaire est Postgres et pareil ici 1 seconde. Qu'est-ce qui se passe ? Euh je faisais quelque chose de stupide. Mais tant pis. Ce que je veux dire, c'est le fichier qui nous intéresse et nous devons le modifier intéresse et nous devons le modifier car il s' agit essentiellement la configuration principale de PG Bcrsttol Si nous coupons ce fichier, nous verrons qu'il existe une configuration de base, mais il ne s'agit que d'un modèle à modifier. Cette configuration ne fonctionnera pas pour vous telle qu'elle est actuellement. Donc, si vous allez sur le site officiel de PG Bakast, comme j'ai le guide de l'utilisateur, et qu'il y a plein d'informations, je vais sauter cette partie. Je veux que tu le saches. C'est vraiment bien écrit et cela parle du cryptage de Wallfils Mais ce qui m'intéresse, c'est le support des magasins d'objets compatibles avec ST. Mais vous pouvez trouver ici Azure. Vous pouvez utiliser le protocole SFTP. Vous pouvez essentiellement utiliser le stockage dans n'importe quel emplacement distant de votre choix. Mais j'ai choisi le godet ST à cette fin. Passons donc à AWS. Est-ce que j'ai des seaux ST sur ce compte ? Oh, il y en a une. Je ne sais même pas ce que c'est. Qu'à cela ne tienne, nous allons peut-être créer un nouveau compartiment. Appelons ça comme PG Burst. Four d'automne, quelque chose comme ça. Très bien, il suffit de créer un bucket. Oh. Ah. Pas de soulignement, mais tiret OK. C'est mieux Mais si vous utilisez le bucket ST comme solution de sauvegarde, l'emplacement , la région AWS, deux pays de l'UE, sont également importants l'emplacement , la région AWS . Nous avons également besoin de cet EUS 2. Nous devons nous en souvenir. Revenons-en aux serveurs. Et peu importe ce qui se trouve ici, cela ne nous intéresse pas car vous pouvez le voir pour différentes versions de pages J'ai le compiq prêt pour nous, alors laissez-moi simplement le coller et je vais rapidement passer en revue de quoi il s'agit Permettez-moi de choisir à nouveau les adresses IP. Et maintenant, il ne reste plus qu'un backrest MPG. DN et D, nous supprimons simplement tout ce qui est primaire, peut-être laissez-moi le laisser tel quel ou passer au secondaire. Fais de même. Mais les règles seront légèrement différentes pour le secondaire et pour le primaire Alors ceci ou peut-être faisons-le au primaire. Il s'agira du nom du dossier dans notre compartiment ST. C'est ainsi que PG Brust enverra ces données à Tree. Maintien complet, cela signifie qu'il conservera deux sauvegardes complètes dans l'arborescence S et qu'il se débarrassera automatiquement de la plus ancienne une fois qu'il en aura reçu une nouvelle. Le bucket que nous avons créé était que PG Brust ou Tomven était le point de terminaison C'est le point le plus important. Vous devez vous rappeler où vous avez créé votre bucket ST, car vous devez utiliser ces informations ici. Ensuite, nous avons juste quelques informations, nous voulons les compresser. Il est toujours préférable de compresser car cela consommera moins bande passante et moins d' espace sur le plateau. Voici les informations, sauvegarde en veille. C'est facultatif, mais en gros, nous exécutons la commande, vous le verrez bientôt. Nous exécutons la commande sur le serveur principal, mais la sauvegarde sera en fait effectuée par le serveur secondaire. Cela est utile car votre serveur principal est généralement le plus occupé. Il est donc préférable de transférer une partie du travail en Il s'agit de l'utilisateur que nous voulons spécifier. Il s'agit de l'adresse IP du secondaire sur le secondaire, il existe une adresse IP du principal. Vous pouvez voir la différence entre l'hôte PG 2, PG 2 étant l'hôte secondaire et le PG 1 hôte, nous avons pointé du doigt le principal. Ils doivent être capables de communiquer entre eux en utilisant cette connexion SSH et l'emplacement sur chaque serveur où le répertoire de données existe réellement, mais c'est le même sur les deux C'est pour l'archivage mural, que nous voulons également compresser ces données. C'est bon. Sauvegardons-le alors. Et là aussi, il y a une chose, nous devons également modifier le fichier postgresquel.com Passons à EC postgrascule 16 main postgresqle.com. Nous descendons jusqu'à cette section, archivage. Nous voulons décommenter le mode archive. Le mode archivage sera activé. C'est parce que l'archivage mural signifie des journaux à l'avance. Il s'agit de l'information selon laquelle tout ce qui est écrit sur le serveur également être conservé dans nos archives, et Postgres a besoin de savoir quelle commande est réellement utilisée pour archiver ces Wallfiles Vous pouvez voir ci-dessous la commande d'archivage. Vous pouvez également trouver ces informations dans les instructions du PG Brest. Mais en gros, la strophe de PG Brest est égale à la mienne, pourcentage de push des archives P. Eh bien, je veux dire, si la strophe est égale à main, cela dépend de vous car nous allons créer quelque chose appelé strophe, et nous l'appellerons Mais si vous appelez votre strophe différemment, vous devrez en tenir compte dans cette configuration Cette strophe n'a pas encore été créée, donc je sais que cela peut prêter à confusion Et personne P, c'est le chemin du fichier vers l'archive. Ceci est déterminé par le PGBCR lui-même. C'est un peu comme un paramètre pour ne pas répéter informations déjà présentes dans pgbcrs.com D'accord, mais nous devons faire de même au secondaire. Maintenant, nous pouvons les sauver tous les deux. Redémarrons également le Postgres après toutes ces modifications Voyons le statut. J'ai presque oublié, c'est très important parce que nous devons nous assurer que je ne me souviens pas si je change le rôle de messagerie instantanée. Nous devons nous assurer que notre instance ou notre serveur, par exemple, est réellement capable d'écrire dans le bucket ST. C'est le principal et j'ai oublié d'ajouter une liste de messagerie instantanée. OK. J'ai un rôle, on l'appelle rôle, le serveur est capable de se connecter à un bucket arborescent, et c'est très important car c'est ce dont nous avons besoin, car c'est là qu' il va envoyer les sauvegardes. OK. C'est mieux Bien. C'est parfait. Nous devrions maintenant être en mesure de créer cette strophe. C'est la principale chose que PG Brest utilise à des fins de sauvegarde. Il synchronise simplement toutes les informations dont il dispose pour les deux serveurs J'ai besoin que l'utilisateur soit habillé, et la commande est PG Brest. Stophe. Et puis c'est ce que j'ai dit. Nous allons l'appeler main. Dans toute la documentation de PG Brest, on dit toujours main, mais vous pouvez l'appeler comme vous voulez, puis créer la strophe Peut-être que j'ajouterai également un niveau de journalisation ici. Nous verrons sur la console ce qui se passe en arrière-plan. Appuyons sur Entrée. Comme vous pouvez le constater, il lit les informations du bucket ST. Je peux voir que le dossier du ST sera appelé cluster 1 et nous pouvons le voir terminé avec succès, et cela n'a pris que 3 secondes. 7. 7 prendre une sauvegarde complète avec pgbackrest fusionné: Si on passe à un seau à arbre maintenant. Utilisez celui-ci, nous pouvons voir maintenant un nouveau dossier créé appelé cluster 1. Et si vous cliquez dessus , nous pouvons voir deux autres dossiers, Archive, qui sera utilisé pour archivage mural, les journaux directs, et la sauvegarde, qui sera utilisée pour les sauvegardes postgress complètes Cependant, veuillez noter la sauvegarde complète n'est pas effectuée automatiquement. C'est à vous de décider quand c'est pris, et c'est ce que nous allons faire. moment, jetons un coup d'œil à l'intérieur de main, et nous avons ces deux fichiers, mais ils font 370 octets. Ce n'est pas la sauvegarde. Alors revenons en arrière. Passons aux serveurs. Et maintenant, pour prendre la sauvegarde, la commande est PG Brest. Da da stanza est égal à min. Encore une fois, vous devez toujours spécifier la strophe que vous souhaitez utiliser Réglons le niveau du journal sur console et détaillons peut-être des informations détaillées, puis tapez = sauvegarde complète. Je pense que c'est sans tiret. abord, vous devez toujours effectuer une sauvegarde complète, car PG Bress peut également effectuer sauvegardes incrémentielles et d'autres types de sauvegarde, mais vous avez d'abord besoin de la sauvegarde complète car nous n'en avons pas actuellement Donc, si nous savons appuyer sur Entrée, une sauvegarde complète est effectuée et envoyée au bucket ST. bon, c'est bien. Ce que nous pouvons faire maintenant, c'est taper PG Brust Info et vous obtenez les informations suivantes : Quelle est la taille de sauvegarde de la base de données C'est la taille dans Strib. Désolé, non. Ce sont les vraies données présentes sur le serveur, et la taille de la sauvegarde est en fait beaucoup plus petite parce que nous les compressons, vous vous souvenez ? Et cela concerne les fichiers muraux, juste avant les fichiers journaux. Chaque sauvegarde contiendra des fichiers muraux liés à cette sauvegarde. Ensuite, lorsque PG Brest supprime cette sauvegarde, si, par exemple, vous envoyez une troisième sauvegarde et qu' elle n'est censée conserver que deux sauvegardes, il supprimera également automatiquement les fichiers muraux correspondants. Cela permet de garder tout beau et propre pour nous et nous n' avons pas à nous en soucier. Revenons-en aux seaux. Maintenant, les sauvegardes sont principales et nous pouvons voir plus de fichiers et nous pouvons voir un nouveau dossier. Si vous accédez à ce dossier, vous pouvez voir ce bundle. Il s'agit des informations réelles et de certaines données PG, et tout est compressé exactement comme nous l'avons configuré. C'est essentiellement tout pour la configuration. Nous avons deux serveurs. Le primaire envoie toutes les données au secondaire, et en ce qui concerne le PG Brest, nous pouvons simplement exécuter tâches Cron ou comme vous le souhaitez. Vous pouvez créer une tâche cron qui exécutera cette commande et effectuera la sauvegarde, exemple, une fois par jour ou une fois par semaine Peut-être que le dimanche, c'est à vous de décider. Mais il y a une autre commande que je voulais montrer. Le PG Brest fait face à un échec majeur. Cela vous montrera les informations sur la strophe elle-même, et la vie est belle Nous pouvons effectuer une autre sauvegarde si nous voulons une sauvegarde complète, disons, envoyons-en une autre. Donc, si je lance les informations de PG Brest maintenant, nous pouvons voir que nous avons même deux sauvegardes dans le ST dans le cloud. 8. 8 restaurer les données à partir d'une sauvegarde: Commençons alors à casser les choses. C'est à cela que sert la résilience. Nous devrions être en mesure de nous remettre de différents scénarios. Faisons peut-être un gros gâchis en supprimant physiquement l'intégralité du serveur Postgres principal en cours d'exécution Passons simplement à AWS to the EC two. Mettons simplement fin à cette exécution de PG primary. l'état de l'instance. Faisons des ravages. La connexion devrait déjà être interrompue, comme nous pouvons le voir, proximité de l'hôte distant, mais nous avons encore une connexion secondaire, il est en fait très facile de s'en remettre. Comme notre serveur secondaire dispose de toutes les informations dont nous avons besoin, nous n'avons qu'à supprimer ce comportement en lecture seule. N'oubliez pas qu'il ne peut rien écrire. Il ne sait que lire. Il faut ensuite le promouvoir du secondaire au primaire et c'est super facile. Il vous suffit de vous connecter au postgraph et de lancer Select PG Remote C'est en fait un soulignement et des crochets à la fin parce que c'est une fonction Appuyez sur Entrée, c'est tout. Cela dit que c'est vrai. Désormais, je peux écrire sur ce serveur. Voyons voir. Vous devez Mark et Mark 123, quatre, cinq. Comme vous pouvez le constater, nous pouvons maintenant y écrire correctement. Donc, ce que vous devez faire, simplement pointer votre DNS vers l'adresse IP de ce serveur maintenant et vous pouvez continuer comme si de rien n'était. Vous devrez évidemment créer un nouveau serveur de secours et créer une réplication cette fois-ci. À partir de ce serveur, c'est notre nouveau serveur principal maintenant, mais c'est quelque chose que vous pourrez faire plus tard. Du point de vue du client, tous les services sont désormais opérationnels. Je veux dire, une fois que vous avez pointé le DNS vers ce serveur. C'est très bien. Mais peut-être allons-y encore plus loin, oui. Que se passe-t-il en cas de panne du serveur secondaire ? Peut-être que pouvons-nous y faire ? Supposons que quelqu'un ait effacé toutes nos données ou qu'elles aient été corrompues. Oui, faisons-le. Arrêtons le Postgress Passons au dossier de données principal de la base de données. Oui. Tous ces fichiers sont Postgres lui-même, des fichiers de données, alors supprimons-les. Toutes nos données ont maintenant disparu. Vous pouvez voir que c'est un dossier vide. pour récupérer de Tree, Mais pour récupérer de Tree, fermons ceci. Ce serveur n'est plus là. Est-il résilié ? Avant de récupérer depuis l'arborescence, ouvrons le fichier pgbares.com Actuellement, nous avons des informations sur un autre serveur, mais ce serveur a disparu. Nous devons traiter notre serveur, celui-ci, comme le serveur principal maintenant. Débarrassons-nous donc de toute phrase qui parle de PG 2. Et écris à ce condamné. Encore une fois, en tant qu'utilisateur de Postgress, vous pouvez également exécuter à partir de n'importe quel utilisateur possédant les pseudo privilèges, et c'est PG Encore une fois, Stanza Stanza est à moi, restaurez et comme vous pouvez le constater, récupérant déjà les fichiers un arbre parce que cela ne contient pas beaucoup de données, cela s'est terminé avec succès en 5 secondes seulement Qu'est-ce que cela signifie ? Cela signifie que si je fais LL maintenant. Tu vois ma stupide erreur ? Partout dans le covinc, j'avais du gazon 15, pas du Pogres Techniquement, nous pourrions récupérer cela en pointant vers un autre dossier. Mais pour le faire correctement, clarifions-le. Maintenant, laissez-moi faire une dernière chose. CD, quelque part ici ? Oui. Nous en avons maintenant 15 et 16. Supprimons d'abord l'intégralité de ce dossier 15. Nous n'en avons pas besoin. Et maintenant, modifions notre conviction de PG Brust. Cela devrait être 16 dès le début. Exécutons à nouveau cette commande, restaurons encore 5 secondes environ. Mais nous pouvons voir maintenant qu'au moins il va écrire plus loin. Génial. Maintenant, nous pouvons recommencer le Pogress Et j'espère que c'est bon. Il est en cours d'exécution, mais connectons-nous. Voyons ce qu'il y a dedans. Le dossier en cochon fonctionne comme prévu, comme on peut le voir. C'est tout pour aujourd'hui. J'espère qu' il vous a plu et merci d'avoir regardé.