溫馨提示×

Ubuntu PostgreSQL版本升級指南

小樊
54
2025-09-11 00:54:32
欄目: 云計算

Ubuntu PostgreSQL版本升級指南

一、準備工作

  1. 備份數據:使用pg_dumpall命令備份所有數據庫,如sudo -u postgres pg_dumpall > /path/to/backup.sql。
  2. 檢查當前版本:通過sudo -u postgres psql -c "SELECT version();"查看當前版本。
  3. 確認兼容性:大版本升級需查閱官方文檔,確保新版本與舊版本兼容。

二、小版本升級(如14.5→14.7)

  1. 更新軟件包
    • 添加官方倉庫(若未添加):
      sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
      sudo apt update
      
    • 安裝新版本:sudo apt install postgresql-<小版本號>。
  2. 重啟服務sudo systemctl restart postgresql。

三、大版本升級(如14.x→15.x)

  1. 安裝新版本
    • 添加官方倉庫(若未添加):
      sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
      sudo apt update
      
    • 安裝新版本,如sudo apt install postgresql-15。
  2. 停止舊服務sudo systemctl stop postgresql。
  3. 初始化新數據庫sudo /usr/lib/postgresql/15/bin/pg_ctl initdb -D /var/lib/postgresql/15/main/。
  4. 遷移數據
    • 方法一:使用pg_upgrade(推薦,快速)
      • 檢查兼容性:sudo -u postgres /usr/lib/postgresql/15/bin/pg_upgrade --old-bindir /usr/lib/postgresql/14/bin --new-bindir /usr/lib/postgresql/15/bin --old-datadir /var/lib/postgresql/14/main --new-datadir /var/lib/postgresql/15/main --check。
      • 執行升級:sudo -u postgres /usr/lib/postgresql/15/bin/pg_upgrade --old-bindir /usr/lib/postgresql/14/bin --new-bindir /usr/lib/postgresql/15/bin --old-datadir /var/lib/postgresql/14/main --new-datadir /var/lib/postgresql/15/main --link。
      • 更新統計信息:sudo -u postgres /usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages。
    • 方法二:邏輯轉儲(安全,跨版本兼容)
      • 導出數據:sudo -u postgres pg_dumpall -f /path/to/backup.sql。
      • 創建新數據庫集群并導入數據。
  5. 配置新版本:復制舊配置文件到新目錄并修改(如端口等)。
  6. 啟動新服務sudo systemctl start postgresql@15-main。
  7. 驗證升級sudo -u postgres psql -p <新端口> -c "SELECT version();"。

四、注意事項

  • 確保新數據目錄權限正確。
  • 升級后需重新安裝擴展。
  • 檢查日志文件/var/log/postgresql/postgresql-<版本>-main.log。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女