centos

centos postgresql如何升级版本

小樊
37
2025-08-15 00:12:52
栏目: 云计算

在CentOS上升级PostgreSQL版本,可以按照以下步骤进行:

方法一:使用yum包管理器

  1. 备份数据库 在进行任何升级操作之前,请确保备份所有重要的数据库数据。

    sudo pg_dumpall -U postgres > backup.sql
    
  2. 移除旧版本 使用yum移除当前的PostgreSQL包。

    sudo yum remove postgresql-server postgresql-contrib
    
  3. 添加新的PostgreSQL仓库 根据你想要的PostgreSQL版本,添加相应的EPEL或Remi仓库。

    • 对于PostgreSQL 12:
      sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
      sudo yum-config-manager --add-repo https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
      
    • 对于PostgreSQL 13:
      sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/RPMS/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
      sudo yum-config-manager --add-repo https://download.postgresql.org/pub/repos/yum/reporpms/RPMS/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
      
  4. 安装新版本 使用yum安装你想要的PostgreSQL版本。

    sudo yum install postgresql12-server postgresql12-contrib  # 替换为所需版本号
    
  5. 初始化数据库集群 如果是新安装的版本,需要初始化数据库集群。

    sudo postgresql-setup initdb
    
  6. 启动并启用服务 启动PostgreSQL服务并设置为开机自启。

    sudo systemctl start postgresql-12  # 替换为所需版本号
    sudo systemctl enable postgresql-12
    
  7. 恢复数据库 使用之前备份的数据恢复数据库。

    sudo psql -U postgres -f backup.sql
    

方法二:使用pg_upgrade工具

如果你需要从较旧的版本直接升级到较新的版本(例如从9.x到12.x),可以使用pg_upgrade工具。

  1. 安装新版本的PostgreSQL 按照方法一中的步骤安装新版本的PostgreSQL。

  2. 停止旧版本服务

    sudo systemctl stop postgresql
    
  3. 运行pg_upgrade

    sudo /usr/pgsql-12/bin/pg_upgrade \
      --old-datadir=/var/lib/pgsql/9.6/data \
      --new-datadir=/var/lib/pgsql/12/data \
      --old-bindir=/usr/bin \
      --new-bindir=/usr/pgsql-12/bin \
      --old-sysctl=-1 \
      --new-sysctl=-1
    
  4. 重新配置initdb

    sudo /usr/pgsql-12/bin/initdb -D /var/lib/pgsql/12/data
    
  5. 重启新版本服务

    sudo systemctl start postgresql-12
    
  6. 验证升级 连接到新版本的PostgreSQL并检查版本。

    psql -U postgres -c "SELECT version();"
    

注意事项

通过以上步骤,你应该能够成功地在CentOS上升级PostgreSQL版本。

0
看了该问题的人还看了