然后:
% pg_dumpall -s >db.out不带任何数据输出你的旧数据库的表定义。
停止旧的 postmaster 和所有后端的运行。
把你的旧的 pgsql data/ 目录改成(用 mv )data.old/。
运行
% make install安装新的二进制文件。
运行 initdb 为新版本创建新的包含系统表的 template1 数据库。
运行新的 postmaster。(注意:在数据库升级完成前不能有用户与数据库联接。你可能需要不带 -i 参数启动 postmaster 和/或暂时修改 pg_hba.conf。)
把你的工作目录改到 pgsql 主目录,然后键入:
% pg_upgrade -f db.out data.old该程序会做一些检查以确保所有东西都正确配置好了,然后就会运行你的 db.out 脚本创建你原来有的数据库和表,但是没有数据。然后它将把那些不含系统表和索引的文件物理地从 data.old/ 移到合适的 data/ 子目录里,代替在运行 db.out 脚本时创建的空文件。
如果需要的话恢复你的旧的 pg_hba.conf,以允许用户登录。
停止然后重起 postmaster。
仔细检查升级完了的表的内容。如果发现问题,你将需要通过从你的完全 pg_dump 的备份重新装载来恢复。如果你觉得满意,你可以删除 data.old/ 目录。
升级完的数据库将是处于未清理的状态。你在开始生产工作前可能需要运行一个 VACUUM ANALYZE。