pg_upgrade可以对postgresql进行大版本的升级。命令很简单pg_upgrade --help一下就知道怎么使用了。简单说下具体过程吧。
1、先下载安装一个新版本。
2、用pg_upgrade -c -d oldCluster/data -D newCluster/data -b oldCluster/bin -B newCluster/bin -p oldport -P newport 测试下是否可以升级不会做实际的替换的。出错的话会产生一个文件loadable_libraries.txt。根据文件中内容找出报错原因,我遇到的是
Could not load library "$libdir/adminpack"
ERROR: could not access file "$libdir/adminpack": 没有那个文件或目录
Could not load library "$libdir/pageinspect"
ERROR: could not access file "$libdir/pageinspect": 没有那个文件或目录
Could not load library "$libdir/pg_stat_statements"
ERROR: could not access file "$libdir/pg_stat_statements": 没有那个文件或目录
这个是问题是我新版的pg没有装这三个插件,装上后执行
pg_upgrade -d oldCluster/data -D newCluster/data -b oldCluster/bin -B newCluster/bin -p oldport -P newport
完成后执行analyze_new_cluster.sh和delete_old_cluster.sh。