PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Optimisation » Serveur Rsyslog » 25/04/2014 10:34:33

Je ne pense pas que cela soit que la volumétrie qui ai impacter sur la durée de la requete à ce point. actuellement je suis à 46M de logs pour 60M hier (apres-midi) (16h)
ce qui est certains c'est que l'analyse y est pour beaucoup, les requêtes simples (1filtre) sont beaucoup plus rapides, le problème c'est que quand je dis beaucoup plus rapide c'est -30s
ce qui n'est toujours pas suffisant pour l'utilisation qu'on souhaitent en faire.


j'avais commencer à spliter les données car je pensais que ce que j'aurais gagner en performance ne serrait pas suffisant  (20/30% de gain)
Et l'avantage c'est que cela me permet en même temps de trier mes données.


Je vais me renseigner sur l'autovacuum, en tous cas merci pour ton aide.
Bonne journée

#2 Re : Optimisation » Serveur Rsyslog » 25/04/2014 09:16:32

rsyslog=> ALTER TABLE systemevents ALTER fromhost SET STATISTICS 1000;
ALTER TABLE
rsyslog=> ANALYZE systemevents;
ANALYZE
rsyslog=> EXPLAIN ANALYZE SELECT * FROM systemevents WHERE fromhost = 'XXXX' ORDER BY id desc LIMIT 20 ;
                                                                      QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------------------------------------
 Limit  (cost=26482.21..26482.26 rows=20 width=952) (actual time=8417.810..8417.831 rows=20 loops=1)
   ->  Sort  (cost=26482.21..26499.58 rows=6949 width=952) (actual time=8417.806..8417.813 rows=20 loops=1)
         Sort Key: id
         Sort Method:  top-N heapsort  Memory: 30kB
         ->  Index Scan using nomequipement on systemevents  (cost=0.00..26297.30 rows=6949 width=952) (actual time=0.184..8412.708 rows=2686 loops=1)
               Index Cond: ((fromhost)::text = 'XXXX'::text)
 Total runtime: 8419.195 ms
(7 rows)

Les résultat sont bien plus intéressant, une requêtes sur cette base est beaucoup plus rapide


maintenant une question de fonctionnalité à quel moment la commande ANALYSE est-elle lancé automatiquement ? si elle est lancé.
Même question pour le VACUUM, est-ce qu'il faut le lancer manuellement ou elle se lance automatiquement de temps en temps ?.


Dans tous les cas Merci beaucoup pour tous les debug.
Il semblerais que les requêtes soient beaucoup plus rapide, après je sais pas si c'est le changement du temps d'analyse des stats pour en améliorer l'effet (si j'ai bien compris) ou du au faite que j'ai grandement réduit la base (40% en moins).
Surement que les deux on du jouer.


Merci encore
Cordialement
Dragondark De Lonlindil

#3 Re : Optimisation » Serveur Rsyslog » 24/04/2014 14:11:47

rsyslog=> EXPLAIN ANALYZE SELECT * FROM systemevents WHERE fromhost = 'XXXX' ORDER BY id desc LIMIT 20 ;
                                                                              QUERY PLAN                                                                      
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Limit  (cost=0.00..26274.76 rows=20 width=957) (actual time=182283.090..238288.456 rows=20 loops=1)
   ->  Index Scan Backward using systemevents_pkey on systemevents  (cost=0.00..85295739.77 rows=64926 width=957) (actual time=182283.086..238288.407 rows=20 loops=1)
         Filter: ((fromhost)::text = 'XXXX'::text)
 Total runtime: 238294.565 ms
(4 rows)

rsyslog=> SELECT count(*) FROM  systemevents WHERE fromhost = 'XXXX';
 count
-------
  2750
(1 row)

rsyslog=>

je viens de retest voir si j'avais pas fait une erreur mais non c'est bien le calcule qu'il fait.


si c'est bien ca que tu regardais.
une idée pour lui faire recalculer ces valeurs ?

#4 Re : Optimisation » Serveur Rsyslog » 23/04/2014 09:58:19

Bonjour,

alors le premier résultat me liste une partie des équipements, en peu de temps

rsyslog=> SELECT * FROM pg_stats WHERE tablename='systemevents' and attname='fromhost';
 schemaname |  tablename   | attname  | null_frac | avg_width | n_distinct | most_common_vals  |                                                                                          most_common_freqs                                                                                          |  histogram_bounds  | correlation
