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é.