本文将介绍 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
标签: 技巧
⇠ OnlyFans开始禁止色情视频 印度议会委员会要求印度政府禁止VPN服务 ⇢

GFW VPN

提供vpn服务,针对中国互联网用户,完全可以突破GFW的封锁. 经过了长期测试,运行非常的稳定.

Send Mail

注册账号