------------+--------------+----------+-----------+-----------+------------+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-------------
 public     | systemevents | fromhost |         0 |        12 |        217 | {liste 21 eqt)    | {0.188233,0.175833,0.1531,0.0981667,0.0623,0.0125,0.0121,0.0111667,0.0110667,0.0106333,0.0105667,0.00946667,0.00826667,0.00823333,0.00773333,0.00723333,0.0068,0.0064,0.00603333,0.00603333,0.0059} | {liste 100 eqt)    |    0.307883

pour l'equipement, (il apparait pas dans la liste des équipements qui se trouvais dans la requete précédente

rsyslog=> SELECT count(*) FROM systemevents WHERE fromhost='XXXX';
 count
-------
  2838
(1 row)

je dois être à peu prés vers les 80M d'enregistrement (ça stagne car je limite à 3mois d'enregistrement)
Et environ 600 équipements




'-'

rsyslog-> \d+ systemevents
ERROR:  column "reltriggers" does not exist at character 41
LINE 1: SELECT relhasindex, relkind, relchecks, reltriggers, relhasr...

#5 Re : Optimisation » Serveur Rsyslog » 22/04/2014 15:54:14

Ma configuration actuellement :

# cat /evnt_log/postgresDB/postgresql.conf | grep ^[a-zA-Z0-9]
listen_addresses = '*'
max_connections = 10                    # (change requires restart)
shared_buffers = 1536MB                 # min 128kB
work_mem = 256MB                        # min 64kB
maintenance_work_mem = 512MB            # min 1MB
wal_buffers = 12MB                      # min 32kB
checkpoint_segments = 16                # in logfile segments, min 1, 16MB each
checkpoint_completion_target = 0.8      # checkpoint target duration, 0.0 - 1.0
effective_cache_size = 4GB
logging_collector = on                  # Enable capturing of stderr and csvlog
log_directory = 'pg_log'                # directory where log files are written,
log_filename = 'postgresql-%a.log'      # log file name pattern,
log_truncate_on_rotation = on           # If on, an existing log file of the
log_rotation_age = 1d                   # Automatic rotation of logfiles will
log_rotation_size = 0                   # Automatic rotation of logfiles will
datestyle = 'iso, mdy'
lc_messages = 'en_US.UTF-8'                     # locale for system error message
lc_monetary = 'en_US.UTF-8'                     # locale for monetary formatting
lc_numeric = 'en_US.UTF-8'                      # locale for number formatting
lc_time = 'en_US.UTF-8'                         # locale for time formatting
default_text_search_config = 'pg_catalog.english'

>Pour une des requêtes qui sont très très longue;

rsyslog=> EXPLAIN ANALYZE SELECT * FROM systemevents WHERE fromhost = 'XXXX' ORDER BY id desc LIMIT 20 ;
                                                                              QUERY PLAN

--------------------------------------------------------------------------------------------------------------------------------------------------------------
---------
 Limit  (cost=0.00..26158.94 rows=20 width=957) (actual time=129134.836..131515.164 rows=20 loops=1)
   ->  Index Scan Backward using systemevents_pkey on systemevents  (cost=0.00..94773822.13 rows=72460 width=957) (actual time=129134.833..131515.142 rows=20
loops=1)
         Filter: ((fromhost)::text = 'XXXX'::text)
 Total runtime: 131515.293 ms
(4 rows)

rsyslog=>

Je suis entrain de coder pour faire un split des données dans plusieurs tables voir si cela arrangerais les choses.
en attendant d'avoir d'autres solutions.


à noté que si l'équipement et le nombre de ligne demandé sont dans les dernières la requete est très rapide mais ceux qui envoient beaucoup de log sont rarement ceux qui nous intéresse ^^

#6 Re : Optimisation » Serveur Rsyslog » 17/04/2014 09:36:07

Bon j'ai essayer de faire sans la Pkid voir ce que cela donnais, mais cela ne m'arrange pas sauf dans les cas ou j'ai besoin d'information directement sur le host
car un simple :

SELECT receivedat,message FROM systemevents order by id desc LIMIT 25;

dure 15ans alors qu'avant ne durais qu'une seconde hmm
faut que je trouve une autre solution


actuellement j'utilise une  RedHat RHEL 6.2 x86_64
est-ce qu'une version plus récente que 8.4 existe ? d'après les liens de téléchargement directe j'en ai pas vue mais c'est peut être moi qui n'ai pas bien regardé hmm
http://www.postgresql.org/download/linux/redhat/


