Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#51 Re : Site PostgreSQL.fr » Contexte des messages RAISE NOTICE » 13/06/2019 18:44:08
Vous avez rechargé la configuration ?
Et vous parlez bien des messages dans la log ?
#52 Re : Site PostgreSQL.fr » Contexte des messages RAISE NOTICE » 13/06/2019 15:29:05
Je pense que ce que vous cherchez, c'est log_error_verbosity. À positionner à terse pour vous. https://www.postgresql.org/docs/current … gging.html
#53 Re : Général » Lag de réplication et requête longue sur standby » 13/05/2019 15:19:26
Non, c'est un peu plus compliqué que ça. Quand on fait un update sous PostgreSQL, on n'écrase pas l'enregistrement, on en fait une autre version dans la même table. Donc on a les deux versions simultanément, et les ordres SQL choisissent ce qu'ils veulent. Cette seconde version est répliquée, pas de problème. C'est les VACUUM qui posent problème, puisqu'ils veulent supprimer les vieilles versions d'enregistrement, qui ne sont plus nécessaires sur le primaire. Le hot_standby_feedback permet justement aux standby de prévenir le maître des enregistrement dont ils ont encore besoin.
#54 Re : Général » Lag de réplication et requête longue sur standby » 10/05/2019 16:17:19
pg_is_in_recovery va être à true, normal. Par contre, pg_is_wal_replay_paused, c'est savoir si y aurait pas un petit malin qui met la réplication en pause... je le sais, parce que je l'ai déjà fait (pour passer des pg_dump parallélisé sur un standby par exemple
)
Sinon, le replay est toujours plus lent que la génération: sur le serveur primaire, il y a plusieurs processus qui insèrent en même temps dans le WAL. Sur le standby, il y a un seul processus qui rejoue le tout. On peut aussi avoir les disques qui ont du mal à suivre ou d'autres choses. Donc vérifiez que la réplication n'est pas effectivement en pause ou bloquée par quelque chose, et si elle avance, il faut trouver la source de contention... cpu ou disque probablement
#55 Re : Général » Lag de réplication et requête longue sur standby » 10/05/2019 15:51:59
Tant que j'y pense, vérifiez aussi pg_is_wal_replay_paused() sur le standby quand ça se produit… sait on jamais, un développeur retors ![]()
#56 Re : Général » Lag de réplication et requête longue sur standby » 10/05/2019 15:50:57
Etes vous sûr que la réplication est en pause, pas juste très ralentie? Sans connaître votre serveur, il se peut que la sur-consommation de ressources par la requête en écriture ralentisse simplement l'application des journaux... Vous pouvez déjà surveiller pg_last_wal_replay_lsn() sur le standby pour vérifier que c'est en pause et pas très ralenti...
#57 Re : Général » Lag de réplication et requête longue sur standby » 10/05/2019 15:28:20
Ça peut., ça dépend de votre paramétrage:
- est-ce que le standby a hot_standby_feedback activé ? (sinon le primaire va supprimer des enregistrements lors de vacuum qui pourraient encore être nécessaires au standby... et donc le standby va devoir arrêter la réplication le temps que ces requetes se terminent)
- que vaut max_standby_streaming_delay ? c'est le temps maximum que le standby va accepter d'attendre avant de commencer à tuer les requêtes qui bloquent la réapplication des journaux
#58 Re : Général » rétention des Fichier wall aprés l'activation du mode archivage » 18/02/2019 18:49:19
Oui, pgbackrest, barman, pitrery, au moins, gèrent la rétention. Par contre, je ne sais vraiment pas ce qui est disponible et utilisable sous windows.
#59 Re : Général » rétention des Fichier wall aprés l'activation du mode archivage » 18/02/2019 18:27:19
Ok, donc effectivement, c'est la voie à suivre. Et oui, il vous faudra un script de purge des journaux
#60 Re : Général » rétention des Fichier wall aprés l'activation du mode archivage » 18/02/2019 18:07:14
Bonjour,
Oui, il vous faut un script pour gérer ça. C'est d'ailleurs pour ça qu'on utilise habituellement un outil qui gère l'archivage, le backup et la rétention (pgbackrest par exemple, c'est le plus abouti à l'heure actuelle). Aucune idée de ce qui est disponible sous Windows par contre.
D'ailleurs, vous avez activé le mode archivage pour quoi faire ? Avez-vous fait une sauvegarde en mode fichier de la base ?
#61 Re : Général » Trigger Before DELETE : Contrainte sur une autre table » 26/12/2018 19:57:48
Bonjour, quand on crée une contrainte, on peut lui dire ‹on delete cascade›. Je pense que c'est ce que vous cherchez.
#62 Re : Général » Valeur par défaut v1 » 12/11/2018 09:57:04
Bonjour,
C'est à ça que servent les triggers. Il vous faudrait un trigger sur insertion…
Il y a un très bon exemple dans la doc: https://www.postgresql.org/docs/current … igger.html
#63 Re : Général » Fichier recovery.conf et recovery.done » 16/10/2018 08:59:13
le recovery.conf est renommé en recovery.done à la fin de la restauration (donc pour une streaming replication, au moment du promote du serveur)
#64 Re : Général » SELECT dynamique sur les Champs avec INFORMATION_SCHEMA.COLUMNS » 22/08/2018 21:56:08
Vous pouvez commencer avec quelque chose de ce genre, pour expérimenter
CREATE OR REPLACE FUNCTION public.demo_cols()
RETURNS void
LANGUAGE plpgsql
AS $function$
DECLARE
mycols varchar;
myrecord record;
BEGIN
SELECT string_agg(column_name,',') INTO mycols FROM information_schema.columns
WHERE table_name = 'test' AND table_schema='public';
EXECUTE 'SELECT ' || mycols || ' FROM test' LIMIT 1 INTO myrecord;
RAISE NOTICE 'RECORD: %',myrecord;
END
$function$
;#65 Re : Général » initialisation d'un tableau avec des constantes en hexadecimal » 21/08/2018 21:57:21
C'est plus simple, je trouve, avec la syntaxe ARRAY[], dans ce cas là:
ARRAY[X'00000001', X'00000002', X'00000004'];
Sinon vous pouvez initialiser la variable avec une fonction, par exemple:
create or replace function genere_array () returns int[] language plpgsql as
$$
declare i int;
declare ctableau int[]:= array[]::int[];
begin
for i in 0..31 loop
ctableau := ctableau || (1<<i);
end loop;
return ctableau;
end
$$
;#66 Re : Publications » comment connaitre l'avancement d'un update sur une table » 14/08/2018 09:15:42
On peut s'en sortir avec un workaround un peu crado comme https://stackoverflow.com/questions/262 … postgresql
Mais ça impose bien sûr de changer la requête…
Sinon je ne connais pas d'autre moyen avec PG non plus...
#67 Re : Général » integer, bit ou bytea ? » 05/08/2018 19:41:44
On peut facilement s'en sortir avec integer ou bit, vu qu'on a des opérateurs de cast...
Par exemple:
=> select (12::bit(32) & 27::bit(32))::integer;
int4
------
8
(1 row)Integer sera plus compact (ça n'est pas un type de taille variable, donc on ne perd pas de place sur l'entête).
Par contre, c'est probablement pas très très conforme à la première forme normale (atomicité des attributs), même si c'est difficile de l'affirmer sans le schéma...
#68 Re : Général » Petites questions sur VACUUMFULL/autovacuum(to prevent wrap) (9.4) » 10/07/2018 15:46:32
le vacuum full aura un verrou plus élevé, donc de toutes façons, l'autovacuum ne pourra plus travailler. Par contre ça va prendre un certain temps, ce vacuum full…
#69 Re : PL/pgSQL » Analyse sur plusieurs champs » 12/06/2018 09:54:02
Vous n'y arriverez pas en SQL pur, ni avec PLPgSQL, si vous avez un nombre dynamique de colonnes. Ou alors il faudra passer par des manipulations qui vont vous ruiner les perfs je pense.
À mon avis c'est beaucoup plus simple si vous utilisez un des langages de procédures stockées un peu plus dynamiques… plpython ou plperl par exemple. Un exemple en PLPerl:
create language plperlu;
create table test (a int, b varchar, c varchar);
insert into test values (1,'a','b');
create or replace function demo (test) returns void language plperlu as
$$
use Data::Dumper;
my $args=shift;
print elog(Dumper(INFO,$args)) ;
$$
;
select demo(test) from test;
INFO: $VAR1 = {
'a' => '1',
'c' => 'b',
'b' => 'a'
};
demo
------Quelques notes… j'ai utilisé plperlu (untrusted) simplement parce que je voulais utiliser la fonction Dumper, qui permet d'afficher le hash facilement. Ce n'est évidemment pas nécessaire si je veux manipuler les données et enrichir une colonne avec un trigger. Là mon trigger ne fait rien que montrer qu'il a reçu en paramètre l'enregistrement en question… et que mon code se moque totalement du typage de ce paramètre, il s'y adapte dynamiquement.
Bref, il vous faut un langage qui sache recevoir un type dynamique (l'enregistrement) et en analyser la structure au moment de l'exécution. Par exemple, perl avec un hash, python avec un dict...
#70 Re : Site PostgreSQL.fr » Index pour optimiser des requêtes de suppression à partir de dates » 25/05/2018 09:20:01
Il faudrait au minimum la requête et la définition de la table, pour vous aider à trouver ce qui ne va pas...
#71 Re : Général » oracle_Compatible » 19/05/2018 14:55:55
Bonjour. Cette question concerne enterprisedb, qui est un logiciel propriétaire, pas postgresql. Il faut que vous vous adressiez à leur support.
#72 Re : Général » cpu_tuple_cost » 19/05/2018 10:31:07
Oui la valeur reste la même quelle que soit la taille de l'enregistrement. C'est une des nombreuses approximations faites par l'optimiseur :-)
Je ne crois pas qu'il y ait un paramètre équivalent chez Oracle, j'imagine que c'est en dur... Mais j'ai arrêté Oracle depuis plus de dix ans...
J'imagine que cette constante sert surtout à éviter d'avoir des plans qui brassent trop d'enregistrements... Une des choses qui coûtent habituellement très cher, c'est la "déformation" de tuple. Je n'ai pas souvenir d'avoir jamais eu à toucher à ce paramètre...
#73 Re : Général » Erreur pendant un chargement avec pg_restore » 06/04/2018 10:12:50
C'est clairement un problème de RAM. Avec 16Go de RAM, redescendez shared_buffers à 4GB, maintenance_work_mem à 1GB ça devrait passer tout seul. Et oui, c'est l'OOM qui a tué votre processus de restauration
#74 Re : Général » Erreur pendant un chargement avec pg_restore » 05/04/2018 20:52:47
Signal 9... Il a été tué soit par un admin, soit parce que le serveur était à court de mémoire... Ça semble être un Linux, essayez déjà la commande dmesg pour confirmer que vous avez un message d'erreur out of memory ... Si oui, combien de RAM a le serveur, et est ce que vous n'auriez pas restauré avec une option -j à pgrestore?
#75 Re : Général » erreur avec la commande pg_basebackup » 02/04/2018 07:49:32
Bonjour,
Votre archivage ne fonctionne pas. Allez regarder dans la log vous devriez y trouver des messages d'erreur