postgresql安装和备份

自己编译的话,一定要看文档,正常情况下按下述步骤执行

1
2
3
./configure --prefix="binPath"
make world-bin
make install-world-bin

world-bin会编译除了文档外全部可编译的内容。(几次使用中出错就是因为只使用了make,导致扩展没被编译,而我正好需要使用citext这个扩展,所以导入数据时,会因为缺少citext类型而失败)

关于备份和导入数据

1
2
pg_dump.exe -f d:/aa.dump -F c  -d dbname
pg_restore -p 5433 -d dbname -F c -v -O -x ./aa.dump

这里要注意的是,当备份时-Fc时不要自作聪明加入--column-inserts--inserts参数,这会导致恢复数据时变慢(可能是变成SQL语句插入了)。

在跨平台数据备份恢复时,要注意locale不同,所以一般在恢复数据时事先建好数据库,不要加-C参数,这样就不会使用备份文件中的建库语句创建数据库。在日常使用中,也应该注意不要在表里指定特殊的字符集啥的。

重点就是:任何操作应该仔细阅读文档和命令帮助,不要想当然。其实本文所犯的错都是因为没认真阅读文档和命令帮助,结果花了更多的时间来排错。