温馨提示×

centos如何升级postgresql版本

小樊
43
2025-10-17 21:56:28
栏目: 云计算

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

方法一:使用yum仓库升级

  1. 备份数据 在进行任何升级操作之前,请务必备份您的数据库数据。

  2. 更新系统包

    sudo yum update -y
    
  3. 添加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中的版本号。

  4. 安装最新版本的PostgreSQL

    sudo yum install postgresql13-server -y
    
  5. 初始化数据库集群 如果是新安装的PostgreSQL,需要初始化数据库集群:

    sudo postgresql-setup --initdb
    
  6. 启动并启用PostgreSQL服务

    sudo systemctl start postgresql-13
    sudo systemctl enable postgresql-13
    
  7. 迁移数据 使用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
    

方法二:手动编译安装

  1. 卸载旧版本

    sudo yum remove postgresql\* -y
    
  2. 下载并编译安装新版本

    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
    
  3. 初始化数据库集群

    /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
    
  4. 启动并启用服务 创建一个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
    
  5. 迁移数据 使用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
    

注意事项

  • 升级过程中可能会遇到依赖问题,确保所有依赖包都已正确安装。
  • 在生产环境中进行升级前,建议先在测试环境中进行验证。
  • 升级后,检查PostgreSQL的日志文件以确保没有错误。

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

0