標籤:
前言:
postgresql的升級方式有兩種 一種是使用 pg_dumpall 備份後 匯入至新版本即可。
另一種就是本文使用pg_upgrade方式升級 是從檔案層級將 老的資料庫檔案 複製至新的版本中
注意:
升級前請備份重要資料 最好在測試環境測試後再升級
環境:
系統: centos6.x x86 已安裝 postgresql 9.3
升級步驟:
首先安裝postgresql 9.4
一 、安裝9.4的yum源
yum install -y http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm
二、安裝postgresql 9.4
yum install -y postgresql94-server postgresql94-contrib
初始化資料庫
/etc/init.d/postgresql-9.4 initdb
三、開始升級
首先 需要關掉postgresql9.3
/etc/init.d/postgresql-9.3 stop
切換至postgres 使用者
su - postgres
執行升級命令
/usr/pgsql-9.4//bin/pg_upgrade -v -d /var/lib/pgsql/9.3/data/ -D /var/lib/pgsql/9.4/data/ -b /usr/pgsql-9.3/bin/ -B /usr/pgsql-9.4/bin/
選項: -b 老版本bin目錄
-B 新版本目錄
-d 老版本data目錄
-D 新版本data目錄
升級成功後會提示如下資訊:
Upgrade Complete----------------Optimizer statistics are not transferred by pg_upgrade so,once you start the new server, consider running: analyze_new_cluster.shRunning this script will delete the old cluster‘s data files: delete_old_cluster.sh
切換到root 啟動9.4
/etc/init.d/postgresql-9.4 start
切換到postgres 執行如下指令碼
sh analyze_new_cluster.sh
刪除老版本資料目錄(可選)
sh delete_old_cluster.sh
最後:
資料的升級到此就結束了,不過若你更改過pg_hba.conf 或者其它設定檔 別忘記去新版本中更改
參考: http://www.postgresql.org/docs/9.4/static/pgupgrade.html
pg_dumpall 升級見: http://www.postgresql.org/docs/9.4/static/upgrading.html
postgresql 源: http://yum.postgresql.org/repopackages.php
postgresql 9.3 安裝見 http://my.oschina.net/firxiao/blog/295027
postgresql 9.3 升級至 9.4