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 Général » bases de données Modèles » 15/05/2013 11:14:45

hfilliere
Réponses : 1

Bonjour,

D'une manière générale, quels peuvent être les différents cas d'usages des bases de données modèles? (clonage, pré-configuration,etc...)

Merci pour votre réponse.

Hervé

#2 Général » NAGIOS: supervision POstgreSQL » 22/11/2011 12:02:15

hfilliere
Réponses : 1

Bonjour,

Je cherche à recenser les requêtes les plus pertinentes pour superviser les bases PostgreSQL. A cet effet, j'ai détecté quelques requêtes simples mais peu exhaustives.
Avez- vous des suggestions ou des expériences sur des requêtes pertinentes pour NAGIOS.

Merci

#3 Optimisation » impact de Recompilation avec nouveau blocksize et segsize[v8.3 et v9.1 » 22/11/2011 11:41:30

hfilliere
Réponses : 2

Bonjour,

Je souhaiterai connaître les impacts du redimensionnement des paramètres -with-segsize=64 --with-wal-segsize=64 --with-blocksize=16 --with-wal-blocksize=16, à la fois d'une manière générale et pour les petites bases de données.

#4 Re : Migration » [ORA2PG] cas d' erreur etrange: NEED HELP !!! » 10/11/2011 16:03:59

Merci.

J'avais deja anonymisé et donné des faux noms ..

#5 Migration » [ORA2PG] cas d' erreur etrange: NEED HELP !!! » 10/11/2011 14:52:42

hfilliere
Réponses : 5

Bonjour,

A l'utilisation d'ora2Pg, nous obtenons le message suivant:

DBD::Pg::db do failed: ERROR:  relation "depotvalide" does not exist
FATAL: ERROR:  relation "depotvalide" does not exist

Pouvez vous nous aider à détecter le pb ?



La trace en amont à ce message est:

****************************************
Traces produites par ora2pg
****************************************

Trying to connect to database: dbi:Oracle:host=devfntd0.xxx.xxx.xxx;port=1521;sid=MAS
Isolation level: SET TRANSACTION ISOLATION LEVEL READ COMMITTED
Force Oracle to compile schema before code extraction
Retrieving table information...
[1] Scanning ADRESSECORRESPONDANCE ( ESSAIADRESSECORRESPONDANCE TABLE )...
     ...
[2] Scanning CACHETOPOCOM ( ESSAICACHETOPOCOM TABLE )...
       
[4] Scanning CAMPAGNEENCOURS ( ESSAICAMPAGNEENCOURS TABLE )...
       
[5] Scanning CONTEXTEUTILISATEUR ( ESSAICONTEXTEUTILISATEUR TABLE )...
       
[6] Scanning CORRESPCOMTOPAD ( ESSAICORRESPCOMTOPAD TABLE )...
       
[7] Scanning DEFAILLANCE ( ESSAIDEFAILLANCE TABLE )...
       
[8] Scanning DEPOTARECYCLER ( ESSAIDEPOTARECYCLER TABLE )...
       
[9] Scanning DEPOTVALIDE ( ESSAIDEPOTVALIDE TABLE )...
       
[10] Scanning ENUMERATION ( ESSAIENUMERATION TABLE )...
       
[11] Scanning STATISTIQUES ( ESSAISTATISTIQUES TABLE )...
       
[12] Scanning SUPPORTJURIDIQUE ( ESSAISUPPORTJURIDIQUE TABLE )...
       
[13] Scanning TELEPHONESTRT ( ESSAITELEPHONESTRT TABLE )...
       
[14] Scanning TIERS ( ESSAITIERS TABLE )...
       
[15] Scanning TIERSAMBRESUPPRIMES ( ESSAITIERSAMBRESUPPRIMES TABLE )...
       
[16] Scanning TYPEDECLARATION ( ESSAITYPEDECLARATION TABLE )...
       
Retrieving table information...
[1] Scanning ADRESSECORRESPONDANCE ( ESSAIADRESSECORRESPONDANCE TABLE )...
Warning duplicate table ADRESSECORRESPONDANCE, SYNONYME ? Skipped.
[1] Scanning CACHETOPOCOM ( ESSAICACHETOPOCOM TABLE )...
Warning duplicate table CACHETOPOCOM, SYNONYME ? Skipped.
[1] Scanning CACHETOPODEP ( ESSAICACHETOPODEP TABLE )...
Warning duplicate table CACHETOPODEP, SYNONYME ? Skipped.
[1] Scanning CAMPAGNEENCOURS ( ESSAICAMPAGNEENCOURS TABLE )...
Warning duplicate table CAMPAGNEENCOURS, SYNONYME ? Skipped.
[1] Scanning CONTEXTEUTILISATEUR ( ESSAICONTEXTEUTILISATEUR TABLE )...
Warning duplicate table CONTEXTEUTILISATEUR, SYNONYME ? Skipped.
[1] Scanning CORRESPCOMTOPAD ( ESSAICORRESPCOMTOPAD TABLE )...
Warning duplicate table CORRESPCOMTOPAD, SYNONYME ? Skipped.
[1] Scanning DEFAILLANCE ( ESSAIDEFAILLANCE TABLE )...
Warning duplicate table DEFAILLANCE, SYNONYME ? Skipped.
[1] Scanning DEPOTARECYCLER ( ESSAIDEPOTARECYCLER TABLE )...
Warning duplicate table DEPOTARECYCLER, SYNONYME ? Skipped.
[1] Scanning DEPOTVALIDE ( ESSAIDEPOTVALIDE TABLE )...
Warning duplicate table DEPOTVALIDE, SYNONYME ? Skipped.
[1] Scanning ENUMERATION ( ESSAIENUMERATION TABLE )...
Warning duplicate table ENUMERATION, SYNONYME ? Skipped.
[1] Scanning STATISTIQUES ( ESSAISTATISTIQUES TABLE )...
Warning duplicate table STATISTIQUES, SYNONYME ? Skipped.
[1] Scanning SUPPORTJURIDIQUE ( ESSAISUPPORTJURIDIQUE TABLE )...
Warning duplicate table SUPPORTJURIDIQUE, SYNONYME ? Skipped.
[1] Scanning TELEPHONESTRT ( ESSAITELEPHONESTRT TABLE )...
Warning duplicate table TELEPHONESTRT, SYNONYME ? Skipped.
[1] Scanning TIERS ( ESSAITIERS TABLE )...
Warning duplicate table TIERS, SYNONYME ? Skipped.
[1] Scanning TIERSAMBRESUPPRIMES ( ESSAITIERSAMBRESUPPRIMES TABLE )...
Warning duplicate table TIERSAMBRESUPPRIMES, SYNONYME ? Skipped.
[1] Scanning TYPEDECLARATION ( ESSAITYPEDECLARATION TABLE )...
Warning duplicate table TYPEDECLARATION, SYNONYME ? Skipped.
Dumping table TELEPHONESTRT...
Dumping table TIERSAMBRESUPPRIMES...
Dumping table CONTEXTEUTILISATEUR...
Dumping table DEPOTVALIDE...

La commande ora2Pg est:

ora2pg -c monFichier.conf -d


le fichier monFichier.conf:

