Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Merci rjuju pour la doc. Je vais la lire attentivement.
Je souhaiterai m'y plonger plus longtemps et sérieusement mais je vais manquer de temps sur le projet. Il ne me reste qu'un peu plus d'une semaine.
Merci de votre aide
Rebonjour rjuju,
Je ne comprends pas très bien comment fonctionne patroni auriez vous une petit tuto bien expliqué pour que je saisisse les détails ?
Merci
merci pour votre réponse rjuju. Je pense que je vais abandonner cette solution car elle est compliquée a mettre en place pour un simple débutant.
Merci de votre message rjuju,
Je vais regarder patroni. Avant de me lancer dans quelques choses d'un peu hasardeux, auriez vous quelques conseils/recommandations ou des tuto a me partager ?
Merci
Bonjour à tous,
Premièrement je tiens à m'excuser car je suis encore débutant avec postgresql et je n'ai pas toutes les billes.
J'ai actuellement une base A (maitre) et une base B et C (esclaves) qui tournent avec pg10 sur des serveurs ubuntu.
J'ai mis en place une réplication A-->B-->C
Ce que je souhaite c'est faire une gestion du failover. Si A tombe en panne B doit prendre la relève.
Mais le souci c'est que je ne sais pas du tout comment m'y prendre. J'ai vu plusieurs outils comme repmgr ou barman mais je n'arrive pas très bien a les utiliser.
Pourriez vous m'apporter votre aide dans cette problématique ?
Merci
Vincent
Bonjour à vous tous !
Je suis très heureux de vous retrouver.
Je me permets de contacter la communauté car j'ai un souci un peu spécial (je trouve). Je recherche a faire une réplication de données master master en synchrone en un serveur A et un serveur B
J'ai donc créé une publication sur une table des deux cotés puis une subscription faisant référence au coté inverse:
pubA--> subB
subA <-- pubB
je pense que je ne suis pas très loin mais voila dans les logs apparement j'ai un souci avec des duplications de clé primaire.
Voila comment j'ai créé la table p_assets sur les deux serveurs :
--- uuid ---
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"
SCHEMA public
VERSION "1.1";
--- ./uuid ---
---------------------------------------------------------------------------------------------------------------------------------------------------
--- p_assets ---
CREATE TABLE public.p_assets (
assetguid UUID NOT NULL DEFAULT public.uuid_generate_v4(),
folderguid UUID,
assetname text,
assetalt text,
assetcreatedat timestamp without time zone,
assetmodifiedat timestamp without time zone,
assetistrashbin boolean,
assetisvisible boolean,
assettype text,
assetformat text,
assetsize integer,
asseturlorignal text,
asseturlsmall text,
asseturlmedium text,
asseturlbig text,
assettags jsonb,
assetcollection jsonb,
assetworkroom jsonb,
assetowner text,
assetteam text,
hashcode text
);
ALTER TABLE public.p_assets OWNER TO postgres;
ALTER TABLE ONLY public.p_assets
ADD CONSTRAINT pk__p_assets PRIMARY KEY (assetguid);
CREATE INDEX idx_p_assets_assetguid ON public.p_assets USING btree(assetguid);
--- p_assets ---
puis j'ai inséré des valeurs :
INSERT INTO p_assets(assetname) VALUES ('A1');
INSERT INTO p_assets(assetname) VALUES ('B2');
INSERT INTO p_assets(assetname) VALUES ('A3');
INSERT INTO p_assets(assetname) VALUES ('B4');
sur le serveur B apparement pas de souci (niveau logs)
mais sur le serveur A.....un extrait des logs serait plus parlant....
2020-06-11 08:13:34.035 UTC [5510] LOG: logical replication apply worker for subscription "suba" has started
2020-06-11 08:13:34.049 UTC [5510] ERROR: duplicate key value violates unique constraint "pk__p_assets"
2020-06-11 08:13:34.049 UTC [5510] DETAIL: Key (assetguid)=(66c79969-c8bf-493e-99ea-9df057b0dd1a) already exists.
2020-06-11 08:13:34.051 UTC [4407] LOG: worker process: logical replication worker for subscription 16502 (PID 5510) exited with exit code 1
2020-06-11 08:13:39.056 UTC [5511] LOG: logical replication apply worker for subscription "suba" has started
2020-06-11 08:13:39.071 UTC [5511] ERROR: duplicate key value violates unique constraint "pk__p_assets"
2020-06-11 08:13:39.071 UTC [5511] DETAIL: Key (assetguid)=(66c79969-c8bf-493e-99ea-9df057b0dd1a) already exists.
2020-06-11 08:13:39.073 UTC [4407] LOG: worker process: logical replication worker for subscription 16502 (PID 5511) exited with exit code 1
Pouvez vous me dire comment faire en sorte de ne répliquer que le delta (différence) entre la table p_assets du serveur A et B ?
Merci beaucoup de votre aide.
Bonjour Guillaume,
Désolé de ma réponse tardive. Il s'agisait en fait d'un simple problème de droit, rien de plus.
Merci beaucoup de votre aide.
Bonjour à tous !
En tout premier lei je tiens a remercier Guillaume (@gleu) pour son aide dans la réplication logique de données.
Là je me confronte à un souci (très surement le dernier). Un problème de droit. J'ai une configuration master slave. D'après les logs le slave tente bien de se synchroniser avec la master.
Le souci c'est que le role que j'ai créé n'a pas les droits pour copier la table selon les logs.
J'ai effectué quelques grant mais cela n'a pas l'air de faire grand chose.
2020-05-29 09:48:22.725 UTC [20765] replicator@employees ERROR: permission denied for relation employees
Avez vous une indication qui pourra m'aider ? Je précise que je suis débutant mais je suis là pour apprendre
Merci de votre aide
Bonjour @gleu,
Serait-il possible que le système me dise que la publication mypub n'existe pas alors qu'il l'affiche si j'ai créé la publication avant la table cible ?
Merci de votre aide.
Rebonjours,
La commande est select * from pg_publication; sans le S a la fin.
J'obtiens presque le même résultat indiquant que mypub existe bien
merci
Rebonjour,
La requete sql ci dessus ne fonctionne pas. En revanche j'ai la liste des publication sur le master.
J'ai une table/tableau avec name=mypub | owner =postgres | all tables = f | inserts = t | updates = t | deletes= t;
A moins que je me trompe (chose possible) il me semble bien que la publication mypub est là.
Comment puis-je vous partager une capture ?
Merci
rebonjour @gleu
je vous fournir un extrait de mes logs respectivement maitre et esclave.
maitre :
2020-05-28 14:03:14.878 UTC [4559] replicator@employees ERROR: publication "mypub" does not exist
2020-05-28 14:03:14.878 UTC [4559] replicator@employees CONTEXT: slot "mysub", output plugin "pgoutput", in the change callback, associated LSN 0/168F8B0
esclave :CONTEXT: slot "mysub", output plugin "pgoutput", in the change callback, associated LSN 0/168F8B0
2020-05-28 14:04:10.313 UTC [7614] LOG: worker process: logical replication worker for subscription 16389 (PID 7968) exited with exit code 1
2020-05-28 14:04:15.321 UTC [7969] LOG: logical replication apply worker for subscription "mysub" has started
2020-05-28 14:04:15.338 UTC [7969] ERROR: could not receive data from WAL stream: ERROR: publication "mypub" does not exist
CONTEXT: slot "mysub", output plugin "pgoutput", in the change callback, associated LSN 0/168F8B0
2020-05-28 14:04:15.340 UTC [7614] LOG: worker process: logical replication worker for subscription 16389 (PID 7969) exited with exit code 1
2020-05-28 14:04:20.348 UTC [7975] LOG: logical replication apply worker for subscription "mysub" has started
2020-05-28 14:04:20.371 UTC [7975] ERROR: could not receive data from WAL stream: ERROR: publication "mypub" does not exist
CONTEXT: slot "mysub", output plugin "pgoutput", in the change callback, associated LSN 0/168F8B0
2020-05-28 14:04:20.373 UTC [7614] LOG: worker process: logical replication worker for subscription 16389 (PID 7975) exited with exit code 1
Pourtant mypub est bien créée sur le master et mysub est bien créée sur l'escalve. Avez vous un conseil ?
et j'en profite pour vous remercier car vous m'aidez beaucoup.
merci @gleu c'est vrai que c'est la base la doc.
Je vais faire quelques modifications en suivant la doc et je reviens vers vous dès que j'ai fini et testé.
Merci
@gleu souhaitez vous que je vous poste m'aider mon postgresql.conf afin de pouvoir ?
Merci
Merci Guillaume pour cet éclairage.
Je suis encore un débutant avec postgresql mais je souhaite apprendre. J'ai suivi ce tuto https://linuxconfig.org/how-to-create-a … postgresql
Avez vous une recommandation a me faire pour faire une replication logique en synchrone ? Ou un bon tuto a me conseiller ?
Merci
Bonjour Guillaume !
Merci de votre réponse.
voici les 20 dernières lignes de mes logs sur le serveur esclave
2020-05-27 15:26:09.397 UTC [4097] LOG: database system is shut down
2020-05-27 15:26:09.554 UTC [4369] LOG: listening on IPv4 address "127.0.0.1", port 5432
2020-05-27 15:26:09.554 UTC [4369] LOG: listening on IPv4 address "127.0.1.1", port 5432
2020-05-27 15:26:09.554 UTC [4369] LOG: listening on IPv6 address "::1", port 5432
2020-05-27 15:26:09.555 UTC [4369] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2020-05-27 15:26:09.571 UTC [4370] LOG: database system was shut down at 2020-05-27 15:26:09 UTC
2020-05-27 15:26:09.576 UTC [4369] LOG: database system is ready to accept connections
2020-05-27 15:26:10.141 UTC [4377] [unknown]@[unknown] LOG: incomplete startup packet
2020-05-28 09:15:54.400 UTC [4369] LOG: received fast shutdown request
2020-05-28 09:15:54.403 UTC [4369] LOG: aborting any active transactions
2020-05-28 09:15:54.406 UTC [4369] LOG: worker process: logical replication launcher (PID 4376) exited with exit code 1
2020-05-28 09:15:54.411 UTC [4371] LOG: shutting down
2020-05-28 09:15:54.424 UTC [4369] LOG: database system is shut down
2020-05-28 09:15:54.600 UTC [6569] LOG: listening on IPv4 address "127.0.0.1", port 5432
2020-05-28 09:15:54.600 UTC [6569] LOG: listening on IPv4 address "127.0.1.1", port 5432
2020-05-28 09:15:54.600 UTC [6569] LOG: listening on IPv6 address "::1", port 5432
2020-05-28 09:15:54.601 UTC [6569] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2020-05-28 09:15:54.621 UTC [6570] LOG: database system was shut down at 2020-05-28 09:15:54 UTC
2020-05-28 09:15:54.628 UTC [6569] LOG: database system is ready to accept connections
2020-05-28 09:15:55.186 UTC [6577] [unknown]@[unknown] LOG: incomplete startup packet
Sur le serveur maitre je suis obligé d'interrompre l'action car au bout de plusieurs minutes le terminal est toujours bloqué. Donc je fais un ctrl+c pour reprendre la main.
On dirait que le serveur maître envoie les données en stream logique mais que le serveur esclave ne les recoit jamais.
Avez vous un conseils pour m'aider s'il vous plait ?
Merci
Bonjour à tous !
Je me suis tourné vers différentes communautés sur postgresql pour ce souci mais je n'ai malheureusement pas eu de réponse (ou hors sujet).
Je travaille avec postgresql 10 sur deux serveurs ubuntu 18.04 TLS. Je cherche à faire une réplication master-slave en synchrone. J'ai suivi ce tuto https://linuxconfig.org/how-to-create-a … postgresql.
Une fois arrivé au bout j'ai quelques incohérences mais je ne sais pas d'où vient le problème car je ne suis encore qu'un débutant avec postgresql.
Pour faire un résumé quand je fais une insertion dans la base du maître elle est normalement censé être repliqué en synchrone sur le slave. Sauf que là mon terminal se bloque (sur le maître) et au bout de plusieurs minutes je suis obligé de faire un ctrl+c pour reprendre la main ce qui interrompt la procedure. Dans les logs j'ai souvent une erreur FATAL me disant que le protocole n'est pas supporté (surement a cause du ctrl+c) et j'ai 2 numéro séparé d'un point qui apparaissent.
Je suis bien embété car c'est un sujet qu'il faut que je finisse.
Pourriez vous m'apporter de votre aide s'il vous plait ?
Merci
Pages : 1