本文将介绍 PostgreSQL 数据库从 9.x 版本升级到 11.x 版本。升级 PostgreSQL 时 可以把新版本的 Postgres 安装到新的目录,并使用执行 pg_upgrade 命令来完成数据迁移。使用 pg_upgrade 的好处是,不需要手动备份和恢复,因为该工具会自动将数据目录复制到新的版本。
1.停止旧版本的 postgres 服务
2.安装新版本的 postgres
3.停止新版 postgres 服务
4. 修改 pg_hba.conf
将 新版和旧版的 postgres 客户端认证文件(pg_hba.conf)的 所有 method 修改为 trust
如下所示:
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
5. 运行 pg_upgrade
以管理员身份执行下面的命令
C:\Program Files\PostgreSQL\11\bin\pg_upgrade.exe -U postgres --old-bindir="C:\Program Files\PostgreSQL\9.6\bin" --new-bindir="C:\Program Files\PostgreSQL\11\bin" --old-datadir="C:\Program Files\PostgreSQL\9.6\data" --new-datadir="C:\Program Files\PostgreSQL\11\data" --old-port="5432" --new-port="5433"
-U:用户名
–old-bindir:旧版 PostgreSQL 可执行文件目录
–new-bindir:新版 PostgreSQL 可执行文件目录
–old-datadir:旧版 PostgreSQL 数据库配置目录
–new-datadir:新版 PostgreSQL 数据库配置目录
–old-port:旧版 PostgreSQL 端口
–new-port:新版 PostgreSQL 端口
6. 确认与清理
如果升级成功,将显示以下内容。
Upgrade Complete
----------------
Optimizer statistics are not transferred by pg_upgrade so,
once you start the new server, consider running:
analyze_new_cluster.bat
Running this script will delete the old cluster's data files:
delete_old_cluster.bat
恢复 pg_hba.conf 文件的设置。
启动 pg_upgrade 创建的 analyze_new_cluster.bat 批处理文件,处理需要一些时间。
analyze_new_cluster.bat
如果不需要旧版的数据库,可以使用 delete_old_cluster.bat 来删除旧的数据库。
delete_old_cluster.bat
相关文章
使用git commit --fixup修改之前的提交
使用git commit --amend可以简单的修改前一条记录,但是不能修改前面第 N 次提交记录,这个时候使用git commit --fixup可以修改前面的提交第 N 次记录。
如何在中国注册观看奈飞(Netflix)
喜欢追美剧的网友可能听说过“奈飞”(Netflix)这个平台。奈飞到底是什么?在中国能看奈飞吗?看奈飞需要翻墙吗?如何注册奈飞账号?
为什么用ipv6连接vpn更快
提升 IPv6 端到端贯通能力,对持续提升 IPv6 活跃用户和网络流量规模有着重要意义。发展基于 IPv6 的下一代互联网,也为 5G、数据中心等新型基础设施建设奠定基础,更为未来发展大规模的物联网、工业互联网开拓网络空间,搭建基础环境。