####################  Ora2Pg Configuration file   #####################

# Support for including common config file that may containt any
# of the following configuration directives.
#IMPORT common.conf

# Set this directive to a file containing PL/SQL Oracle Code like function,
# procedure or a full package body to prevent Ora2Pg from connecting to an
# Oracle database end just apply his convertion tool to the content of the
# file. This can only be used with the following export type: PROCEDURE,
# FUNCTION or PACKAGE. If you don't know what you do don't use this directive.
#INPUT_FILE     ora_plsql_src.sql

# Set the Oracle home directory
ORACLE_HOME     /oracle/11g

# Set Oracle database connection (datasource, user, password)
# Your SID should be declared on your tnsnames.ora file
ORACLE_DSN      dbi:Oracle:host=devfntd0.xxx.xxx.xxx;port=1521;sid=MAS
ORACLE_USER     system
ORACLE_PWD      xxx

# Set this to 1 if you connect as simple user and can not extract things
# from the DBA_... tables. It will use tables ALL_... This will not works
# with GRANT export, you should use an Oracle DBA username at ORACLE_USER
USER_GRANTS     0

# Trace all to stderr
DEBUG           0

# Export Oracle schema to PostgreSQL schema
EXPORT_SCHEMA   1

# Oracle schema/owner to use
SCHEMA          FNTD

# Enable this directive to force Oracle to compile schema before exporting code.
# This will ask to Oracle to validate the PL/SQL that could have been invalidate
# after a export/import for example. If you set the value to 1 will exec:
# DBMS_UTILITY.compile_schema(schema => sys_context('USERENV', 'SESSION_USER'));
# but if you probvide the name of a particular schema it will use the following
# command: DBMS_UTILITY.compile_schema(schema => 'schamename');
COMPILE_SCHEMA  0

# PostreSQL search path schem to use. Can be a coma delimited list,
# for example: users_schem,public will result in the following PostgreSQL
# schema path: SET search_path = users_schema,public;
# By default search_path is set to Oracle schema and pg_catalog.
PG_SCHEMA       FNTD

# Type of export. Values can be the following keyword:
#       TABLE           Export tables
#       PACKAGE         Export packages
#       DATA            Export datas from table as INSERT statement
#       COPY            Export datas from table as COPY statement
#       VIEW            Export views
#       GRANT           Export grants
#       SEQUENCE        Export sequences
#       TRIGGER         Export triggers
#       FUNCTION        Export functions
#       PROCEDURE       Export procedures
#       TABLESPACE      Export tablespace (PostgreSQL >= 8 only)
#       TYPE            Export user defined Oracle types
#       PARTITION       Export range or list partition (PostgreSQL >= v8.4)
#TYPE           TABLE,GRANT,TABLESPACE,COPY
TYPE            TABLE,COPY

# Set which table to export from. By default export from all tables.
# Additionally the extraction will respect the table list order given
# here. This is usefull if you have lots of foreign key constraints.
# Value must be a list of table name separated by space.
#TABLES         TABLE_TEST

# Set which table to exclude from extraction process. By default none.
# Value must be a list of table name separated by space.
#EXCLUDE                OTHER_TABLES

# Support for turning off certain schema features in the postgres side
# during schema export. Values can be : fkeys, pkeys, ukeys, indexes, checks
# separated by a space character.
# fkeys         : turn off foreign key constraints
# pkeys         : turn off primary keys
# ukeys         : turn off unique column constraints
# indexes       : turn off all other index types
# checks        : turn off check constraints
SKIP    fkeys pkeys ukeys indexes checks

# Extract data by bulk of DATA_LIMIT tuples at once. Default 10000. If you set
# a high value be sure to have enougth memory if you have million of rows.
DATA_LIMIT      10000

# You may wish to just extract data from some fields, the following directives
# will help you to do that. Works only with TYPE = DATA or COPY
# Modify output from the following tables(fields separate by space or comma)
#MODIFY_STRUCT  TABLE_TEST(dico,dossier)

# You may wish to change table names during data extraction, especally for replication use.
# Give a liste of tables separate by space as follow. Works only with TYPE = DATA or COPY
# REPLACE_TABLES        ORIG_TABLE_NAME1:NEW_TABLE_NAME1 ORIG_TABLE_NAME2:NEW_TABLE_NAME2

# You may wish to change column names during data extraction, especally for replication use.
# Give a liste of tables and columns separate by space as follow. Works only with TYPE = DATA or COPY
# REPLACE_COLS  ORIG_TABLE_NAME(ORIG_COL_NAME1:NEW_COL_NAME1,ORIG_COL_NAME2:NEW_COL_NAME2)

# Define the following directive to send export directly to a PostgreSQL database
# This will disable file output.
#PG_DSN         dbi:Pg:dbname=mas;host=localhost;port=5433
#PG_DSN         dbi:Pg:dbname=mas;host=10.xxx.xxx.159;port=5433
PG_DSN          dbi:Pg:dbname=gr3;host=10.xxx.xxx.214;port=5438
PG_USER postgres
PG_PWD          xxx

# By default all object names are converted to lower case, if you
# want to preserve Oracle object name asis set this to 1. Not recommanded
# unless you always quote all tables and columns on all your scripts.
CASE_SENSITIVE  0

# Support for include a WHERE clause filter when dumping the contents
# of tables. Value is construct as follow: TABLE_NAME[WHERE_CLAUSE], or
# if you have only one where clause for each table just put the where
# clause as value. Both are possible too. Here are some examples:
#WHERE  1=1     # Apply to all tables
#WHERE  TABLE_TEST[ID1='001']   # Apply only on table TABLE_TEST
#WHERE  TABLE_TEST[ID1='001' AND ID1='002] DATE_CREATE > '2001-01-01' TABLE_INFO[NAME='test']
# The last applies two different where clause on tables TABLE_TEST and TABLE_INFO and
# a generic where clause on DATE_CREATE to all other tables

# By default all output is dump to STDOUT if not send directly to postgresql
# database (see above). Give a filename to save export to it. If you want
# a Gzipped compressed file just add the extension .gz to the filename, you
# need perl module Compress::Zlib from CPAN. Add extension .bz2 to use Bzip2
# compression
#OUTPUT         output.sql.gz
#OUTPUT         output.sql.bz2
#OUTPUT         result.sql

# Base directory where all dumped files must be written
#OUTPUT_DIR     /var/tmp

# Path to the bzip2 program. See OUTPUT directive above.
BZIP2   /usr/bin/bzip2

# Set this to 1 to replace default password for all extracted user
# during GRANT export
GEN_USER_PWD    0

# When exporting tables, Ora2Pg normally exports constraints as they are;
# if they are non-deferrable they are exported as non-deferrable.
# However, non-deferrable constraints will probably cause problems when
# attempting to import data to PostgreSQL. The following option set to 1
# will cause all foreign key constraints to be exported as deferrable
FKEY_DEFERRABLE 0

# In addition when exporting data the DEFER_FKEY option set to 1 will add
# a command to defer all foreign key constraints during data export and
# the import will be done in a single transaction. This will work only if
# foreign keys have been exported as deferrables. Constraints will then be
# checked at the end of the transaction.
DEFER_FKEY      1

