PostgreSql 学习笔记二 CentOS下postgres升级

环境

CentOS7
原版本:
psql -version
psql (9.2.14)
准备升级到9.4版本

操作步骤

完整备份Postgresql

-bash-4.2$ pg_dump -U postgres whr_info_db>whr_info_db_bak.copy.sql; 这句使用copy备份,可以不运行。
-bash-4.2$ pg_dump -U postgres --column-inserts whr_info_db>whr_info_db_bak.insert.sql;

备份的文件位置是在:
/var/lib/pgsql

安装新版本(这一步操作后面遇到问题,这里作记录,但不要使用此步骤)

查找资源

到http://yum.postgresql.org

wget http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-2.noarch.rpm
rpm -ivh ./pgdg-centos94-9.4-2.noarch.rpm

确定目前正在运行的包。运行

rpm -qa | grep postgre
这里写图片描述
yum list postgres* | grep 94
如果yum资源无法连接,则可运行命令:
yum install yum-plugin-fastestmirror 自动寻找最快的镜像。
PostgreSql 学习笔记二 CentOS下postgres升级_第1张图片
yum install postgresql94.x86_64 postgresql94-server.x86_64 postgresql94-libs.x86_64 postgresql94-contrib.x86_64 postgresql94-devel.x86_64

这时它的安装位置可以通过命令查询到:
这里写图片描述
/usr/pgsql-9.4

运行upgrade

停止sudo systemctl stop postgresql

删除现有postgresql

rpm -qa | grep postgresql
把找到的包全部删除
yum remove postgresql*

再运行安装命令:
yum install postgresql94-server

数据位置:
/var/lib/pgsql/9.4/data

初始化

运行:
service postgresql-9.4 initdb
当然这句很可能会失败,则运行:
/usr/pgsql-9.4/bin/postgresql94-setup initdb
chkconfig postgresql-9.4 on

参照http://blog.csdn.net/xundh/article/details/50037353#t1修改配置:
PostgreSql 学习笔记二 CentOS下postgres升级_第2张图片
这里路径要改为/var/lib/pgsql/9.4/data/pg_hba.conf

设置允许远程访问:

修改/var/lib/pgsql/9.4/data/pg_hba.conf

在该配置文件的host all all 127.0.0.1/32 md5行下添加以下配置,或者直接将这一行修改为以下配置

host all all 0.0.0.0/0 md5

service postgresql-9.4 start

还原数据

           sudo su - postgres
-bash-4.2$ psql
创建用户用色
postgres=# CREATE USER whr_info WITH PASSWORD '123456';
postgres=# CREATE DATABASE whr_info_db OWNER whr_info;
postgres=# GRANT ALL PRIVILEGES ON DATABASE whr_info_db to whr_info;
postgres=# \q
-bash-4.2$ psql -d whr_info_db -U postgres -f whr_info_db_bak.insert.sql

参考: http://www.uptimemadeeasy.com/databases/upgrade-postgresql/
9.4文档:http://www.postgresql.org/docs/9.4/static/

你可能感兴趣的:(DB-Database)