PostgreSQL 安装与读写分离配置
来源:互联网 发布:为什么优酷提示没网络 编辑:程序博客网 时间:2024/06/07 04:11
版权声明:本文为博主原创文章,未经博主允许不得转载。
-
前言
本博客的内容主要是对PostgreSQL关系型数据库的安装与读写分离配置进行详细的介绍,并且介绍了安装过程与配置过程中遇到的问题。安装与配置采用的是Centos系统环境,采用rpm手动安装方式(解决yum不能用问题)。PostgreSQL9.0版本以后增加了Stream模式(流式)的主从复制,提供了在主从复制过程中可读的功能,本文配置过程中采用的PostgreSQL版本为9.5。
-
PostgreSQL安装
本部分主要介绍 PostgreSQL数据库的基本安装方法,无论是否进行主从复制进行读写分离都可以采用此部分介绍的方法进行PostgreSQL数据库的搭建。
1. PostgreSQL数据库rpm依赖包下载
1.1 rpm下载地址
PostgreSQL关系型数据库的常用Rpm依赖包下载地址为“https://yum.postgresql.org/9.5/redhat/rhel-6-x86_64/”,其中参数“9.5”代表PostgreSQL版本号,“redhat”代表系统,“rhel-6-x86_64”代表系统类型。具体下载地址需要根据机型进行更改。
1.1.2 PostgresSQL-9.5基本rpm包下载命令
根据具体的业务功能需要,选择安装不同的依赖rpm包。此次安装只安装四个基本依赖。具体安装的依赖包(如表1.1所示)。
“wget https://yum.postgresql.org/9.5/redhat/rhel-6-x86_64/postgresql95-server-9.5.4-2PGDG.rhel6.x86_64.rpm”。
表1.1 PostgreSQL 依赖包
1 postgresql95-server-9.5.4-2PGDG.rhel6.x86_64.rpm 2 postgresql95-libs-9.5.4-2PGDG.rhel6.x86_64.rpm 3 postgresql95-contrib-9.5.4-2PGDG.rhel6.x86_64.rpm 4 postgresql95-9.5.4-2PGDG.rhel6.x86_64.rpm
1.2 rpm包安装
由于包之前存在其余依赖,所以需要忽略依赖的强制安装方式,安装命令为“rpm -i --force –nodeps [包名]”。四个依赖包之间存在先后安装顺序为:
1)postgresql95-libs-9.5.4-2PGDG.rhel6.x86_64.rpm
2)postgresql95-9.5.4-2PGDG.rhel6.x86_64.rpm
3)postgresql95-server-9.5.4-2PGDG.rhel6.x86_64.rpm
4)postgresql95-contrib-9.5.4-2PGDG.rhel6.x86_64.rpm
1.3 初始化PostgreSQL数据库
PostgreSQL数据库安装后不进行初始化是无法启动的,因为初始化会进行PostgreSQL数据库基本配置文件的生成,未初始化之前配置文件是不存在的。初始化命令为:“service postgresql-9.5 initdb”
1.4 启动PostgreSQL数据库
此时PoatgreSQL数据库已经基本安装完成,如果没有特殊配置需求的可以进行PostgreSQL的启动了,启动命令为:“service postgresql-9.5 start”。
启动过程中还可能会遇到“localhost”域名无法解决解析问题,此问题没有进行针对性解决,因为后面配置了远程链接,不进行localhost域名的监听。再此提出一种出现此问题原因的可能性,就是本地host文件中未对localhost进行映射,所以无法进行解析,是否正确还需要读者进行亲自验证,期待您的反馈。
-
PostgreSQL配置远程连接
2.1 配置postgresql.conf文件
此文件为PostgreSQL数据库的基本配置文件,需要进行数据库初始化后才能出现。通过此文件配置PostgreSql数据库的监听端口配置。将/var/lib/pgsql/9.5/data/postgresql.conf文件中的listen_addresses 参数修改为“listen_addresses ='*'”,默认为监听localhost。
2.2 配置pg_hba.conf文件
通过此文件配置远程连接的用户验证方式,以及配置允许的远程ip。可以根据具体情况进行不同的添加,本文将/var/lib/pgsql/9.5/data/pg_hba.conf文件参数进行修改,添加“host all all 0.0.0.0/0 trust”。
-
PostgreSQL配置主从流复制
配置主从复制服务器过程中需要注意,PostgreSQL数据库在主从服务器上都需要进行安装,采用上述安装方式就行。但是主服务器与从服务器的初始化过程不同,主服务器需要初始化,从服务器不需要初始化,从服务器的基本配置信息是通过从主服务器拉取得到的,否则无法正常启动。
3.1 主从服务器基本信息
本次配置中采用两台服务器进行主从配置,分别为:
Master Server:***
数据库版本:PostgreSQL9.5
端口:5432
数据库的数据目录: /var/lib/pgsql/9.5/data
Standby Server:******
数据库版本:PostgreSQL9.5
端口:5433
数据库的数据目录: /var/lib/pgsql/9.5/data/
3.2 主服务器配置
3.2.1 配置postgresql.conf文件
wal_level = hot_standby
max_wal_senders = 2
wal_keep_segments = 32
3.2.2 配置pg_hba.conf文件
host replication postgres *****/32 md5
3.2.3 重启主数据库
service postgresql-9.5 restart
3.3 从服务器配置
3.3.1 复制备库
通过pg_basebackup进行一步到位的主数据库配置同步。
命令为:pg_basebackup -F p --progress -D /var/lib/pgsql/9.5/data -h "ip" -p 5432 -U replica –password
3.3.2 文件授权
文件复制过来文件用户与权限可能与主服务器不同,通过命令“chown -R [用户] [文件名]”进行所属用户的授权,授权命令样例:
chown -R postgres.postgres data
chmod -R 777 data
3.3.3 配置postgresql.conf文件
port=5432
hot_standby = on
并注释掉wal_level max_wal_senders和wal_keep_segments的设置
3.3.4 拷贝并配置recovery.conf
#cp /usr/pgsql-9.5/share/recovery.conf.sample /var/lib/pgsql/9.5/data/recovery.conf
配置如下内容:
standby_mode = on
primary_conninfo = ‘host=*** port=5432 user=postgres password=psql’
trigger_file = ‘/var/lib/pgsql/9.5/trigger_activestandby’
3.3.5 删除从主数据库中过来的postmaster.pid文件,然后启动从数据库
#rm /var/lib/pgsql/9.5/data/postmaster.pid
#service postgresql-9.5 start
-
PostgreSQL数据库常用命令
4.1 PostgreSQL常用SQL命令
PostgreSQL常用SQL命令
4.2 PostgreSQL其余常用命令
4.2.1 tgreSQL启动与停止服务命令:
启动服务:service postgresql start
重启服务:service postgresql restart
停止服务:service postgresql stop
4.2.2 PstgreSQL连接命令:
用户名:postgres
密码:psql
连接命令:sudo -s -u postgres
4.2.2 PstgreSQL数据导入导出命令:
导出命令:pg_dump -h ip -U postgres -w -t annual_hr_2016_temp3 test >/root/postgresql/data/*.sql
导入命令:psql -h ip -U postgres -w -t test </root/postgresql/data/*.sql
-
安装过程中用到的centos命令于rpm命令
-
总结
本文详细介绍了PostgerSQL数据库的安装与主从配置,并把常用的sql命令,rmp命令,centos命令进行了总结与归纳,如有不详细的地方期待您的反馈。
- PostgreSQL 安装与读写分离配置
- 主从读写分离----mysql-proxy0.8.5安装与配置
- Postgresql 安装与配置
- Postgresql 安装与配置 .
- 【PostgreSQL】PostgreSQL读写分离之Hot Standby
- MySQL Proxy 安装与读写分离体验
- MySQL Proxy 安装与读写分离体验
- MySQL Proxy 安装与读写分离体验
- MySQL Proxy 安装与读写分离体验
- MySQL Proxy 安装与读写分离体验
- MySQL Proxy 安装与读写分离体验
- postgresql的安装与配置
- PostgreSQL安装与配置介绍
- yii2读写分离配置
- yii2读写分离配置
- yii2读写分离配置
- yii2读写分离配置
- yii2读写分离配置
- mongoDB 分片的管理
- Android okhttp+rxjava实现多文件下载和断点续传
- Apache和Tomcat区别
- Nginx是什么?Nginx介绍及Nginx的优点
- 一致性hash算法
- PostgreSQL 安装与读写分离配置
- 一文搞定hive之insert into 和 insert overwrite与数据分区
- Struts2启动问题:ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
- 大数据前言
- 轻松搞定virtualbox虚拟机安装centos系统集群
- c 点滴
- 断点续传 进度条 开 始 暂停 继续的简单按钮实现
- Tor
- 关于Android7.0及以上版本FileUriExposedException的问题