{"id":226,"date":"2026-02-12T15:11:58","date_gmt":"2026-02-12T15:11:58","guid":{"rendered":"https:\/\/www.hokutotokisama.fr\/?p=226"},"modified":"2026-02-12T15:12:26","modified_gmt":"2026-02-12T15:12:26","slug":"mise-en-place-dune-replication-synchrone-entre-deux-bases-postgresql","status":"publish","type":"post","link":"https:\/\/www.hokutotokisama.fr\/?p=226","title":{"rendered":"Mise en place d&rsquo;une r\u00e9plication synchrone entre deux bases PostgreSQL"},"content":{"rendered":"\n<p>Nous allons mettre en place une r\u00e9plication synchrone entre deux bases PostgreSQL<\/p>\n\n\n\n<p>On part du principe que <a href=\"https:\/\/www.hokutotokisama.fr\/?p=176\">PostgreSQL<\/a> est install\u00e9 sur les serveurs<\/p>\n\n\n\n<p>Dans notre exemple il y aura deux serveurs<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>192.168.1.114 qui sera le Master<\/li>\n\n\n\n<li>192.168.1.184 qui sera le Slave<\/li>\n<\/ul>\n\n\n\n<p>Dans notre exemple PostgreSQL est en version 17.7<\/p>\n\n\n\n<p class=\"has-x-large-font-size\"><strong>1 &#8211; Pr\u00e9parer le master<\/strong><\/p>\n\n\n\n<p>Toutes les commandes seront \u00e0 \u00e9crire sur le serveur master<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00c9diter le fichier \/etc\/postgresql\/17\/main\/postgresql.conf<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/postgresql\/17\/main\/postgresql.conf<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modifier \/ cr\u00e9er \/ de-commenter 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\nmax_replication_slots = 10\nwal_keep_size = 1GB\n\n# Pour la r\u00e9plication synchrone :\nsynchronous_standby_names = 'node184'\nsynchronous_commit = on<\/code><\/pre>\n\n\n\n<p>(node184 sera le nom du standby que l&rsquo;on param\u00e9trera plus tard)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00c9diter le fichier \/etc\/postgresql\/17\/main\/pg_hba.conf<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/postgresql\/17\/main\/pg_hba.conf<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rajouter sous host all all 0.0.0.0\/0 md5<\/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 aux tabulations)<\/p>\n\n\n\n<p>(192.168.1.184 est l&rsquo;ip du slave selon la configuration)<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ffe7b5fe0&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ffe7b5fe0\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"589\" 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-12-151721-1024x589.png\" alt=\"\" class=\"wp-image-227\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-151721-1024x589.png 1024w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-151721-300x173.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-151721-768x442.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-151721.png 1040w\" 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>(replicator est le nom de l&rsquo;utilisateur qui fera la r\u00e9plication et que l&rsquo;on va cr\u00e9er \u00e0 l\u2019\u00e9tape suivante)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cr\u00e9er l&rsquo;utilisateur qui va servir pour la r\u00e9plication<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo -i -u postgres\npsql\nCREATE ROLE replicator WITH REPLICATION LOGIN ENCRYPTED PASSWORD 'motdepasse';<\/code><\/pre>\n\n\n\n<p>(Penser \u00e0 mettre un mot de passe fort pour l&rsquo;utilisateur)<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ffe7b62fb&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ffe7b62fb\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"176\" 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-12-152337-1024x176.png\" alt=\"\" class=\"wp-image-228\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-152337-1024x176.png 1024w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-152337-300x52.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-152337-768x132.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-152337.png 1109w\" 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>Relancer PostgreSQL pour mettre \u00e0 jour le nouveau param\u00e9trage<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl reload postgresql<\/code><\/pre>\n\n\n\n<p class=\"has-x-large-font-size\"><strong>2 &#8211; Pr\u00e9parer le Slave<\/strong><\/p>\n\n\n\n<p>Toutes les commandes seront \u00e0 \u00e9crire sur le serveur slave<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On stoppe PostgreSQL<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl stop postgresql<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>on supprime les donn\u00e9es sur le serveur<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>rm -rf \/var\/lib\/postgresql\/17\/main\/*<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>on r\u00e9cup\u00e9re la base du Master<\/li>\n<\/ul>\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 -R<\/code><\/pre>\n\n\n\n<p>(Attention le 192.168.1.114 est l&rsquo;ip du master \u00e0 adapter selon la configuration)<\/p>\n\n\n\n<p>-R pour cr\u00e9er automatiquement le fichier standby.signal et postgresql.auto.conf (ces fichiers servent \u00e0 dire au serveur qu&rsquo;il n&rsquo;est plus un serveur en lecture-\u00e9criture mais que l\u2019\u00e9criture se fait exclusivement \u00e0 partir du master)<\/p>\n\n\n\n<p>-Xs pour copier les WAL necessaires<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ffe7b66f8&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ffe7b66f8\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"75\" 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-12-153052-1024x75.png\" alt=\"\" class=\"wp-image-229\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-153052-1024x75.png 1024w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-153052-300x22.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-153052-768x56.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-153052.png 1338w\" 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>On va v\u00e9rifier le fichier \/var\/lib\/postgresql\/17\/main\/postgresql.auto.conf<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/var\/lib\/postgresql\/17\/main\/postgresql.auto.conf<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>on devrait avoir une ligne comme \u00e7a dedans<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>primary_conninfo = 'user=replicator password=motdepasse channel_binding=prefer host=192.168.1.114 port=5432 sslmode=prefer sslnegotiation=postgres sslcompression=0 sslcertmode=allow sslsni=1 ssl_min_protocol_version=TLSv1.2 gssencmode=prefer krbsrvname=postgres gssdelegation=0 target_session_attrs=any load_balance_hosts=disable'<\/code><\/pre>\n\n\n\n<p>(Bien v\u00e9rifier le mot de passe et l&rsquo;ip du master)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modifier la ligne pour ajouter application_name=node184 apr\u00e9s port =5432<\/li>\n<\/ul>\n\n\n\n<p>(node184 correspond au node que l&rsquo;on a mis \u00e0 l\u2019\u00e9tape 1 dans le fichier \/etc\/postgresql\/17\/main\/postgresql.conf \u00e0 la ligne synchronous_standby_names =)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Changer les droits du fichier standby.signal pour les donner \u00e0 postgres<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chown postgres:postgres \/var\/lib\/postgresql\/17\/main\/standby.signal\nchmod 600 \/var\/lib\/postgresql\/17\/main\/standby.signal<\/code><\/pre>\n\n\n\n<p>3 &#8211; Configuration de la r\u00e9plication sur le Slave<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00c9diter le fichier \/etc\/postgresql\/17\/main\/postgresql.conf<\/li>\n\n\n\n<li>Ajouter \/ modifier \/ de-commenter<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>hot_standby = on<\/code><\/pre>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ffe7b6b0a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ffe7b6b0a\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"589\" 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-12-154249-1024x589.png\" alt=\"\" class=\"wp-image-230\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-154249-1024x589.png 1024w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-154249-300x173.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-154249-768x442.png 768w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-154249.png 1040w\" 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>Mettre au propre les droits du slave<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chown -R postgres:postgres \/var\/lib\/postgresql\/17\/main\nchmod 700 \/var\/lib\/postgresql\/17\/main<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>D\u00e9marrer postgresql<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl start postgresql<\/code><\/pre>\n\n\n\n<p class=\"has-x-large-font-size\"><strong>4 &#8211; V\u00e9rification<\/strong><\/p>\n\n\n\n<p><strong>4.1 Sur le master<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo -i -u postgres\npsql\nSELECT application_name, state, sync_state FROM pg_stat_replication;<\/code><\/pre>\n\n\n\n<p>On devrait avoir <\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ffe7b6e17&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ffe7b6e17\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"711\" height=\"151\" 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-12-160054.png\" alt=\"\" class=\"wp-image-231\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-160054.png 711w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-160054-300x64.png 300w\" sizes=\"auto, (max-width: 711px) 100vw, 711px\" \/><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<pre class=\"wp-block-code\"><code>SHOW synchronous_standby_names;\nSHOW synchronous_commit;<\/code><\/pre>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ffe7b6ffc&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ffe7b6ffc\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"548\" height=\"274\" 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-12-160254.png\" alt=\"\" class=\"wp-image-232\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-160254.png 548w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-160254-300x150.png 300w\" sizes=\"auto, (max-width: 548px) 100vw, 548px\" \/><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>Tout est bien sur on<\/p>\n\n\n\n<p><strong>4.2 Sur <a href=\"https:\/\/www.hokutotokisama.fr\/?p=190\">PgAdmin<\/a> (si install\u00e9)<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On ins\u00e8re une donn\u00e9es sur le master<\/li>\n<\/ul>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ffe7b7252&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ffe7b7252\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"968\" height=\"182\" 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-12-160614.png\" alt=\"\" class=\"wp-image-233\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-160614.png 968w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-160614-300x56.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-160614-768x144.png 768w\" sizes=\"auto, (max-width: 968px) 100vw, 968px\" \/><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>La donn\u00e9e est bien envoy\u00e9es sur le slave<\/li>\n<\/ul>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a05ffe7b7453&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a05ffe7b7453\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"712\" 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-12-160727.png\" alt=\"\" class=\"wp-image-234\" srcset=\"https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-160727.png 974w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-160727-300x219.png 300w, https:\/\/www.hokutotokisama.fr\/wp-content\/uploads\/2026\/02\/Capture-decran-2026-02-12-160727-768x561.png 768w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><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","protected":false},"excerpt":{"rendered":"<p>Nous allons mettre en place une r\u00e9plication synchrone entre deux bases PostgreSQL On part du principe que PostgreSQL est install\u00e9 sur les serveurs Dans notre exemple il y aura deux serveurs Dans notre exemple PostgreSQL est en version 17.7 1 &#8211; Pr\u00e9parer le master Toutes les commandes seront \u00e0 \u00e9crire sur le serveur master (node184 [&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],"tags":[28,26,23],"class_list":["post-226","post","type-post","status-publish","format-standard","hentry","category-base-de-donnees","tag-postgresql","tag-replication","tag-sql"],"_links":{"self":[{"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=\/wp\/v2\/posts\/226","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=226"}],"version-history":[{"count":1,"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=\/wp\/v2\/posts\/226\/revisions"}],"predecessor-version":[{"id":235,"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=\/wp\/v2\/posts\/226\/revisions\/235"}],"wp:attachment":[{"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hokutotokisama.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}