# If deferring foreign keys is not possible du to the amount of data in a
# single transaction or you've not exported foreign keys as deferrables
# you can use the DROP_FKEY directive. It will drop all foreign keys before
# data import and recreate them at the end.
DROP_FKEY       1

# Enabling this directive force Ora2Pg to drop all indexes on data import
# tables, except automatic index on primary key, and recreate them at end
# of data import. This may improve speed a lot during a fresh import.
DROP_INDEXES    1

# If set to 1 replace portable numeric type into PostgreSQL internal type.
# Oracle data type NUMBER(p,s) is approximatively converted to smallint,
# integer, bigint, real and float PostgreSQL data type. If you have monetary
# fields you should preserve the numeric(p,s) PostgreSQL data type if you need
# very good precision. NUMBER without precision are set to float.
PG_NUMERIC_TYPE 1

# NUMBER(x) are converted by default to bigint if PG_NUMERIC_TYPE is true.
# You can overwrite this value to any PG type, like integer or bigint.
DEFAULT_NUMERIC bigint

# By default, primary key names in the source database are ignored, and
# default key names are created in the target database. If this is set to true,
# primary key names are kept.
KEEP_PKEY_NAMES 1

# Disables triggers on all tables in COPY or DATA mode. Available modes
# are USER (userdefined triggers) and ALL (includes RI system
# triggers). Set to 0 if you don't want to disable triggers during
# data migration.
DISABLE_TABLE_TRIGGERS 1

# By default all datas that are not of type character, date or time are
# escaped. If you experience any problem with that you can set it to 1
# to disable it.
NOESCAPE        0

# If you're experiencing problems in data type export, the following directive
# will help you to redefine data type translation used in Ora2pg. The syntax is
# a coma separated list of "Oracle datatype:Postgresql datatype". Here are the
# data type that can be redefined and their default value.
# DATA_TYPE     DATE:timestamp,LONG:text,LONG RAW:text,CLOB:text,NCLOB:text,BLOB:bytea,BFILE:text,RAW:bytea,ROWID:oid,FLOAT:double precision,DEC:decimal,DECIMAL:decimal,DOUBLE PRECISION:double precision,INT:integer,INTEGER:integer,REAL:real,SMALLINT:smallint,BINARY_FLOAT:double precision,BINARY_DOUBLE:double precision,TIMESTAMP:timestamp,XMLTYPE:xml,BINARY_INTEGER:integer,PLS_INTEGER:integer

# Enforce default language setting following the Oracle database encoding. This
# may be used with mutibyte characters like UTF8.
# This will set  to the given value.
#NLS_LANG       AMERICAN_AMERICA.UTF8
NLS_LANG        french_france.WE8ISO8859P1

# Enforce perl to use binary mode for output using the given encoding. This
# must be used if you experience the perl message: "Wide character in print"
# The warning happens when you output a Unicode string to a non-unicode
# filehandle. If you set it to 'utf8' as follow, it will force printing
# like this: binmode OUTFH, ":utf8";
#BINMODE                utf8

# Allow to add a coma separated list of system user to exclude from
# from Oracle extraction. Oracle have many of them following the modules
# installed. By default it will suppress all object owned by the following
# system users:
#       SYS,SYSTEM,DBSNMP,OUTLN,PERFSTAT,CTXSYS,XDB,WMSYS,SYSMAN,SQLTXPLAIN,
#       MDSYS,EXFSYS,ORDSYS,DMSYS,OLAPSYS,FLOWS_020100,FLOWS_FILES,TSMSYS
# Other list of users set to this directive will be added to this list.
#SYSUSERS

# Disables alter of sequences on all tables in COPY or DATA mode.
# Set to 1 if you want to disable update of sequence during data migration.
DISABLE_SEQUENCE        0

# Force to use Oracle case sensitive table/view name. Default disabled.
ORA_SENSITIVE   0

# Enable PLSQL to PLPSQL convertion. This is a work in progress, feel
# free modify/add you own code and send me patches. The code is under
# function plsql_toplpgsql in Ora2PG/PLSQL.pm. Default disabled.
PLSQL_PGSQL     1

# Allow escaping of column name using Oracle reserved words.
ORA_RESERVED_WORDS      audit,comment

# Allow object constraints to be saved in a separate file during schema export.
# The file will be named CONSTRAINTS_OUTPUT. Where OUTPUT is the value of the
# corresponding configuration directive. You can use .gz xor .bz2 extension to
# enable compression. Default is to save all data in the OUTPUT file. This
# directive is usable only with TABLE export type.
FILE_PER_CONSTRAINT     0

# Allow indexes to be saved in a separate file during schema export. The file
# will be named INDEXES_OUTPUT. Where OUTPUT is the value of the corresponding
# configuration directive. You can use .gz xor .bz2 file extension to enable
# compression. Default is to save all data in the OUTPUT file. This directive
# is usable only with TABLE export type.
FILE_PER_INDEX          0

# Allow data export to be saved in one file per table/view. The files
# will be named as tablename_OUTPUT. Where OUTPUT is the value of the
# corresponding configuration directive. You can use .gz xor .bz2
# extension to enable compression. Default is to save all data in one
# file. This is usable only during DATA or COPY export type.
FILE_PER_TABLE  0

# This directive may be used if you want to change the default isolation
# level of the data export transaction. Default is now to set the level
# to a serializable transaction to ensure data consistency. Here are the
# allowed value of this directive: readonly, readwrite, serializable and
# committed (read commited).
#TRANSACTION    serializable
TRANSACTION     committed

# Allow support of WHEN clause in trigger definition PG>=9.0
PG_SUPPORTS_WHEN                1

# Allow support of INSTEAD OF in triggers definition PG>=9.1
PG_SUPPORTS_INSTEADOF   0

# Allow function export to be saved in one file per function/procedure.
# The files will be named as funcname_OUTPUT. Where OUTPUT is the value
# of the corresponding configuration directive. You can use .gz xor .bz2
# extension to enable compression. Default is to save all data in one
# file. This is usable only during FUNCTION or PROCEDURE export type.
FILE_PER_FUNCTION       0

# Add a TRUNCATE TABLE instruction before loading data on COPY and DATA
# export.
TRUNCATE_TABLE  0

# If you experience ERROR: invalid byte sequence for encoding "UTF8": 0xe87472
# when loading data you may want to set the encoding of the PostgreSQL client.
# By default it is not set and it will depend of you system client encoding.
#CLIENT_ENCODING        LATIN1

# By default the owner of database objects is the one you're using to connect
# to PostgreSQL. If you use an other user (postgres for exemple) you can force
# Ora2Pg to set the object owner to be the one used in the Oracle database by
# setting the directive to 1, or to a completely different username by setting
# the directive value # to that username.
FORCE_OWNER     0

# This controls whether ordinary string literals ('...') treat backslashes
# literally, as specified in SQL standard. This was the default before Ora2Pg
# v8.5 so that all stringis was escaped first, now this is currently on, causing
# Ora2Pg will now use the escape string syntax (E'...') if this parameter is not
# set to off or 0. This is the exact behaviour of the same option in PostgreSQL
# This is used only during DATA export type to build INSERT statements.
STANDARD_CONFORMING_STRINGS     1

