在 9.0 之前,我必须为http://www.bacula.org使用“--enable-thread-safety”编译我的 postgresql-server
从 9.0 开始,配置参数被重命名为“--disable-thread-safety”。
CentOS 6.2 的“PostgreSQL Development Group”-Package 不使用此参数。 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'
我不知道,bacula 是如何测试线程安全的。 http://www.bacula.org/de/dev-manual/Installi_Configur_PostgreS.html#tex2html63
在yum install postgresql91-devel
我拥有文件 libpq.a 并且检查成功后:
nm /usr/pgsql-9.1/lib/libpq.a | grep pthread_mutex_lock
U pthread_mutex_lock
U pthread_mutex_lock
我如何检查我的数据库服务器是线程安全的?
线程安全参数仅与客户端库 libpq 相关,它不影响后端的构建方式。后端实际上甚至不使用线程,它使用每个连接的进程。
编辑 刚刚注意到我没有解决配置参数的重命名问题。configure 的重点是构建脚本可以支持可选功能。如果你有一个特性 X,你可以传递 --enable-X 或 --disable-X。然而,它的帮助输出将仅列出基于当前默认值的两者之一(启用是自 9.0 以来线程安全的默认值)。