通常,不同主版本的 PostgreSQL 之间的内部存储结构经常做改变,所以需要用 pg_dump备份数据,然后到新的服务器里恢复它们。
建议使用新版本的 pg_dump 和 pg_dumpall 以便利用新版本的新特性和功能。
以下过程假设新老数据库都在同一服务器上。
1.确保备份过程中和备份后没有更新。
1)关闭所有连接数据库的操作
2.备份数据库
有2种办法:
1)使用新版本(9.1)的pg_dumpall命令执行:
pg_dumpall > DB.sql
2)使用新版本(9.1)的pg_dump命令执行:(可以使用参数,进行压缩)
pg_dump IPCCS > IPCCS.sqls
pg_dump NeuCRMS > NeuCRMS.sql
3.关闭8.1数据库,启动9.1数据库
4.恢复数据
针对2种备份:
1)使用新的psql
psql -d postgres -f DB.sql
2)使用新的psql
psql -d IPCCS -f IPCCS.sql
psql -d NeuCRMS -f NeuCRMS.sql
5.整理
pg_dump 生成的转储文件并不包含优化器用于查询规划决策的统计信息。因此,恢复完之后,建议在每个已恢复的对象上运行 ANALYZE ,以保证良好的性能。
6.开启服务
1)开启apache服务
2)开启asterisk服务
3)恢复定时任务(未执行的重新执行)
7.验证平台
还可以使用如下实现最短停业时间:
pg_dumpall -p 5432 | psql -d postgres -p 6543