# Multi-threading support. It is only used to do the escaping to convert
# LOBs to byteas, as it is very cpu hungry.
# There's a lot of CPU-waste here. Putting 6 threads will only triple your
# throughput, if your machine has enough cores.
# If zero, do not use threads, do not waste CPU, but be slower with bytea.
# Performance seems to peak at 5 threads, if you have enough cores, and
# triples throughput on tables having LOB.
# Another important thing: because of the way threading works in perl, threads
# consume a lot of memory. Put a low (5000 for instance) DATA_LIMIT if you
# activate threading. Default is threads disabled.
THREAD_COUNT            0

_EDIT jpargudo__
=> Rendre anonyme le nom des bases, ips et logins..

#6 Re : Optimisation » outil graphique d'analyse et de suivi de performances PostgreSQL » 04/11/2011 15:56:24

Et les outils d'enterprise DB ? Postgres Enterprise Manager™ ? qu'en pensez-vous ?

Sinon, pgstatpack, pgsnap ,pgfouine ... est ce que cela vaut le détour ?

#7 Re : Réplication » Streaming replication à partir des wal archivés/des wals en 9.1 » 04/11/2011 15:50:07

Le restore_command indique ou copier les journaux de transactions sur le serveur esclave. Dés lors, l'esclave va aller chercher sur le maître les infos qui sont dans PGDATA/%f  et les copie dans %p. dans mon cas, il prend les pg_xlog du maître et non les xlog_archives.

Je vais donc me conformer à utiliser le répertoire xlog_archives comme source des wals pour la réplication.

#8 Général » postgreSQL et COBOL » 04/11/2011 15:29:05

hfilliere
Réponses : 1

Bonjour,

Nous disposons de vieilles applis qui fonctionnent avec COBOL+ORACLE. Ces applications nécessiteraient un coup de jeune et pourrait migrer vers PostgreSQL.

Y'a t'il des expériences de développements COBOL + ORACLE ?

Quels sont les connecteurs, outils de dév utilisables ?

merci d'avance.

#9 Optimisation » outil graphique d'analyse et de suivi de performances PostgreSQL » 04/11/2011 15:26:13

hfilliere
Réponses : 3

Bonjour,

Je cherche des expériences dans l'utilisation d'outils graphiques permettant l'analyse proactive des bases de données PostgreSQL en vue d'optimiser les bases de données PostgreSQL.

S'il n'en existe pas ou peu performant. Que préconisez-vous comme lot d'outils qui répondraient à la demande ?

merci

hervé

#10 Re : Réplication » Streaming replication à partir des wal archivés/des wals en 9.1 » 04/11/2011 15:22:07

Merci de votre réponse très pertinente.

En réponse à votre message:

TITI est le nom de mon instance de test.

je définis :
/u03/pgsql/9.1/data/TITI comme mon PGDATA
je définis :
u02/pgsql/admin/9.1/TITI/xlog_archives/ comme mon répertoire des wals archivés de mon instance TITI.


Si PostgreSQL a un brusque saut d'activité, il ne devrait pas y avoir de soucis car je suis en mode synchrone.

>>De toute façon, c'est très clair : vous devez passer par l'archivage des journaux de transactions.

et pourtant le mécanisme fonctionne à partir de pg_xlog en paramétrant restore_command = 'cp /u03/pgsql/9.1/data/TITI/%f %p'

est-ce une anomalie postgreSQL ?

#11 Re : Réplication » Streaming replication à partir des wal archivés/des wals en 9.1 » 04/11/2011 12:45:57

Quel est l'intérêt d'utiliser les fichiers contenus dans les xlog_archives par rapport aux fichiers contenus dans les pg_xlog ?

#12 Re : Réplication » Streaming replication à partir des wal archivés/des wals en 9.1 » 04/11/2011 12:32:42

je ne suis pas d'accord;

dans la restore command, pour le 2eme cas: je spécifie la restore_command = 'cp /u03/pgsql/9.1/data/TITI/%f %p'   et mes logs archivés sont localisés sur mon serveur primaire dans /u02/pgsql/admin/9.1/TITI/xlog_archives/. J'en déduis que ce sont les fichiers contenus dans x_log en non ceux ds xlog_archives qui sont utilisés.

Alors que dans le 1er cas, je copie effectivement depuis le serveur primaire mes logs archivés avec rsync, et je spécifie dans le serveur esclave les les assimiler via la cmde : cp /u02/pgsql/admin/9.1/TITI/xlog_archives/%f

C plus clair; j'ai peut être mal compris une notion.

Plus clair ?

#13 Re : Réplication » Streaming replication à partir des wal archivés/des wals en 9.1 » 04/11/2011 12:19:30

En fait dans la configuration de la streaming replication, il est possible de spécifier que l'on utilise les wals archivés ou les wals. Je voulais connaître les avantages et les inconvénients de ces 2 méthodes ?

#14 Réplication » Streaming replication à partir des wal archivés/des wals en 9.1 » 04/11/2011 11:29:23

hfilliere
Réponses : 9

Bonjour,

Je voudrais connaître quelles sont les avantages et inconvénients de la réplication streaming par "copie des logs archivés depuis un serveur maître via rsync puis l'assimilation du serveur esclave de ces archives par la restore command" et "la copie des xlogs directement depuis le serveur esclave via la restore command" ?

cas 1:
restore_command = 'cp /u02/pgsql/admin/9.1/TITI/xlog_archives/%f %p'     # e.g. 'cp /mnt/server/archivedir/%f %p'
standby_mode = on
primary_conninfo = 'host=10.156.254.182 port=5433 application_name=sync_replication'           # e.g. 'host=localhost port=5432'
trigger_file = '/tmp/makeprimary.trigger'

cas 2:
restore_command = 'cp /u03/pgsql/9.1/data/TITI/%f %p'     # e.g. 'cp /mnt/server/archivedir/%f %p'
standby_mode = on
primary_conninfo = 'host=10.156.254.182 port=5433 application_name=sync_replication'           # e.g. 'host=localhost port=5432'
trigger_file = '/tmp/makeprimary.trigger'

Merci pour votre éclairage.

#15 Installation » Installation de 2 version postgreSQL 8.3.9 et 8.4.4 en centos 5.3 » 16/09/2010 14:47:18

hfilliere
Réponses : 1

Bonjour,

nous envisageons la possibilité d'héberger sur nos machines plusieurs versions de PostgreSQL.
A savoir la 8.3.9 et la 8.4.4 dans un premier temps sur du LINUX centos5.3

Nous utilisons les fichiers .spec fournis par la communauté car nous souhaiterions installer le moteur et toutes les dépendances liées à la plateforme et ceux non liées à la plateforme dans un répertoire de la forme:


/U01/pgsql/8.3.11/bin
/U01/pgsql/8.3.11/include
/U01/pgsql/8.3.11/lib
.....etc

Afin de réaliser cette opérations, nous nous sommes lancés dans la mise en oeuvre du fichier .spec fournit par la communauté en modifiant le moins de chose possible pour rester en conformité avec les normes.

Nous appelons la recompilation avec:

