{"id":207,"date":"2026-02-10T22:04:29","date_gmt":"2026-02-10T22:04:29","guid":{"rendered":"https:\/\/www.hokutotokisama.fr\/?p=207"},"modified":"2026-02-10T22:05:00","modified_gmt":"2026-02-10T22:05:00","slug":"mise-en-place-dune-replication-asynchrone-postgresql","status":"publish","type":"post","link":"https:\/\/www.hokutotokisama.fr\/?p=207","title":{"rendered":"Mise en place d&rsquo;une r\u00e9plication asynchrone PostgreSQL"},"content":{"rendered":"\n<p>Nous allons mettre en place une r\u00e9plication asynchrone entre deux serveurs PostgreSQL<\/p>\n\n\n\n<p class=\"has-x-large-font-size\"><strong>1 &#8211; Pr\u00e9requis<\/strong><\/p>\n\n\n\n<p>Il faut avoir install\u00e9 <a href=\"https:\/\/www.hokutotokisama.fr\/?p=176\">PostgreSQL<\/a> sur les serveurs<\/p>\n\n\n\n<p class=\"has-x-large-font-size\"><strong>2 &#8211; Pr\u00e9ambule<\/strong><\/p>\n\n\n\n<p>Dans notre exemple on va avoir deux serveurs<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Le 192.168.1.114 qui va \u00eatre consid\u00e9r\u00e9 comme le Master. C&rsquo;est lui qui enverra ses donn\u00e9es au Slave<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Le 192.168.1.184 qui va \u00eatre consid\u00e9r\u00e9 comme le Slave. C&rsquo;est lui qui recevra les donn\u00e9es du Master<\/li>\n<\/ul>\n\n\n\n<p class=\"has-x-large-font-size\"><strong>3 &#8211; Pr\u00e9paration du Master<\/strong><\/p>\n\n\n\n<p>Toutes les commandes seront faites sur le Master<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>3.1 &#8211; Cr\u00e9ation de l&rsquo;utilisateur qui fera la r\u00e9plication<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>on se connecte au master<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo -i -u postgres<\/code><\/pre>\n\n\n\n<p>(L&rsquo;utilisateur postgre est cr\u00e9e automatiquement lors de l&rsquo;installation de PostgreSQL. Se reporter \u00e0 l&rsquo;article parlant de l&rsquo;installation de PostgreSQL)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>psql<\/code><\/pre>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ff2303d9d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ff2303d9d\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"667\" height=\"142\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-215809.png\" alt=\"\" class=\"wp-image-208\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-215809.png 667w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-215809-300x64.png 300w\" sizes=\"auto, (max-width: 667px) 100vw, 667px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cr\u00e9er l&rsquo;utilisateur qui fera la r\u00e9plication<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE ROLE replicator WITH REPLICATION LOGIN PASSWORD 'motdepasseutilisateur';<\/code><\/pre>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ff2304078&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ff2304078\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"81\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220002-1024x81.png\" alt=\"\" class=\"wp-image-209\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220002-1024x81.png 1024w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220002-300x24.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220002-768x60.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220002.png 1043w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p><strong>3.2 &#8211; Modification des fichiers PostgreSQL<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modifier le fichier \/etc\/postgresql\/*\/main\/postgresql.conf<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>De-commenter, ajouter ou modifier les lignes suivantes<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>listen_addresses = '*'\nwal_level = replica\nmax_wal_senders = 10\nwal_keep_size = 512MB<\/code><\/pre>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ff2304325&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ff2304325\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"548\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220617-1024x548.png\" alt=\"\" class=\"wp-image-210\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220617-1024x548.png 1024w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220617-300x161.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220617-768x411.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220617.png 1111w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ff23044f1&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ff23044f1\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"438\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220651-1024x438.png\" alt=\"\" class=\"wp-image-211\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220651-1024x438.png 1024w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220651-300x128.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220651-768x329.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220651.png 1463w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>En option mais recommand\u00e9 pour archiver les WAL<\/li>\n\n\n\n<li>De-commenter, ajouter ou modifier les lignes suivantes<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>archive_mode = on\narchive_command = 'cp %p \/var\/lib\/postgresql\/wal_archive\/%f'<\/code><\/pre>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ff2304744&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ff2304744\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"420\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220910-1024x420.png\" alt=\"\" class=\"wp-image-212\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220910-1024x420.png 1024w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220910-300x123.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220910-768x315.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-220910.png 1461w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enregistrer le fichier \/etc\/postgresql\/*\/main\/postgresql.conf<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modifier le fichier \/etc\/postgresql\/*\/main\/pg_hba.conf<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>commenter <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>host    replication     all             127.0.0.1\/32            scram-sha-256\nhost    replication     all             ::1\/128                 scram-sha-256<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ajouter <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>host    replication     replicator     192.168.1.184\/32     md5<\/code><\/pre>\n\n\n\n<p>(Attention, l&rsquo;ip est l&rsquo;ip du Slave, penser \u00e0 la modifier si le Slave n&rsquo;a pas l&rsquo;ip 192.168.1.184)<\/p>\n\n\n\n<p>(Attention aux tabulations)<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ff2304ab2&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ff2304ab2\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"299\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-221342-1024x299.png\" alt=\"\" class=\"wp-image-213\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-221342-1024x299.png 1024w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-221342-300x88.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-221342-768x224.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-221342.png 1116w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sauvegarder le fichier<\/li>\n<\/ul>\n\n\n\n<p><strong>3.3 Red\u00e9marrer le service PostgreSQL<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart postgresql<\/code><\/pre>\n\n\n\n<p class=\"has-x-large-font-size\"><strong>4 &#8211; Pr\u00e9paration du Slave<\/strong><\/p>\n\n\n\n<p>Toutes les commandes seront faites sur le Slave<\/p>\n\n\n\n<p><strong>4.1 Arr\u00eater le service PostgreSQL<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl stop postgresql<\/code><\/pre>\n\n\n\n<p><strong>4.2 Supprimer toutes les donn\u00e9es de l&rsquo;instance (On va r\u00e9cup\u00e9rer les donn\u00e9es du master plus tard)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo rm -rf \/var\/lib\/postgresql\/17\/main\/*<\/code><\/pre>\n\n\n\n<p><strong>4.3 Cloner le master<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pg_basebackup -h 192.168.1.114 -U replicator -D \/var\/lib\/postgresql\/17\/main -Fp -Xs -P<\/code><\/pre>\n\n\n\n<p>(Attention, l&rsquo;ip est l&rsquo;ip du Master, si 192.168.1.114 n&rsquo;est pas l&rsquo;ip du Master il faut bien mettre l&rsquo;ip du Master)<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ff2304e03&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ff2304e03\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"90\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-222012-1024x90.png\" alt=\"\" class=\"wp-image-214\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-222012-1024x90.png 1024w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-222012-300x26.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-222012-768x67.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-222012.png 1265w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>(Le mot de passe de l&rsquo;utilisateur replicator rentr\u00e9 \u00e0 l\u2019\u00e9tape 3.1 est demand\u00e9)<\/p>\n\n\n\n<p class=\"has-x-large-font-size\"><strong>5 &#8211; Activation du mode standby<\/strong><\/p>\n\n\n\n<p>Le mode standby permet de dire au serveur que ce n&rsquo;est pas un serveur normal mais qu&rsquo;il doit se connecter \u00e0 un master pour avoir ses donn\u00e9es<\/p>\n\n\n\n<p><strong>5.1 &#8211; Cr\u00e9er le fichier standby.signal<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo -u postgres touch \/var\/lib\/postgresql\/17\/main\/standby.signal<\/code><\/pre>\n\n\n\n<p><strong>5.2 &#8211; Configurer la connexion au master<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modifier le fichier \/var\/lib\/postgresql\/*\/main\/postgresql.auto.conf<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ajouter <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>primary_conninfo = 'host=192.168.1.114 port=5432 user=replicator password=motdepasseutilisateur'<\/code><\/pre>\n\n\n\n<p>(Attention, l&rsquo;ip est l&rsquo;ip du Master, le mot de passe est le mot de passe rentr\u00e9 \u00e0 l\u2019\u00e9tape 3.1)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enregistrer le fichier<\/li>\n<\/ul>\n\n\n\n<p class=\"has-x-large-font-size\"><strong>6 &#8211; D\u00e9marrer le service PostgreSQL sur le Slave<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start postgresql@17-main<\/code><\/pre>\n\n\n\n<p class=\"has-x-large-font-size\"><strong>7 &#8211; V\u00e9rifications<\/strong><\/p>\n\n\n\n<p>On va faire trois v\u00e9rifications<\/p>\n\n\n\n<p><strong>7.1 &#8211; Sur le master, rentrer en mode sql<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo -i -u postgres\npsql<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00c9crire <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT pid, state, client_addr FROM pg_stat_replication;<\/code><\/pre>\n\n\n\n<p>Le retour dois \u00eatre xxxx streaming ip_du_slave<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ff230530c&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ff230530c\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"821\" height=\"142\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-223929.png\" alt=\"\" class=\"wp-image-215\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-223929.png 821w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-223929-300x52.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-223929-768x133.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>Le Master est bien configur\u00e9<\/p>\n\n\n\n<p><strong>7.2 &#8211; Sur le Slave, rentrer en mode sql<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo -i -u postgres\npsql<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00c9crire <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT pg_is_in_recovery();<\/code><\/pre>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ff23055a6&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ff23055a6\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"470\" height=\"153\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-224222.png\" alt=\"\" class=\"wp-image-216\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-224222.png 470w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-224222-300x98.png 300w\" sizes=\"auto, (max-width: 470px) 100vw, 470px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>T pour true, le slave est bien configur\u00e9<\/li>\n<\/ul>\n\n\n\n<p><strong>7.3 &#8211; Sur PGAdmin (si install\u00e9)<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On cr\u00e9e un enregistrement sur la base Master<\/li>\n<\/ul>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ff2305816&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ff2305816\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"91\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-225805.png\" alt=\"\" class=\"wp-image-217\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-225805.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-225805-300x36.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On v\u00e9rifie sur la base Slave<\/li>\n<\/ul>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ff2305a1e&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ff2305a1e\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"76\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-225918-1024x76.png\" alt=\"\" class=\"wp-image-218\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-225918-1024x76.png 1024w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-225918-300x22.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-225918-768x57.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-225918-1536x113.png 1536w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-10-225918.png 1868w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>Les donn\u00e9es sont bien renvoy\u00e9es sur le Slave<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nous allons mettre en place une r\u00e9plication asynchrone entre deux serveurs PostgreSQL 1 &#8211; Pr\u00e9requis Il faut avoir install\u00e9 PostgreSQL sur les serveurs 2 &#8211; Pr\u00e9ambule Dans notre exemple on va avoir deux serveurs 3 &#8211; Pr\u00e9paration du Master Toutes les commandes seront faites sur le Master 3.1 &#8211; Cr\u00e9ation de l&rsquo;utilisateur qui fera la [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27,3],"tags":[28,26,23],"class_list":["post-207","post","type-post","status-publish","format-standard","hentry","category-base-de-donnees","category-linux","tag-postgresql","tag-replication","tag-sql"],"_links":{"self":[{"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=\/wp\/v2\/posts\/207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=207"}],"version-history":[{"count":1,"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=\/wp\/v2\/posts\/207\/revisions"}],"predecessor-version":[{"id":219,"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=\/wp\/v2\/posts\/207\/revisions\/219"}],"wp:attachment":[{"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}