新建数据库,迁移数据,启动的时候无法启动
FATAL: XX000: database files are incompatible with server
DETAIL: The database cluster was initialized with RELSEG_SIZE 131072, but the server was compiled with RELSEG_SIZE 1048576.
源数据库131072
postgres=> select name,setting from pg_settings where category = 'Preset Options' order by name;
name | setting
-----------------------+---------
block_size | 8192
integer_datetimes | on
max_function_args | 100
max_identifier_length | 63
max_index_keys | 32
segment_size | 131072
server_version | 9.2.9
server_version_num | 90209
wal_block_size | 16384
wal_segment_size | 1024
目标数据库默认是1048576
postgres=# select name,setting from pg_settings where category = 'Preset Options' order by name;
name | setting
-----------------------+---------
block_size | 8192
integer_datetimes | on
max_function_args | 100
max_identifier_length | 63
max_index_keys | 32
segment_size | 1048576
server_version | 9.2.9
server_version_num | 90018
wal_block_size | 8192
wal_segment_size | 8192
需要重新编译数据库软件:
#由select (131072 * 8192)/1024/1024/1024;计算得到RELSEG_SIZE为1,单位GB
#可以看到wal_block_size对应--with-wal-blocksize应该是16,segment_size对应----RELSEG_SIZE应该为1
#需要删除重新编译,报错消失
rm -rf postgresql-9.2.9
tar -jxvf postgresql-9.2.9.tar.bz2
cd postgresql-9.2.9
./configure '--prefix=/opt/pgsql9.2.9' '--with-pgport=1923' '--with-segsize=1' '--with-perl' '--with-python' '--with-openssl' '--with-pam' '--with-ldap' '--with-libxml' '--with-libxslt' '--enable-thread-safety' '--with-wal-blocksize=16'
gmake world && gmake install-world