antes de 9.0 eu tive que compilar meu servidor postgresql com "--enable-thread-safety" para http://www.bacula.org
desde 9.0 o config-paramater é renomeado para "--disable-thread-safety".
O pacote "PostgreSQL Development Group" para CentOS 6.2 não usa este parâmetro. http://yum.postgresql.org/9.1/redhat/rhel-6-i386/
# pg_config --configure
'--disable-rpath' '--prefix=/usr/pgsql-9.1' '--includedir=/usr/pgsql-9.1/include'
'--mandir=/usr/pgsql-9.1/share/man' '--datadir=/usr/pgsql-9.1/share' '--with-perl'
'--with-python' '--with-tcl' '--with-tclconfig=/usr/lib64' '--with-openssl' '--with-pam'
'--with-krb5' '--with-gssapi' '--with-includes=/usr/include' '--with-libraries=/usr/lib64'
'--enable-nls' '--with-ossp-uuid' '--with-libxml' '--with-libxslt' '--with-ldap'
'--with-system-tzdata=/usr/share/zoneinfo' '--sysconfdir=/etc/sysconfig/pgsql'
'--docdir=/usr/share/doc'
'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/include/et'
'CPPFLAGS= -I/usr/include/et'
Não sei como o bacula está testando o thread-safety. http://www.bacula.org/de/dev-manual/Installi_Configur_PostgreS.html#tex2html63
depois yum install postgresql91-devel
que eu tiver o arquivo libpq.a e a verificação for bem-sucedida:
nm /usr/pgsql-9.1/lib/libpq.a | grep pthread_mutex_lock
U pthread_mutex_lock
U pthread_mutex_lock
como posso verificar se meu servidor de banco de dados é thread-safe?
O parâmetro thread-safety é relevante apenas para a biblioteca cliente libpq e não influencia como o back-end é construído. O back-end na verdade nem usa threads, ele usa um processo por conexão.
edit apenas notei que não abordei a renomeação do parâmetro configure. O ponto com configure é que os scripts de construção podem suportar recursos opcionais. Se você tiver um recurso X, poderá passar --enable-X ou --disable-X. No entanto, sua saída de ajuda listará apenas um dos dois com base no padrão atual (enabled é o padrão desde 9.0 para thread-safety).