响应式模板网站建设,公司部门撤销员工不愿转岗怎么办,广西关键词优化公司,wordpress数据库链接地址前言
PostgreSQL 的版本号由主要版本号和次要版本号组成。例如#xff0c;在 10.1 中#xff0c;10 是主要版本#xff0c;1 是次要版本。关于更多版本的规划#xff0c;请参考 PostgreSQL 版本路线图。
版本号规则#xff1a;
PostgreSQL 10 及以后#xff1a;版本号…前言
PostgreSQL 的版本号由主要版本号和次要版本号组成。例如在 10.1 中10 是主要版本1 是次要版本。关于更多版本的规划请参考 PostgreSQL 版本路线图。
版本号规则
PostgreSQL 10 及以后版本号采用 X.Y 形式如 10.111.2其中 X 为主要版本Y 为次要版本。PostgreSQL 10 之前版本号采用 X.Y.Z 形式如 9.5.3其中 X.Y 为主要版本如 9.5Z 为次要版本如 3。
升级规则
次要版本升级如 10.1 → 10.69.5.3 → 9.5.6 数据存储格式保持不变可直接替换可执行文件并重启例如直接下载替换 /usr/local/pgsql/bin 下的 postgres 相关二进制文件。主要版本升级如 9.5 → 9.610 → 11 数据格式可能变化通常需要数据导出/导入但 pg_upgrade 可简化这一过程。 pg_upgrade
pg_upgrade原 pg_migrator用于快速升级 PostgreSQL 主要版本避免传统数据导出/导入的繁琐操作。例如
支持升级9.5.8 → 9.6.410.7 → 11.2不需要 pg_upgrade9.6.2 → 9.6.310.1 → 10.2仅次要版本升级
工作原理
主要版本升级可能更改系统表结构但通常不会改变数据存储格式。pg_upgrade 通过创建新系统表并重用旧用户数据实现高效升级。若未来版本彻底更改数据存储格式则 pg_upgrade 可能无法支持该升级。
兼容性要求
确保旧版与新版二进制兼容如 32/64 位设置。扩展插件需自行检查是否兼容pg_upgrade 无法自动验证。
支持范围 pg_upgrade 可用于 PostgreSQL 8.4 及以上版本包括 beta 版本。
升级流程
真实生产环境 pgsql 9.3 版本升级到 pgsql 10 升级操作流程记录。
安装新版本并初始化
$ #/usr/pgsql-10/bin/postgresql-10-setup initdb停止旧版本的数据库
$ kill -INT head -1 /var/lib/pgsql/9.3/data/postmaster.pid切换至postgres用户
$ su - postgrespg_upgrade 检查数据库兼容性
$ /usr/pgsql-10/bin/pg_upgrade \-b /usr/pgsql-9.3/bin/ \-B /usr/pgsql-10/bin/ \-d /var/lib/pgsql/9.3/data/ \-D /var/lib/pgsql/10/data/ \-k -c如果检查失败会看到 Failure 或 Warning 相关信息可能的错误包括
数据类型不兼容外部插件或扩展不兼容索引、表、用户权限问题不同 PostgreSQL 版本间的 OID 变化
如果 pg_upgrade 检查没有报错检查项 ok就可以继续执行实际升级命令。
pg_upgrade参数说明
-b 旧的 PostgreSQL 可执行目录 -B 新的 PostgreSQL 可执行目录 -d 旧的数据库集群配置目录 -D 新的数据库集群配置目录 -c 仅检查集群不要更改任何数据 -k 使用硬链接而不是将文件复制到新集群
pg_upgrade 执行升级
$ /usr/pgsql-10/bin/pg_upgrade \-b /usr/pgsql-9.3/bin/ \-B /usr/pgsql-10/bin/ \-d /var/lib/pgsql/9.3/data/ \-D /var/lib/pgsql/10/data/升级完毕退出 postgres 用户
$ exit调整配置文件
如果 pg_hba.conf、postgresql.conf 或 postgresql.auto.conf 进行了修改请手动调整新版本的配置。
启动新版本数据库
$ systemctl enable postgresql-10.service
$ systemctl start postgresql-10.service
# 或重启服务
# systemctl restart postgresql-10.service检查 PostgreSQL 版本
$ psql --version总结
通过本文中的详细步骤可以轻松实现 PostgreSQL 的主要版本升级利用 pg_upgrade 工具无需手动导出和导入数据大大简化了升级过程。
在进行生产环境的 PostgreSQL 升级时确保平稳过渡是至关重要的。升级过程中可能会出现许多潜在问题因此建议通过搭建测试环境来模拟升级过程并在确认一切正常后再执行生产环境的升级
希望这篇文章对你有帮助如果你有任何疑问欢迎在评论区留言我们一起探讨更多 PostgreSQL 使用技巧