
1、升级工具
在程序的bin目录下,提供了很多的数据库工具,有一个pg_upgrade的工具就是专门用于数据库升级的。关于该工具可以使用帮助命令来查看具体的用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
帮助文件中,提到了使用pg_upgrade工具前,必须创建一个新的数据库,并且是已经初始化的,同时关闭原来的数据库和新的数据库。使用pg_upgrade时候,必须要加上前后版本的data目录和bin目录。
2、升级过程
首先确认的是,原来的数据库版本是pg9.6,数据目录在/data/pgdata。然后,安装完pg10.5后,不要初始化目录。
将原来的9.6版本数据目录重命名为pgdata.old
1 |
|
在/data/下创建一个pgdata目录,作为新版本的数据库数据目录,需要注意的是,这个目录权限是700,owner是postgres
1 2 3 4 |
|
使用pg10.5的initdb初始化/data/pgdata目录
1 |
|
进行升级check,注意后面加上-c,这一步只是检查不会实际执行升级。所有项都是ok即认为是可以升级。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
执行升级。即在上一步去掉-c,需要注意的是这一步根据数据库的大小执行时间长短不一,执行完毕后会产生两个脚本analyze_new_cluster.sh和delete_old_cluster.sh,根据实际需要来进行执行,一般都会执行第一个脚本,第二个不建议执行,以防需要回滚升级,保留原来的数据目录比较保险。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
执行脚本前,需要先启动数据库pg_ctl -D /data/pgdata start
1 2 3 4 5 6 7 8 9 |
|
执行脚本./analyze_new_cluster.sh ,从运行日志来看,主要是创建统计信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
至此,查看version,发现已经由原来的9.6升级为10.5,升级结束。
1 2 3 4 5 |
|
Python学习网,大量的免费PostgreSQL入门教程,欢迎在线学习!