postgresql的升級方式有兩種 一種是使用 pg_dumpall 備份後 導入至新版本便可。php
另外一種就是本文使用pg_upgrade方式升級 是從文件級別將 老的數據庫文件 複製至新的版本中 html
升級前請備份重要數據 最好在測試環境測試後再升級 sql
系統: centos6.x x86 已安裝 postgresql 9.3 shell
首先安裝postgresql 9.4數據庫
yum install -y \ http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm
yum install -y postgresql94-server postgresql94-contrib
初始化數據庫centos
/etc/init.d/postgresql-9.4 initdb
首先 須要關掉postgresql9.3 ide
/etc/init.d/postgresql-9.3 stop
切換至postgres 用戶post
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目錄this
-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.sh Running 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