rpmbuild -ba postgresql-$VERSION.DGFIP.spec \
        --define "_prefix /u01/pgsql/$VERSION" \
        --define "_exec_prefix /usr" \
        --define "_includedir /usr/include" \
        --define "_bindir /u01/pgsql/$VERSION/bin" \
        --define "_datadir /u03" > log.txt

Et le résultat est:

./configure --build=i686-redhat-linux-gnu --host=i686-redhat-linux-gnu --target=i386-redhat-linux-gnu --program-prefix= --prefix=/u01/pgsql/8.3.11 --exec-prefix=/usr --bindir=/u01/pgsql/8.3.11/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/u03 --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/u01/pgsql/8.3.11/com --mandir=/usr/share/man --infodir=/usr/share/info --disable-rpath --with-perl --with-python --with-tcl --with-tclconfig=/usr/lib --with-openssl --with-pam --with-krb5 --with-gssapi --with-includes=/usr/include --with-libraries=/usr/lib --enable-nls --enable-thread-safety --with-ossp-uuid --with-libxml --with-libxslt --with-ldap --with-system-tzdata=/u03/zoneinfo --sysconfdir=/etc/sysconfig/pgsql --datadir=/u03 --with-docdir=/usr/share/doc


Nous pensions qu'en variabilisant exec_prefix avec /u01/pgsql/$VERSION, cela fonctionnerait. Malheureusement le fichier .spec des versions 8.3.11 et 8.4.4 de la communauté souffre d'un manque de variabilisation. Par conséquent, nous sommes obligés de laisser certaines parties comme exec_prefix /usr, de spécifier includedir /usr/include pour que la recompilation fonctionne...

Quelle méthode suggérez vous(avec des exemples svp) pour recompiler avec fichier spec sans modifier les fichiers spec de la communauté afin que tout moteur postgresql s'installe dans /u01/pgsql/version ?

Merci pour votre aide.

hfilliere

#16 Re : PHP » Pb de communication entre php5.2 et Postgresql 8.3.8 » 01/03/2010 16:18:30

Nous sommes peut être sur une piste. Nous avons découvert que la version de la libpq utilisée par php etait la 8.1.5. Nous sommes en PostgreSQL 8.3.8.
Nous allons tenter la recompil de php avec la libpq de la version 8.3.8.

Nous vous tenons au courant.

#17 Re : PHP » Pb de communication entre php5.2 et Postgresql 8.3.8 » 01/03/2010 11:32:58

Merci à tous pour vos réponses.

Nos actions:

- Tests de pg_pconnect: Toujours le même souci mais moins fréquent.

- Tests sur une autre plateforme: en cours

- Concernant pgbouncer/pgpool II. Nous n'avons qu'une seule connexion. l'outil mis en oeuvre n'est pas ouvert à l'extérieur, il sert de base pour la création de fichiers sources.

Nous vous informons asap des tests sur un autre type de plateforme.

Si toutefois, le souci n'est présent que sur HP-UX, nous concentrerons nos recherches côté sockets.


Merci pour votre aide.

cord.

Hfilliere

#18 Re : PHP » Pb de communication entre php5.2 et Postgresql 8.3.8 » 26/02/2010 10:34:16

Bonjour,

>> Quel système d'exploitation ?
HP-UX-itanium IA64                         B.11.23.06

>> Avez vous quelquechose dans les logs postgresql ?

Afin de répondre à cette question, je vais vous transmettre la séquence de tests et investigation que nous avons initié:

--------------------------------------------

Suite à une erreur voici les messages dans le log:
127.0.0.1(52808) @ 2010-02-12 09:59:37.525 MET @ 2010-02-12 09:59:37 MET @@LOG:  08P01: incomplete startup packet
127.0.0.1(52808) @ 2010-02-12 09:59:37.525 MET @ 2010-02-12 09:59:37 MET @@LOCATION:  ProcessStartupPacket, postmaster.c:1405

Nouvelle tentative échouant:
@ 2010-02-12 09:59:48.048 MET @ 2010-02-12 09:59:48 MET @@LOG:  00000: connection received: host=127.0.0.1 port=52810
@ 2010-02-12 09:59:48.048 MET @ 2010-02-12 09:59:48 MET @@LOCATION:  BackendInitialize, postmaster.c:3036
127.0.0.1(52810) @ 2010-02-12 09:59:48.048 MET @ 2010-02-12 09:59:48 MET @@LOG:  08P01: incomplete startup packet
127.0.0.1(52810) @ 2010-02-12 09:59:48.048 MET @ 2010-02-12 09:59:48 MET @@LOCATION:  ProcessStartupPacket, postmaster.c:1405

en alternance avec le message précédent:
@ 2010-02-12 17:33:20.845 MET @ @@LOG:  00000: getsockname() failed: Invalid argument
@ 2010-02-12 17:33:20.845 MET @ @@LOCATION:  StreamConnection, pqcomm.c:612

Process autovaccum démarrant automatiquement (normal):
@ 2010-02-12 09:59:53.203 MET @ 2010-02-12 09:59:53 MET @@DEBUG:  00000: autovacuum: processing database "postgres"
@ 2010-02-12 09:59:53.203 MET @ 2010-02-12 09:59:53 MET @@LOCATION:  AutoVacWorkerMain, autovacuum.c:1616

Ca remarche:
@ 2010-02-12 10:02:21.228 MET @ 2010-02-12 10:02:21 MET @@LOG:  00000: connection received: host=127.0.0.1 port=52828
@ 2010-02-12 10:02:21.228 MET @ 2010-02-12 10:02:21 MET @@LOCATION:  BackendInitialize, postmaster.c:3036
127.0.0.1(52828) @ 2010-02-12 10:02:21.228 MET @ 2010-02-12 10:02:21 MET @@LOG:  00000: connection authorized: user=postgres database=mabase
127.0.0.1(52828) @ 2010-02-12 10:02:21.228 MET @ 2010-02-12 10:02:21 MET @@LOCATION:  BackendInitialize, postmaster.c:3107
127.0.0.1(52828) @ 2010-02-12 10:02:21.231 MET @ 2010-02-12 10:02:21 MET @@LOG:  00000: disconnection: session time: 0:00:00.003 user=postgres database=mabase host=127.0.0.1 port=52828
127.0.0.1(52828) @ 2010-02-12 10:02:21.231 MET @ 2010-02-12 10:02:21 MET @@LOCATION:  log_disconnections, postgres.c:4037


Ce qu'on trouve sur le net par rapport au message 08P01:
Broken client software, or possibly something portscanning your machine. It's reporting a bogus connection attempt.


Dans le source postmaster.c on retrouve les tests générant l'erreur que l'on trouve dans les log:

Lignes 1321 et suivantes:

if (pq_getbytes((char *) &len, 4) == EOF)
  {
   /*
    * EOF after SSLdone probably means the client didn't like our
    * response to NEGOTIATE_SSL_CODE.    That's not an error condition, so
    * don't clutter the log with a complaint.
   */
     if (!SSLdone)
       ereport(COMMERROR,
                        (errcode(ERRCODE_PROTOCOL_VIOLATION),
                         errmsg("incomplete startup packet")));
         return STATUS_ERROR;
  }