je ne sais plus vraiment quoi regarder maintenant :x

ma dernière solution serrait de diviser en plusieurs tables

#7 Re : Optimisation » Serveur Rsyslog » 15/04/2014 09:52:04

C'est le genre de raisons ou cela me soule les processus entreprise ><"
où les versions date d'il y a 5 ans.


L'idée est bien;

rsyslog=> EXPLAIN SELECT * FROM systemevents WHERE fromhost = 'XXXX' ORDER BY id desc LIMIT 10;
                                          QUERY PLAN
-----------------------------------------------------------------------------------------------
 Limit  (cost=255199.89..255199.92 rows=10 width=957)
   ->  Sort  (cost=255199.89..255376.89 rows=70797 width=957)
         Sort Key: id
         ->  Bitmap Heap Scan on systemevents  (cost=1680.96..253670.00 rows=70797 width=957)
               Recheck Cond: ((fromhost)::text = 'XXXX'::text)
               ->  Bitmap Index Scan on nomequipement  (cost=0.00..1663.26 rows=70797 width=0)
                     Index Cond: ((fromhost)::text = 'XXXX'::text)

Bon par contre j'ai merder ^^',
Tu avais une erreur dans le mot CONSTRAINT, mais j'avais pas prévu qu'il m’arrête toute la procédure, donc quand je l'ai corrigé, le rollback n'était plus d’actualité smile
est-ce que je ne peux pas la laisser supprimé? quel intérêt elle à dans mon environnement ? (je ne suis pas sur de saisir complément l’intérêt des index)


rsyslog=> ALTER TABLE systemevents ADD PRIMARY KEY (id);
NOTICE:  ALTER TABLE / ADD PRIMARY KEY will create implicit index "systemevents_pkey" for table "systemevents"
ALTER TABLE

j'ai augmenter le work_mem a 256M et le max connexion à 10

rsyslog=> EXPLAIN SELECT * FROM systemevents WHERE fromhost = 'XXXX' ORDER BY id desc LIMIT 10;
                                                    QUERY PLAN
------------------------------------------------------------------------------------------------------------------
 Limit  (cost=0.00..13071.17 rows=10 width=957)
   ->  Index Scan Backward using systemevents_pkey on systemevents  (cost=0.00..93162177.33 rows=71273 width=957)
         Filter: ((fromhost)::text = 'XXXX'::text)
(3 rows)

rsyslog=>

j'ai tester une requête sans le pkid, et elle était beaucoup plus rapide. la c'est revenu comme avant hmm


Je te remercie pour l'aide que tu m'apportes

#8 Re : Optimisation » Serveur Rsyslog » 14/04/2014 17:12:12

Il semblerait que cela vienne du ORDER BY id

rsyslog=> EXPLAIN SELECT * FROM systemevents WHERE fromhost = 'XXXX' LIMIT 10;
                                            QUERY PLAN
---------------------------------------------------------------------------------------------------
 Limit  (cost=0.00..36.24 rows=10 width=957)
   ->  Index Scan using nomequipement on systemevents  (cost=0.00..256534.19 rows=70797 width=957)
         Index Cond: ((fromhost)::text = 'XXXX'::text)
(3 rows)

rsyslog=>

Cela ne peux pas utiliser deux indexes ?

sur une recherche plus compliqué ça semble fonctionner

rsyslog=>
EXPLAIN SELECT * FROM systemevents WHERE fromhost = 'XXXX' AND devicereportedtime < '2014-03-01' AND devicereportedtime > '2014-04-01' ORDER BY id desc LIMIT 10;
                                                                                                            QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Limit  (cost=11074.79..11074.81 rows=10 width=957)
   ->  Sort  (cost=11074.79..11075.67 rows=354 width=957)
         Sort Key: id
         ->  Bitmap Heap Scan on systemevents  (cost=9655.47..11067.14 rows=354 width=957)
               Recheck Cond: (((fromhost)::text = 'XXXX'::text) AND (devicereportedtime < '2014-03-01 00:00:00'::timestamp without time zone) AND (devicereportedtime > '2014-04-01 00:00:00'::timestamp without time zone))
               ->  BitmapAnd  (cost=9655.47..9655.47 rows=354 width=0)
                     ->  Bitmap Index Scan on nomequipement  (cost=0.00..1655.19 rows=70797 width=0)
                           Index Cond: ((fromhost)::text = 'XXXX'::text)
                     ->  Bitmap Index Scan on timereporting  (cost=0.00..7999.86 rows=380724 width=0)
                           Index Cond: ((devicereportedtime < '2014-03-01 00:00:00'::timestamp without time zone) AND (devicereportedtime > '2014-04-01 00:00:00'::timestamp without time zone))
