在CentOS上升级PostgreSQL版本,可以按照以下步骤进行:
备份数据 在进行任何升级操作之前,请务必备份您的数据库数据。
更新系统包
sudo yum update -y
添加PostgreSQL官方仓库
编辑/etc/yum.repos.d/pgdg.repo文件,添加以下内容:
[pgdg96]
name=PostgreSQL 9.6 repository
baseurl=https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
enabled=1
gpgcheck=1
gpgkey=https://www.postgresql.org/media/keys/ACCC4CF8.asc
请根据您需要的PostgreSQL版本调整baseurl中的版本号。
安装最新版本的PostgreSQL
sudo yum install postgresql13-server -y
初始化数据库集群 如果是新安装的PostgreSQL,需要初始化数据库集群:
sudo postgresql-setup --initdb
启动并启用PostgreSQL服务
sudo systemctl start postgresql-13
sudo systemctl enable postgresql-13
迁移数据
使用pg_dumpall备份所有数据库,并使用psql恢复到新版本:
sudo pg_dumpall -U postgres > all_databases.sql
sudo systemctl stop postgresql-13
sudo yum remove postgresql-12-server -y
sudo yum install postgresql13-server -y
sudo systemctl start postgresql-13
sudo psql -U postgres -f all_databases.sql
卸载旧版本
sudo yum remove postgresql\* -y
下载并编译安装新版本
wget https://download.postgresql.org/pub/source/v13.3/postgresql-13.3.tar.gz
tar xzf postgresql-13.3.tar.gz
cd postgresql-13.3
./configure --prefix=/usr/local/pgsql --with-includes=/usr/include/postgresql --with-libraries=/usr/lib64
make
sudo make install
初始化数据库集群
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
启动并启用服务 创建一个systemd服务文件:
sudo vi /etc/systemd/system/postgresql.service
添加以下内容:
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
User=postgres
ExecStart=/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
启动并启用服务:
sudo systemctl start postgresql
sudo systemctl enable postgresql
迁移数据
使用pg_dumpall备份所有数据库,并使用psql恢复到新版本:
/usr/local/pgsql/bin/pg_dumpall -U postgres > all_databases.sql
/usr/local/pgsql/bin/psql -U postgres -f all_databases.sql
通过以上步骤,您应该能够成功地在CentOS上升级PostgreSQL版本。