Lignes 1347 et suivantes:
/*
* Allocate at least the size of an old-style startup packet, plus one
* extra byte, and make sure all are zeroes.  This ensures we will have
* null termination of all strings, in both fixed- and variable-length
* packet layouts.
*/
    if (len <= (int32) sizeof(StartupPacket))
        buf = palloc0(sizeof(StartupPacket) + 1);
    else
        buf = palloc0(len + 1);

    if (pq_getbytes(buf, len) == EOF)
        {
        ereport(COMMERROR,
            (errcode(ERRCODE_PROTOCOL_VIOLATION),
            errmsg("incomplete startup packet")));
        return STATUS_ERROR;
        }


Dans le source pqcomm.c on retrouve l'erreur de socket:
00607     /* fill in the server (local) address */
00608     port->laddr.salen = sizeof(port->laddr.addr);
00609     if (getsockname(port->sock,
00610                     (struct sockaddr *) & port->laddr.addr,
00611                     &port->laddr.salen) < 0)
00612     {
00613         elog(LOG, "getsockname() failed: %m");
00614         return STATUS_ERROR;
00615     }

Rajout dans le script  test_bug.php de la fermeture de la connexion à la base en fin de script:
pg_close($conn);

Cela ne change rien dans les logs.

Suppression des données de la table:
sous user postgres:
    psql mabase

mabase=# truncate table matable ;

mabase=# select * from matable ;
id | val1 | val2 | val3
----+------+------+------
(0 rows)

\q pour sortir de psql


On créé le script /opt/hpws/apache/htdocs/insert.php pour alimenter la base avec des enregistrements générés au hasard.
Le script rajoute un enregistrement et affiche le contenu de toute la table après cet insertion.

La consultation se fait avec le script consult.php, et le script test_bug.php ne fait que des connections à la base.

  id  |   val1    |   val2    | val3
------+-----------+-----------+------
6904 | RACHID       | BENJAMIN     | 21
6695 | ANTHONY   | GUILLAUME | 62
  138  | JULIEN         | JEREMY         | 42
                            ETC...


On refait les tests en surveillant les trames réseau:

tcpdump -vv tcp port 5432  and host 'localhost'
tcpdump -vv host not 'localhost'

Rien de très parlant


Modification des paramètres de postgres dans postgres.conf:
authentication_timeout = 5min  (valeur précédente:  1min)
puis test avec la valeur 1s
Arrêt / Relance de postgres SOUS USER POSTGRES:
/opt/iexpress/postgresql/bin/pg_ctl stop -D /var/tmp/data -s -m fast > logfile 2>&1
/opt/iexpress/postgresql/bin/postmaster -D /var/tmp/data/    > logfile 2>&1 &
Problème identique

Réinitialisation du paramètre précédent à sa valeur d'origine et test d'autres paramètres selon le même principe:

tcp_keepalives_idle = 5       (valeur précédente:  0)
tcp_keepalives_interval = 5   (valeur précédente:  0)
tcp_keepalives_count = 10   (valeur précédente:  0)
Problème identique

archive_mode = on  (valeur précédente:  off)
Problème identique

autovacuum = off  (valeur précédente:  on)




Vérification des pramètres kernel qui ont l'air suffisants par rapport à ce qui est préconisé dans la documentation postgres:
shmmax:    1073741824
shmseg:    300
shmmni:    400
semmni:    2048
semmns:    4096
semmsl:    2048
semvmx:    32767


La vérification du fichier pg_hba.conf ne donne rien non plus:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
>>>> #host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               trust
On essaie de commenter la 1° ligne de type host, pour forcer les connexions à passer par les sockets Unix plutôt que par TCP/IP. Arrêt relance de postgres.
Au début semble permettre le bon fonctionnement de test_bug.php, mais au bout d'un moment les erreurs reviennent.
Retour arrière au niveau de  pg_hba.conf .



Test de différentes syntaxe:
avec ou sans indiquer le host dans la variable de connexion
utilisation d'une connexion persistante avec le mot clé pconnect au lieu de connect
test de diverses fonctions php pour avoir plus d'informations mais sans succès (notamment utilisation de la fonction pg_trace pour tracer les échanges entre PHP et postgres)


Phénomènes curieux:
le fait de rajouter dans le script consult.php, la commande php qui suit, cela provoque l'apparition du problème qui ne se manifeste pas  habituellement avec cette page.

Par contre dans le script test_bug.php, cela ne change rien à la présence ou pas de l'erreur.

La commande php concernée est  ini_set('track_errors','on').
Elle  force, le temps du script,   la valeur du paramètre track_errors à vrai, ce qui permet de récupérer dans la variable $php_errormsg le dernier message d'erreur de php. Mais ici rien ne s'affiche au moment de l'erreur (pas d'erreur côté php?) .


Autres cas:
Dans le script consult.php:
Si on veut rajouter la fonction permettant de compter le nombre d'enregistrement résultant d'une commande select ($nb_enr = pg_num_rows($result);) , on a une erreur identique à celle qu'on rencontrait jusque là, dans les log postgres et dans la page web, avec en plus le message "Exec format error " dans la page web.

Idem si on affiche une variable qui n'existe pas

Si on reexécute la fonction pgquery avec la même variable de retour que précédemment: ça marche
Si on change le nom de la variable de  retour, on a la même erreur que ci-dessus.
Mais si on affiche par echo le contenu de cette nouvelle variable, on a l'erreur d'origine mais sans celle "Exec format error ".

Dès qu'on commente toutes ces lignes supplémentaires, tout remarche.


Il semble donc y avoir un lien très fort entre le source PHP et l'erreur figurant  dans le log de postgres.

Le script consult.php passe dans 99% des cas, par contre le script test_bug.php bloque la plupart du temps. Je vide le contenu du script test_bug.php et je le remplace par celui du script consult.php: le script fonctionne. Il y a donc quelque chose qui ne va pas dans la syntaxe du script d'origine test_bug.php. En le simplifiant  (une fonction pg_connect et une fonction pg_close) le script fonctionne plus souvent qu'avant, mais pas tout le temps.
Examen des log php:
/opt/hpws/apache/logs/php.log

Rien de plus


Paramétrage du fichier /opt/hpws/apache/conf/php.ini:

Test de l'activation du buffer de sortie, pour voir:
; Output buffering allows you to send header lines (including cookies) even ; after you send body content, at the price of slowing PHP's output layer a ; bit.  You can enable output buffering during runtime by calling the output ; buffering functions.  You can also enable output buffering for all files by ; setting this directive to On.  If you wish to limit the size of the buffer ; to a certain size - you can use a maximum number of bytes instead of 'On', as ; a value for this directive (e.g., output_buffering=4096).
;output_buffering = Off
output_buffering = On


Rédémarrage du serveur Apache:
/opt/hpws/apache/bin/apachectl stop puis start

Pas d'effet : retour arrière

; Implicit flush tells PHP to tell the output layer to flush itself
; automatically after every output block.  This is equivalent to calling the
; PHP function flush() after each and every call to print() or echo() and each
; and every HTML block.  Turning this option on has serious performance
; implications and is generally recommended for debugging purposes only.
;implicit_flush = Off
implicit_flush = On

Idem