(10 rows)

rsyslog=>

#9 Re : Optimisation » Serveur Rsyslog » 14/04/2014 16:48:40

Merci pour les indications


j'ai lancé l'analyze systemevents

rsyslog=> analyze systemevents;
ANALYZE
rsyslog=> EXPLAIN SELECT * FROM systemevents WHERE fromhost = 'XXXX' ORDER BY id desc LIMIT 10;
                                                    QUERY PLAN
------------------------------------------------------------------------------------------------------------------
 Limit  (cost=0.00..13199.83 rows=10 width=957)
   ->  Index Scan Backward using systemevents_pkey on systemevents  (cost=0.00..93450812.85 rows=70797 width=957)
         Filter: ((fromhost)::text = 'XXXX'::text)
(3 rows)

rsyslog=>

Pourtant l'index existe : (j'aime bien les commandes compliqué qui vont vite big_smile)

rsyslog=> select
rsyslog->     t.relname as table_name,
rsyslog->     i.relname as index_name,
rsyslog->     a.attname as column_name
rsyslog-> from
rsyslog->     pg_class t,
rsyslog->     pg_class i,
rsyslog->     pg_index ix,
rsyslog->     pg_attribute a
rsyslog-> where
rsyslog->     t.oid = ix.indrelid
rsyslog->     and i.oid = ix.indexrelid
rsyslog->     and a.attrelid = t.oid
rsyslog->     and a.attnum = ANY(ix.indkey)
rsyslog->     and t.relkind = 'r'
rsyslog->     and t.relname like 'systemevents'
rsyslog-> order by
rsyslog->     i.relname;
  table_name  |    index_name     |    column_name
--------------+-------------------+--------------------
 systemevents | nomequipement     | fromhost
 systemevents | systemevents_pkey | id
 systemevents | timereporting     | devicereportedtime

Bon par contre je pense que le devicereportedtime ne sert a rien car j'ai que 8à20log/s sur 80M d'entrée ca fait pas pas beaucoup d’économie (me dire si je me trompe)


La plus part des requêtes seront

SELECT * FROM systemevents WHERE ORDER BY id desc LIMIT 25;

SELECT * FROM systemevents WHERE fromhost like 'XXXX%' ORDER BY id desc LIMIT 25;

SELECT * FROM systemevents WHERE fromhost = 'XXXX' AND devicereportedtime <'XXXX-XX-XX'  AND devicereportedtime >'XXXX-XX-XX' ORDER BY id desc LIMIT 25;

SELECT * FROM systemevents WHERE fromhost = 'XXXX' AND facility <> 10 ORDER BY id desc LIMIT 25;

La plus part du temps un host est indiqué entièrement ou presque

#10 Re : Optimisation » Serveur Rsyslog » 14/04/2014 15:29:32

je vais corriger l'index car ça peux varier


pour la requête :

rsyslog=> EXPLAIN SELECT * FROM systemevents WHERE fromhost = 'XXXX' ORDER BY id desc LIMIT 10;
                                                    QUERY PLAN
------------------------------------------------------------------------------------------------------------------
 Limit  (cost=0.00..11974.83 rows=10 width=957)
   ->  Index Scan Backward using systemevents_pkey on systemevents  (cost=0.00..99273730.89 rows=82902 width=957)
         Filter: ((fromhost)::text = 'XXXX'::text)
(3 rows)

rsyslog=>

Cela permet de dire quoi ?


est-ce que VACUUM FULL est intéressant pour gagner en temps ? ou ça me permettra uniquement de gagner de l'espace disque ?

#11 Re : Optimisation » Serveur Rsyslog » 14/04/2014 14:24:46

il n'y a normalement que 250/300 équipements différents, donc cela devrais pas gener, mais même sans %; j’attends encore le résultat de la commande que j'ai passé tout a l'heure hmm

