PostgreSQL 升级大版本的详细步骤和注意事项

升级大版本是一个相对复杂的过程,须要慎重操作,以下是详尽的步骤和注意事项:

postgresql升级_大版本升级(PostgreSQL)

(图片来源网路,侵删)

1、备份数据

在进行任何升级操作之前,务必备份所有重要数据,可以使用命令进行备份。

2、检查兼容性

在升级之前,须要查看官方文档,了解新版本与现有版本的兼容性,确保新版本支持现有的功能和扩充。

3、停止服务

在升级之前,须要停止服务,可以使用以下命令:

sudo systemctl stop postgresql

4、下载并解压新版本

从官方网站下载最新版本的源代码包,之后解压到一个目录中。

wget https://ftp.postgresql.org/pub/source/v13.0/postgresql13.0.tar.gztar xzf postgresql13.0.tar.gzcd postgresql13.0

5、配置编译选项

在解压后的目录中,运行脚本以配置编译选项。

./configure prefix=/usr/local/pgsql withlibxml withlibxslt withopenssl withzlib withpython

6、编译并安装

使用make和make命令编译并安装新版本的。

make && make install

7、创建一个新的数据目录和配置文件目录

在新版本的安装目录下,创建一个新的数据目录和配置文件目录。

sudo mkdir /usr/local/pgsql/data13 && sudo chown postgres:postgres /usr/local/pgsql/data13sudo mkdir /usr/local/pgsql/conf13 && sudo chown postgres:postgres /usr/local/pgsql/conf13

8、复制旧数据到新目录

将旧版本的数据文件复制到新创建的数据目录中。

sudo cp R /var/lib/postgresql/12/* /usr/local/pgsql/data13/

9、修改配置文件

复制旧版本的配置文件到新创建的配置文件目录中,并按照须要进行更改。

sudo cp /var/lib/postgresql/12/main/postgresql.conf /usr/local/pgsql/conf13/postgresql.confsudo cp /var/lib/postgresql/12/main/pg_hba.conf /usr/local/pgsql/conf13/pg_hba.confsudo cp /var/lib/postgresql/12/main/pg_ident.conf /usr/local/pgsql/conf13/pg_ident.conf

10、修改数据目录权限

更改新数据目录的权限,使其只能被用户访问。

sudo chown R postgres:postgres /usr/local/pgsql/data13 && sudo chmod R 700 /usr/local/pgsql/data13

11、创建启动脚本链接

创建一个指向新版本启动脚本的软链接。

sudo ln s /usr/local/pgsql/bin/* /usr/local/bin/* && sudo chmod +x /usr/local/bin/*

12、初始化数据库集群

使用新版本的命令初始化数据库集群

sudo /usr/local/pgsql/bin/initdb D /usr/local/pgsql/data13 U postgres auth=trust encoding=UTF8 locale=en_US.UTF8 nolocale=C preload=yes sync=normal username=postgres groupname=postgres createrole=yes replication=database template=template0 dbname=postgres port=5432 command='config_file=${PGDATA}/postgresql.conf' authhost=md5 authpeer=md5 authclient=md5 pam_type=md5 syslog=0 debug=all superuser=postgres createdb=postgres allowconnections=true listenaddresses='*' unix_socket_directories='*' unix_socket_permissions=0700 unix_socket_owner=postgres unix_socket_group=postgres log_directory='' log_filename='' log_statement='all' log_timezone='America/New_York' log_error_verbosity='VERBOSE' log_destination='stderr' log_duration='on' log_connections='on' log_disconnections='on' log_checkpoints='on' log_lock_waits='on' log_temp_files='on' log_autovacuum='on' log_vacuum_threshold='500' log_statement='all' log_duration='on' log_connections='on' log_disconnections='on' log_checkpoints='on' log_lock_waits='on' log_temp_files='on' log_autovacuum='on' log_vacuum_threshold='500' > /dev/null 2>&1 &

13、启动服务并设置开机自启动

使用新版本的命令启动服务,并设置为开机自启动。

sudo /usr/local/pgsql/bin/pg_ctl D /usr/local/pgsql/data13 l logfile start && sudo systemctl enable postgresql@13main && sudo systemctl start postgresql@13main && sudo systemctl status postgresql@13main | grep active && echo "PostgreSQL upgraded successfully." || echo "PostgreSQL upgrade failed." && exit 1;

至此,大版本升级完成。

相关新闻

QQ渠道

技术支持:QQ2854399

关注公众号
关注公众号
微信客服
返回顶部