将数据库从版本 9 迁移到 10
本节介绍如何将 PostgreSQL 数据库从版本 9 升级到版本 10。如果您已在使用 PostgreSQL 10,则无需进行此迁移。
如果您要升级到最新的 SUSE Manager 版本,则当前使用的必须是 PostgreSQL 版本 10 或 12。如果使用的版本较早(如版本 9.6),在开始 SUSE Manager 迁移前必须将 PostgreSQL 迁移到版本 10。
如果您在 SUSE Manager 3.2 上运行 PostgreSQL 9.4,请参见产品文档,网址: https://documentation.suse.com/external-tree/en-us/suma/3.2/susemanager-best-practices/html/book.suma.best.practices/bp.sp.migration.html#sp.migration.postgresql。PostgreSQL 9.4 无法直接迁移到版本 10。 |
1. 准备升级
在开始升级前,准备现有 SUSE Manager 服务器并创建数据库备份。
PostgreSQL 将数据储存在 /var/lib/pgsql/data/
中。
-
检查活动 PostgreSQL 版本:
psql --version
如果您使用的是 PostgreSQL 9.6,则可升级到 PostgreSQL 10。
如果您已在使用 PostgreSQL 10,则无需进行此迁移。
-
检查活动 smdba 版本:
rpm -q smdba
PostgreSQL 10 需要
smdba
1.6.2 或更高版本。 -
备份数据库。 有关备份的详细信息,请参见 Backup and Restore。
2. 升级 PostgreSQL
在每次进行迁移前都需创建数据库备份。 |
升级 PostgreSQL 的方式有两种:常规升级或快速升级:
常规升级会创建完整的数据库副本,因此需要两倍于现有数据库大小的可用空间。常规升级可能需要大量时间,具体取决于数据库大小和储存系统的速度。
快速升级只需要几分钟时间,并且几乎不会使用额外的磁盘空间。但是,如果快速升级失败,则必须通过备份来恢复数据库。快速升级可降低磁盘空间耗尽的风险。常规升级会复制数据库文件,而不是在文件之间创建硬链接。
PostgreSQL 将数据储存在 /var/lib/pgsql/data/
中。
-
备份数据库。 有关备份的详细信息,请参见 Backup and Restore。
-
开始升级:
/usr/lib/susemanager/bin/pg-migrate-96-to-10.sh
-
升级成功完成后,您便可以放心删除旧数据库目录,并回收用掉的磁盘空间。 旧目录会重命名为
/var/lib/pgsql/data-pg96
。
pg-migrate-96-to-10.sh
脚本会执行以下操作:
-
停止 spacewalk 服务
-
关闭正在运行的数据库
-
检查是否安装了 PostgreSQL 10,并根据需要安装
-
从 PostgreSQL 9.6 切换到 PostgreSQL 10(作为新的默认数据库)
-
发起数据库迁移
-
创建已针对 SUSE Manager 优化的 PostgreSQL 配置文件
-
启动数据库和 spacewalk 服务
如果升级失败,迁移脚本会尝试将数据库恢复其原始状态。 |
-
备份数据库。 如果没有已经过校验的数据库备份,切勿开始快速升级。有关备份的详细信息,请参见 Backup and Restore。
-
开始升级:
/usr/lib/susemanager/bin/pg-migrate-96-to-10.sh fast
-
升级成功完成后,您便可以放心删除旧数据库目录,并回收用掉的磁盘空间。 旧目录会重命名为
/var/lib/pgsql/data-pg96
。