dès que je peux (j’attends la fin de l'autre requête je passe celle la :
par contre dois-je supprimer l'ancienne ou cela la remplace

CREATE INDEX CONCURRENTLY NomEquipement ON systemevents(fromhost varchar_pattern_ops);

#12 Re : Optimisation » Serveur Rsyslog » 14/04/2014 13:51:57

je n'ai pas le détail des requêtes que le logiciel utilise c'est pourquoi je fait mes test personnel :


je viens de rajouter un index sur le nom de l’équipement, après 3h d'attente de la réussite de la requête

CREATE INDEX CONCURRENTLY NomEquipement ON systemevents(fromhost);

je test :

SELECT * FROM systemevents WHERE fromhost like 'XXXX' ORDER BY id desc LIMIT 10;

mais j’attends encore le résultat hmm

je vais augmenter ces paramètres

#13 Re : Optimisation » Serveur Rsyslog » 14/04/2014 09:41:14

Bonjour,

Non malheureusement ce n'est pas que cette requête.
ni qui me pose des soucis de performance ni que j'effectue.


si j'effectue une requête précise :

SELECT * FROM systemevents WHERE id = 50000000;

La requête est très rapide


par contre une requête de type

SELECT * FROM systemevents WHERE receivedat < '2014-03-14' AND receivedat > '2014-02-14' LIMIT 10;

met autant de temps que de calculer le nombre de ligne si ce n'est plus


j'ai actuellement dans le 80M de ligne sur la table.
il n'y a pas de requête imbriqué.


ce qui m'embête en soit : c'est que pendant l’exécution des requête ni le CPU ni la RAM n'est à fond (30% de CPU et 7% de RAM)
donc j'ai l'impression de m'être tromper sur la conf.


Version de postgresql : 8.4.18

Cordialement
Dragondark de Lonlindil


ps : Je vais essayer de jouer avec les index semblerais que j'en ai pas hmm (il me semblais en avoir mis)

#14 Optimisation » Serveur Rsyslog » 11/04/2014 16:29:53

dragondark
Réponses : 28

Bonjour,


J'ai aujourd'hui monté un serveur Rsyslog sur une base de type Postgresql pour permettre la gestion et l'affichage des logs facilement.
Mais j'ai des soucis d'optimisation...
j'ai aujourd'hui un serveur RedHAT de 6G de RAM,


coté consommation cela ne semble pas énorme :
2153 postgres  20   0  962m  32m  31m S  0.0  0.6   0:02.22 postmaster
2174 postgres  20   0  966m   9m 8192 S  2.0  0.2   0:08.83 postmaster
2167 postgres  20   0  962m 7380 6620 S  0.0  0.1   0:00.30 postmaster
2172 postgres  20   0  964m 5600 3872 S  0.0  0.1   1:30.81 postmaster


mais une requête simple : SELECT count(*) FROM systemevents; prend énormément de temps (plus de 3 minutes)


il y a actuellement 75 000 000 lignes.

Configuration postgresql

listen_addresses = '*'
max_connections = 51                    # (change requires restart)
shared_buffers = 756MB                  # min 128kB
work_mem = 30MB                         # min 64kB
maintenance_work_mem = 256MB            # min 1MB
wal_buffers = 12MB                      # min 32kB
checkpoint_segments = 16                # in logfile segments, min 1, 16MB each
checkpoint_completion_target = 0.8      # checkpoint target duration, 0.0 - 1.0
effective_cache_size = 4GB
logging_collector = on                  # Enable capturing of stderr and csvlog
log_directory = 'pg_log'                # directory where log files are written,
log_filename = 'postgresql-%a.log'      # log file name pattern,
log_truncate_on_rotation = on           # If on, an existing log file of the
log_rotation_age = 1d                   # Automatic rotation of logfiles will
log_rotation_size = 0                   # Automatic rotation of logfiles will
datestyle = 'iso, mdy'
lc_messages = 'en_US.UTF-8'                     # locale for system error message
lc_monetary = 'en_US.UTF-8'                     # locale for monetary formatting
lc_numeric = 'en_US.UTF-8'                      # locale for number formatting
lc_time = 'en_US.UTF-8'                         # locale for time formatting
default_text_search_config = 'pg_catalog.english'

Si vous avez des idées d'optimisation, c'est un serveur dedier, donc qu'il me consomme 95% de ma RAM ne me gene pas, tant qu'il me permet de travailler rapidement.


Si vous avez des questions n’hésitez pas!


Cordialement
Dragondark De Lonlindil

#15 Re : Installation » probleme avec l'initdb » 08/04/2009 16:23:09

merci smile

pour ce qu'il en ai j'ai trouver la solution j'ai redefini mon /etc/init.d/postgresql-8.3.7 pour le mettre a jour en fonction de mes option de configure
puis je l'ai remplacer par /etc/init.d/postgresql

comme cela apache appel la fonction
/etc/init.d/postgres
et donc execute postgresql 8.3.7 en bonne version, et correctement

j'ai tout relance et ca marche a nikel wink
merci
bonne soirée

#16 Re : Installation » probleme avec l'initdb » 08/04/2009 12:01:28

alors en faite je vien de trouver mon probleme qui m'en donne un autre
j'ai reinstaller la version de postgres avec ces option

/configure --prefix=/usr --includedir=/usr/include/postgresql/pgsql --datadir=/home/postgres/data --sysconfdir=/etc/postgresql --mandir=/usr/share/man --host=x86_64-pc-linux-gnu --with-docdir=/usr/share/doc/postgresql-8.3.7/ --libdir=/usr/lib/ --enable-depend --enable-nls=all --with-perl --with-python --with-tcl --with-openssl --with-libxml --with-libxslt --enable-thread-safety

mais apparament

--datadir=/home/postgres/data

ne crée pas le dossier pour la base de donnée mais le dossier de configuration, ce qui m'implique un certain soucis etant donnée que maintenant mon dossier de configuration se trouve a la place de ma base de données

je l'ai donc reinstaller respectant cette option et creant ma nouvelle base dans data2/
et j'ai lancer le serveur qui se lance parfaitement

donc je pense qu'il me suffis de faire :

gmake uninstall
gmake clean
gmake cleandir

/configure --prefix=/usr --includedir=/usr/include/postgresql/pgsql --datadir=/usr/pgsql/data --sysconfdir=/etc/postgresql --mandir=/usr/share/man --host=x86_64-pc-linux-gnu --with-docdir=/usr/share/doc/postgresql-8.3.7/ --libdir=/usr/lib/ --enable-depend --enable-nls=all --with-perl --with-python --with-tcl --with-openssl --with-libxml --with-libxslt --enable-thread-safety

gmake
gmake install

initdb -D /home/postgres/data

non?



pour expliquer, j'ai du installer la version 8.0.15 car etant sous gentoo, c'est la seul version disponible
et dessus j'ai mis en place la version 8.3.7 manuelement

pour pouvoir enfaite renplacer toute les fichier executable du 8.0.15, et garder une hierarchie de gentoo
(j'ai repris l'ebuild du 8.0.15 pour l'install du 8.3.7)

c'est histoire de faire quelque chose de propres.
vis a vis des mis a jour et ... je ne sais plus quoi :s




par contre cette facon de faire engage que j'ai un soucis apres avec la coordination entre apache et ma base de donnée
car il fais appel a l'ancienne version,
je sais pas si vous avez une solution vis a vis de cette situation
car j'ai aussi remarquer que pour lancer le serveur il faut faire une ligne de commande et qu'on pouvais pas par /etc/init.d/postgres-8.3.7 start (qui apparament mene a rien)
faire un scritp faisant lancer le serveur/ le stoper et tout, c'est relativement simple (en y metant aussi deux ligne de commande et une syntaxe pour prendre en compte les argument)
mais cela fais que je n'aurais plus de fichier de lancement habituel.

donc si vous avez une alternative en tete je suis preneur

cordialement
dragondark

#17 Installation » probleme avec l'initdb » 08/04/2009 10:48:39

dragondark
Réponses : 4

j'ai eu cette erreur

could not change directory to "/root"
initdb: file "/home/postgres/data/postgres.bki" does not exist
This might mean you have a corrupted installation or identified
the wrong directory with the invocation option -L

donc j'ai pris le dossier data que j'avais dans

/postgresql/postgresql-8.3.7/src/test/regress/tmp_check/install/home/postgres/data

sauf que maintenant j'ai une erreur du type  :

The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale C.
The default text search configuration will be set to "english".

creating directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 10
selecting default shared_buffers/max_fsm_pages ... 400kB/20000
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... FATAL:  invalid value for parameter "timezone_abbreviations": "Default"
child process exited with exit code 1
initdb: removing data directory "/usr/local/pgsql/data"

donc je en sais aps si vous avez une solution a me proposer :c

cordialement
dragondark

ps : tout vien de cette erreur
* Starting PostgreSQL ...
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 8.0, which is not compatible with this version 8.3.7.

#18 Re : Installation » [Gentoo] probleme dans l'emerge /installation » 07/04/2009 15:44:12

Probleme resolu


apparament mon pc, n'arrivais plus a compiller ce qui provoquais ces erreur.

surment une mauvaise manip de ma part, resolut grace a

http://www.gentoo.org/doc/fr/gcc-upgrading.xml

j'ai mis a jour gcc, qui a du recevoir un changement ou je ne sais pas, ce qui provoquai l'erreur

#19 Installation » [Gentoo] probleme dans l'emerge /installation » 07/04/2009 14:18:22

dragondark
Réponses : 1

Bonjour

j'ai installer postgres par le passé (version 8.0.15, via l'emerge que propose gentoo), puis désinstaler pour installer dessus  la version 8.3.7 manuelement.
elles fonctionnais parfaitement mais j'avais un probleme de librairie, donc par soucis de propreter, j'ai tout desinstaller.

puis j'ai voulu reinstaller la version 8.0.15 pour la mettre a jours avec la version 8.3.7. le probleme c'est que j'ai du cafouiller quelque part etant donné que maintenant quand je lance

#emerge postgresql

je tombe sur une erreur

 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lpq
collect2: ld returned 1 exit status
make[4]: *** [libecpg.so.5.0] Error 1
make[4]: Leaving directory `/var/tmp/portage/dev-db/postgresql-8.0.15/work/postgresql-8.0.15/src/interfaces/ecpg/ecpglib'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/var/tmp/portage/dev-db/postgresql-8.0.15/work/postgresql-8.0.15/src/interfaces/ecpg'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/tmp/portage/dev-db/postgresql-8.0.15/work/postgresql-8.0.15/src/interfaces'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/var/tmp/portage/dev-db/postgresql-8.0.15/work/postgresql-8.0.15/src'
make: *** [all] Error 2
*
 * ERROR: dev-db/postgresql-8.0.15 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 2931:  Called die
 * The specific snippet of code:
 *       emake -j1 LD="$(tc-getLD) $(get_abi_LDFLAGS)" || die "main emake failed";
 *  The die message:
 *   main emake failed
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/dev-db/postgresql-8.0.15/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-db/postgresql-8.0.15/temp/environment'.
 *

>>> Failed to emerge dev-db/postgresql-8.0.15, Log file:

>>>  '/var/tmp/portage/dev-db/postgresql-8.0.15/temp/build.log'

 * Messages for package dev-db/postgresql-8.0.15:

 *
 * ERROR: dev-db/postgresql-8.0.15 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 2931:  Called die
 * The specific snippet of code:
 *       emake -j1 LD="$(tc-getLD) $(get_abi_LDFLAGS)" || die "main emake failed";
 *  The die message:
 *   main emake failed
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/dev-db/postgresql-8.0.15/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-db/postgresql-8.0.15/temp/environment'.

d'apres ce que je peux voir

 *       emake -j1 LD="$(tc-getLD) $(get_abi_LDFLAGS)" || die "main emake failed";
 *  The die message:
 *   main emake failed

ca viendrais de la commande emake qu'il n'arrive pas a executer
donc j'ai regarde mon PATH :



# ld.so.conf autogenerated by env-update; make all changes to
# contents of /etc/env.d directory
/usr/local/lib
//usr/lib32/opengl/xorg-x11/lib
//usr/lib64/opengl/xorg-x11/lib
/lib
/usr/lib
/lib64
/usr/lib64
/usr/local/lib64
/lib32
/usr/lib32
/usr/local/lib32
/usr/x86_64-pc-linux-gnu/lib
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32
/usr/lib64/nspr
/usr/lib64/nss
/usr/lib64/qca1
/usr/lib/qt4
/usr/lib64/qt4
/usr/lib32/qt4
/usr/kde/3.5/lib
/usr/kde/3.5/lib64
/usr/kde/3.5/lib32
/usr/qt/3/lib
/usr/qt/3/lib64
/usr/qt/3/lib32

on peux voir qu'il est senser en faire partis :


je regarde ma variable PATH pres un

#env-update

#echo $PATH


/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin

et la on peux remarquer qu'il en manque. et je ne sais pas pourquoi :s
en esperant que cela vienne de là

c'est pourquoi je demande si vous pouvez me dire si cela viens bien de la,
et si vous avez une solution a me proposer

cordialement
dragondark

Pied de page des forums

Propulsé par FluxBB