max_execution_time = 30  Passé de 30 à 90    ; Maximum execution time of each script, in seconds
max_input_time = 60   Passé de 60 à 120  ; Maximum amount of time each script may spend parsing request data

error_reporting  =  E_ALL & ~E_NOTICE
changé par     error_reporting  =   E_STRICT & E_ALL

display_startup_errors = Off  changé par 
display_startup_errors = On

pgsql.auto_reset_persistent = Off  changé par
pgsql.auto_reset_persistent = On

[Sockets]
; Use the system read() function instead of the php_read() wrapper.
sockets.use_system_read = On   mis à Off
Vérification de la configuration de Bastille:
    Fichier de configuration :    /etc/opt/sec_mgmt/bastille/config
Sauvegarde du fichier avant modification :
cp -p /etc/opt/sec_mgmt/bastille/config  /etc/opt/sec_mgmt/bastille/config.sv

Autres fichiers:
/var/opt/sec_mgmt/bastille/log/action-log
/var/opt/sec_mgmt/bastille/log/error-log

Quel est l'effet de cette ligne ?:
# Q:  Would you like to deactivate the HP Web Services Apache Web Server?
Apache.deactivate_hpws_apache="Y"

On la met à "N" pour voir l'effet, au travers de l'assistant graphique. On applique les modifications par la commande:    bastille -b -f  /etc/opt/sec_mgmt/bastille/config

Aucun effet sur le bug – retour arrière
Relance d'Apache, car visiblement  Bastille l'a arrêté.


Ipfilter est lancé, mais par défaut il laisse tout passer:
root@3sora01 : ipf -V
ipf: HP IP Filter: v3.5alpha5 (A.11.23.15.01) (376)
Kernel: HP IP Filter: v3.5alpha5 (A.11.23.15.01)
Running: yes
Log Flags: 0 = none set
Default: pass all, Logging: available
Active list: 1


Rien de tout cela ne semble jouer. Le script consult.php semble toujours fonctionner, alors  que  test_bug.php plante régulièrement. Si on remplace le source par celui de consult.php le script se met à fonctionner. Donc mystère, sachant que les différences entre les 2 scripts sont minimes.

Pour savoir si le problème est lié à la version de php, on tente d'installer une version plus récente trouvée sur le site de produits libres HP  (http://hpux.connect.org.uk/ ):
php 5.2.11


Arrêt d'Apache:    /opt/hpws/apache/bin/apachectl stop
Sauvegarde du fichier php.ini au cas où:
cp -p /opt/hpws/apache/conf/php.ini /opt/hpws/apache/conf/php.ini.5.2.2

swinstall -s /var/tmp/0_depots/php-5.2.11-ia64-11.23.depot \*

La librairie php correspondant à cette version de php est située là:
/usr/local/apache2/lib/modules/libphp5.so

On modifie donc la configuration d'Apache en conséquence:

Sauvegarde de la configuration précédente d'Apache:
cp -p /opt/hpws/apache/conf/httpd.conf /opt/hpws/apache/conf/httpd.conf.5.2.2

Edition de /opt/hpws/apache/conf/httpd.conf  pour remplacer la ligne
LoadModule php5_module        modules/libphp5.so
par
LoadModule php5_module        /usr/local/apache2/lib/modules/libphp5.so

Problème avec le module php de la nouvelle version (visiblement un problème de compilation du module) :
Redémarrage d'Apache et exécution du script test.php affichant les infos sur PHP:root@3sora01 : /opt/hpws/apache/bin/apachectl start
Syntax error on line 232 of /opt/hpws/apache/conf/httpd.conf:
Cannot load /usr/local/apache2/lib/modules/libphp5.so into server: '/usr/local/apache2/lib/modules/libphp5.so' is not a valid load module: Bad magic number

