温馨提示×

如何在CentOS中升级PostgreSQL

小樊
36
2025-12-05 22:52:22
栏目: 云计算

在CentOS中升级PostgreSQL的步骤如下:

方法一:使用yum仓库升级

  1. 备份数据库 在进行任何升级之前,强烈建议先备份你的数据库。

    pg_dumpall -U postgres > /path/to/backup/all_databases.sql
    
  2. 更新yum仓库 确保你的yum仓库是最新的。

    sudo yum update
    
  3. 添加PostgreSQL官方仓库 如果你还没有添加PostgreSQL的官方仓库,可以按照以下步骤操作:

    sudo tee /etc/yum.repos.d/pgdg.repo <<EOF
    

[pgdg96] name=PostgreSQL $releasever - $basearch 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 EOF


4. **安装最新版本的PostgreSQL**
```bash
sudo yum install postgresql13-server
  1. 初始化数据库集群 如果是新安装的PostgreSQL,需要初始化数据库集群。

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

    sudo systemctl start postgresql-13
    sudo systemctl enable postgresql-13
    
  3. 升级数据库 使用pg_upgrade工具来升级现有的数据库。

    /usr/pgsql-13/bin/pg_upgrade \
      --old-datadir=/var/lib/pgsql/9.6/data \
      --new-datadir=/var/lib/pgsql/13/data \
      --old-bindir=/usr/bin \
      --new-bindir=/usr/pgsql-13/bin \
      --old-sysctl=-1 \
      --new-sysctl=-1
    
  4. 重启PostgreSQL服务 升级完成后,重启PostgreSQL服务以应用更改。

    sudo systemctl restart postgresql-13
    

方法二:使用源码编译升级

如果你需要更灵活的控制或者yum仓库中没有你需要的版本,可以考虑从源码编译安装。

  1. 备份数据库 同方法一。

  2. 下载并解压新版本的PostgreSQL源码

    wget https://ftp.postgresql.org/pub/source/v13.6/postgresql-13.6.tar.gz
    tar -zxvf postgresql-13.6.tar.gz
    cd postgresql-13.6
    
  3. 安装依赖包

    sudo yum install -y readline-devel zlib-devel
    
  4. 编译并安装

    ./configure --prefix=/usr/local/pgsql-13
    make
    sudo make install
    
  5. 初始化新的数据目录

    sudo mkdir /var/lib/pgsql/13/data
    sudo chown postgres:postgres /var/lib/pgsql/13/data
    sudo /usr/local/pgsql-13/bin/initdb -D /var/lib/pgsql/13/data
    
  6. 停止旧版本的PostgreSQL服务

    sudo systemctl stop postgresql-9.6
    
  7. 迁移数据 使用pg_dumpall导出数据,并使用psql导入到新版本的数据目录。

    sudo -u postgres /usr/local/pgsql-13/bin/pg_dumpall > /tmp/all_databases.sql
    sudo -u postgres /usr/local/pgsql-13/bin/psql -d postgres -f /tmp/all_databases.sql
    
  8. 启动新版本的PostgreSQL服务

    sudo systemctl start postgresql-13
    
  9. 清理旧版本 删除旧版本的PostgreSQL安装和数据目录。

    sudo yum remove postgresql96-server
    sudo rm -rf /var/lib/pgsql/9.6
    sudo rm -rf /usr/lib64/pgsql
    

注意事项

  • 在升级过程中,确保数据库服务是停止的,以避免数据损坏。
  • 升级前后的版本兼容性很重要,确保新版本与你的应用程序兼容。
  • 如果使用源码编译安装,可能需要手动配置环境变量和路径。

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

0