On désinstalle alors cette version (+ suppression de l'arborescence vide+ retour arrière de la config Apache) et on installe une nouvelle version de serveur Web Apache récupéré sur le site HP:

swlist -s /var/tmp/0_depots/Apache_Based_Web_Server_-V.3.02-HPUXWS22ATW-B302-64.depot

# Bundle(s):
  hpuxws22Apache        B.2.2.8.01.02  HP-UX Apache-based Web Server
  hpuxws22Tomcat        B.5.5.27.01.01 HP-UX Tomcat-based Servlet Engine
  hpuxws22Webmin        A.1.070.10     HP-UX Webmin-based Admin

Au lieu de  ce qui est livré avec le socle 2.4:

  hpuxwsAPACHE          B.2.0.59.01    HP-UX Apache-based Web Server
  hpuxwsTOMCAT          B.5.5.23.00    HP-UX Tomcat-based Servlet Engine
  hpuxwsWEBMIN          A.1.070.10     HP-UX Webmin-based Admin

Installation du bundle complet:
swinstall -s /var/tmp/0_depots/Apache_Based_Web_Server_-V.3.02-HPUXWS22ATW-B302-64.depot \*

Nécessite 2 dépendances:
         openssl.OPENSSL-LIB,r>=A.00.09.07m.021
         krb5client.KRB5-64SLIB-A,r>=D.1.6.2

Comme on n'a pas l'intention d'utiliser ces fonctionnalités, on passe outre ces prérequis.

swinstall -x enforce_dependencies=false -x autoselect_dependencies=false -s /var/tmp/0_depots/Apache_Based_Web_Server_-V.3.02-HPUXWS22ATW-B302-64.depot \*

root@3sora01 : swlist -l product | grep -i hpuxw
  hpuxws22APACHE        B.2.2.8.01.02  HP-UX Apache-based Web Server
  hpuxws22TOMCAT        B.5.5.27.01.01 HP-UX Tomcat-based Servlet Engine
  hpuxws22WEBMIN        A.1.070.10     HP-UX Webmin-based Admin

hpuxwsAPACHE          B.2.0.59.01    HP-UX Apache-based Web Server
  hpuxwsTOMCAT          B.5.5.23.00    HP-UX Tomcat-based Servlet Engine
  hpuxwsWEBMIN          A.1.070.10     HP-UX Webmin-based Admin
Visiblement les 2 produits coexistent. Pour la version qui nous intéresse les fichiers sont installés dans:     /opt/hpws22/apache     (au lieu de /opt/hpws/apache/)
et pour php:    /opt/hpws22/apache/modules/libphp5.so

Edition du fichier de configuration Apache (après sauvegarde avec  l'extension .ori)
/opt/hpws22/apache/conf/httpd.conf

Répertoire par défaut du serveur:    /opt/hpws22/apache/htdocs
on recopie les scripts php dans ce répertoire

On décommente la ligne concernant php:
LoadModule php5_module        modules/libphp5.so

Les logs sont correctement configurées par défaut.

Configuration de /opt/hpws22/apache/conf/php.ini :
on décommente la ligne correspondant à Postgres   extension=pgsql.sl

Lancement du serveur Apache et tests:
/opt/hpws22/apache/bin/apachectl start


Nous avons de nouveau l'erreur avec le script test_bug.php
Version utilisées (d'après phpinfo) :

Apache/2.2.8 HP-UX_Apache-based_Web_Server (Unix) DAV/2     PHP/5.2.6
PostgreSQL(libpq) Version     8.2.5


Contre la version du socle 2.4:

Apache/2.0.59 HP-UX_Apache-based_Web_Server (Unix) DAV/2     PHP/5.2.2
PostgreSQL(libpq) Version     8.1.5

Le serveur postgres est toujours dans la version: 8.3.8


On teste pour voir si les autres postgres, utilisés par des process liés à cimserver, ne pertubent pas  le fonctionnement de notre postgres 8.3.8
Arrêt des autres postgres tournant sur le serveur:
/sbin/init.d/sfmdb stop
/sbin/init.d/hpsmdb stop

Réinitialisation de notre postgres/Apache, pour repartir propre:
Arrêt du postgres 8.3.8, arrêt/relance d' Apache, relance du  postgres 8.3.8

Le bug se  reproduit. Relance de sfmdb et hpsmdb.

Scripts de test:
http://XX.XX.XX.XX/test_bug.php
http://XX.XX.XX.XX/consult.php
Ce qui ressort de tous ces tests:
    le bug n'est pas lié à la version de php
    c'est le script test_bug.php  qui a l'air de planté , l'autre script de test consult.php ne plante pas (ou alors très rarement). Le simple fait de rajouter les lignes supplémentaires, figurant dans consult.php, dans  test_bug.php, le script ne plante plus. C'est assez curieux, mais c'est pourtant ce qu'on constate. Peut-être une piste ?

Source du script plantant régulièrement   test_bug.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>TEST BASE POSTGRESQL</title>
</head>
<body>
<?php

echo "TEST DE CONNEXION<BR>" ;

$dbh = pg_connect("dbname=mabase user=postgres password=postgres");

echo "<BR>RESULTAT DE LA CONNEXION: ";
print_r($dbh);
echo "<br>";

$sql = "SELECT * FROM matable";
$result = pg_query($dbh, $sql);

//Lignes figurant en plus dans consult.php et qui semblent arrêter le plantage du script test_bug?php quand on les réactive:

//echo "<PRE>";
//while ($row = pg_fetch_array($result)) {
//    echo "<BR>Id: " . $row[0] .  " Prenom: " . $row[1] .  " Nom: " . $row[2] . " Age: " . $row[3] . "<BR>" ;
// }
//echo "</PRE>";


pg_close($dbh);
?>

</body>
</html>
---------------------------------


- Qu' en dites vous ? Est-ce que ca vous parle ce problème?

Merci pour votre aide.

hfilliere

#19 PHP » Pb de communication entre php5.2 et Postgresql 8.3.8 » 25/02/2010 18:04:18

hfilliere
Réponses : 9

Bonjour,

L'installation (modulo quelques details) s'est bien passée et la version 8.3.8 se lance bien sur notre serveur.
Par contre il reste le problème de PHP/apache. Celui-ci semble ne pas pouvoir se connecter DE TEMPS EN TEMPS.

Le code suivant :
<?php

ini_set('track_errors','on');

$conn = @pg_connect("host=localhost dbname=toto user=dico password=toto");

echo "Connection result: ";
print_r($conn);
echo "<hr>";

if ($conn===false) {
    echo "Connection failed: ";
        print_r($php_errormsg);
            echo "<hr>";
            }       
?>

renvoie en général cela
Connection result: Resource id #2

mais de temps en temps ceci :
Connection failed: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not connect to server: Is the server running on host "localhost" and accepting TCP/IP connections on port 5432

Avez-vous déjà eu des retours sur ce problème ?

Quels sont vos suggestions/idées ?

merci pour votre aide...je suis sec !

hfilliere

#20 Général » Affichage date et nombre » 25/02/2010 17:53:39

hfilliere
Réponses : 1

Bonjour,

Afin d'avoir un affichage à la française, nous souhaiterions avoir les dates au format DD/MM/YYYY au lieu de YYYY-MM-DD et les nombres au format 9999,99 au lieu de 9999.99 (virgule à la place de point).

Pour la date, il suffit de modifier le paramètre datestyle en ISQ, DMY.

Mais je n'ai pas trouvé comment faire pour les nombres sachant que je voudrais éviter d'utiliser un to_char qui doit consommer des ressources surtout quand on traite des millions de lignes.

Pour info, voici un extrait de postgresql.conf :
lc_messages = 'C'
lc_monetary = 'fr_FR.UTF-8'
lc_numeric = 'fr_FR.UTF-8'
lc_time = 'fr_FR.UTF-8'
default_text_search_config = 'pg_catalog.french'

Si vous aviez une réponse, je serais ravi.

Merci à tous !

--

hfilliere

#21 Optimisation » Paramétrage des journaux de trnasactions » 12/02/2010 10:42:02

hfilliere
Réponses : 1

Bonjour à nouveau ,

De la même façon que dans mon précédent Post, je cherche à optimiser les écritures de journaux de transactions. Toujours dans Linux MAG je lis qu'il est intéressant de paramétrer un checkpoint_segments à 10 et un checkpoint_completion_target à 0.9..

Pour quel type d'application est-ce le plus recommandé ?(OLTP...etc)

Qu'en est il pour le checkpoint_timeout ? (5mn par défaut) ? est-ce une valeur acceptable ou faut il généralement l'augmenter ?

merci pour vos lumières.

#22 Optimisation » Paramétrage du wal_buffer » 12/02/2010 10:18:03

hfilliere
Réponses : 2

Bonjour à tous,

Sachant qu 1 wal représente 16Mb sur disque, à combien doit être paramétré le wal_buffer ?

J'aurai tendance à le positionner à 2Xla taille par défaut ? non ?

j'ai lu dans le linux mag consacré à PostgreSQL8.4 qu'il fallait paramétrer entre 1Mo et 8Mo? je ne comprend pas pour quelle raison...

Merci pour vos réponses d'experts !

A bientôt!

hfilliere

#23 Java » Version du driver JDBC pour postgresql v8.3.X » 05/01/2010 16:50:59

hfilliere
Réponses : 3

Bonjour,

Bonnes années à tous !

je souhaiterai connaître quelle version de JDBC piochée sous http://jdbc.postgresql.org/ dois-je utiliser pour une postgresql v8.3.X. Quels sont vos recommandations ?

Merci d'avance.

Hfilliere

#24 Général » Comportement base de données PostgreSQL en cas de FS plein » 17/12/2009 17:32:19

hfilliere
Réponses : 7

Bonjour,

Que se passe t' il lorsque le FS hébergeant les bases de données PostgreSQL est plein.
Est-ce qu'il y a un crash éventuel? Quel est le comportement du moteur PostgreSQL?

merci de vos lumières.

Hfilliere

#25 Général » Montée en version 8.3.0 vers 8.3.8 » 11/12/2009 10:28:29

hfilliere
Réponses : 1

Bonjour,

Afin de monter en version un moteur PostgreSQL 8.3.[0-5] vers 8.3.8, j'ai lu et compris qu'il fallait simplement écraser les anciens binaires.

Est-ce que je suis dans le vrai ?

Sinon quels sont les points à surveiller ? Que faut-il faire ?
Quels sont les éventuels impacts pour les bases ?

merci de votre aide.

hfilliere

Pied de page des forums

Propulsé par FluxBB