生产环境postgresql主从环境配置

主从服务器IP:

192.168.11.131 postgreSQL master

192.168.11.132 postgreSQL slave

服务器系统版本:

# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 7.2 (Maipo)

PG版本:

系统默认9.2

1、安装软件、配置环境变量

主从服务器:

# yum install postgresql -y

# yum install postgresql-server -y

# mkdir /data/pg_data

# chown postgres:postgres /data/pg_data

# vi /etc/profile

export PGDATA=/data/pg_data

# source /etc/profile

主服务器:

2、初始化数据库、启动数据库服务并设置为开机启动

# initdb -D /data/pg_data

注意:

-D是指定数据存放目录,默认情况下是存放在/var/lib/pgsql/data目录下,但是生产环境通常有单独的数据存放分区。

# su postgres

bash-4.2$ pg_ctl -D /data/pg_data start

bash-4.2$ exit

# vi /etc/rc.d/rc.local

/usr/bin/postgres -D /data/pg_data

3、创建同步用户

# su postgres

bash-4.2$ psql

postgres=# create role repuser login replication encrypted password 'password123';

postgres=# \q

注意:

这里创建的用户是repuser,密码是password123,你可以根据需要随意配置。

4、修改配置文件pg_hba.conf、postgresql.conf

bash-4.2$ vi /data/pg_data/pg_hba.conf

host    replication     repuser            192.168.11.0/8             md5

host    all             all             192.168.11.0/8              trust

bash-4.2$ vi /data/pg_data/postgresql.conf

添加下面配置,配置文件有下面配置的要删除(包括前边有警号'#'的)

listen_addresses = '192.168.11.131'

wal_level = hot_standby

max_wal_senders= 6

wal_keep_segments = 10240

max_connections = 512

archive_mode = on

archive_command = 'cp %p /data/pg_data/pg_archive/%f'

注意:

这里的配置archive_command需要根据实际配置做出改变。

重启使配置生效

bash-4.2$ pg_ctl -D /data/pg_data restart

从服务器:

5、同步数据

bash-4.2$ pg_basebackup -h 192.168.11.131 -U repuser -D /data/pg_data -X stream -P

Password:

36413/36413 kB (100%), 1/1 tablespace

6、修改配置文件recovery.conf、postgresql.conf

bash-4.2$ cp /usr/share/pgsql/recovery.conf.sample /data/pg_data/recovery.conf

bash-4.2$ vi /data/pg_data/recovery.conf

添加下面配置,配置文件有下面配置的要删除(包括前边有警号'#'的)

standby_mode = on

primary_conninfo = 'host=192.168.11.131 port=5432 user=repuser password=password123 keepalives_idle=60'

recovery_target_timeline = 'latest

注意:

这里的user就是之前创建的同步数据的用户,密码也是响应的密码。

bash-4.2$ vi /data/pg_data/postgresql.conf

添加下面配置,配置文件有下面配置的要删除(包括前边有警号'#'的)

listen_addresses = '192.168.11.132'

wal_level = hot_standby

max_connections = 1000

hot_standby = on

max_standby_streaming_delay = 30s

wal_receiver_status_interval = 10s

hot_standby_feedback = on

bash-4.2$ exit

7、启动服务并设置开机启动

# chmod 700 /data/pg_data

# vi /etc/rc.d/rc.local

/usr/bin/postgres -D /data/pg_data

# su postgres

bash-4.2$ pg_ctl -D /data/pg_data start

8、验证

主服务器:

bash-4.2$ psql

postgres=# select client_addr,sync_state from pg_stat_replication;

client_addr  | sync_state

--------------+------------

192.168.11.132 | async

postgres=# create database test;

CREATE DATABASE

postgres=# \l

List of databases

Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

|          |          |             |             | postgres=CTc/postgres

template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

|          |          |             |             | postgres=CTc/postgres

test      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

(4 rows)

从服务器:

# su postgres

bash-4.2$ psql

postgres=# \l

List of databases

Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

|          |          |             |             | postgres=CTc/postgres

template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

|          |          |             |             | postgres=CTc/postgres

test      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

(4 rows)

9、创建数据库、访问用户并给数据库赋权

主服务器

postgres=# create user pgone with password 'password321';

CREATE ROLE

postgres=# create database pgdata owner pgone;

CREATE DATABASE

postgres=# grant all privileges on database pgdata to pgone;

GRANT

参考:

https://www.cnblogs.com/sunshine-long/p/9059695.html

原文地址:http://blog.51cto.com/xiaoxiaozhou/2147385

时间: 2024-10-26 06:32:58

生产环境postgresql主从环境配置的相关文章

VUE 利用webpack 给生产环境和发布环境配置不同的接口地址

第一步,分别设置不同的接口地址 首先,我们分别找到下面的文件: /config/dev.env.js /config/prod.env.js 其实,这两个文件就是针对生产环境和发布环境设置不同参数的文件.我们打开dev.en.js文件.代码如下: var merge = require('webpack-merge') var prodEnv = require('./prod.env') module.exports = merge(prodEnv, { NODE_ENV: '"develop

vue cli脚手架项目利用webpack给生产环境和发布环境配置不同的接口地址或者不同的变量值。

废话不多说,直接进入正题,此文以配置不同的接口域名地址为例子 项目根目录下有一个config文件夹,基础项目的话里面至少包括三个文件, 1.dev.env.js 2.index.js 3.prod.env.js 我们需要做配置的就是第一个和第三个. 其实这两个文件内容就是针对生产环境和发布环境设置不同的参数的文件,那么打开dev.en.js,开发环境.原本代码如下: 'use strict' const merge = require('webpack-merge') const prodEnv

spring boot--日志、开发和生产环境切换、自定义配置

Spring Boot日志常用配置: # 日志输出的地址:Spring Boot默认并没有进行文件输出,只在控制台中进行了打印 logging.file=/home/zhou # 日志级别 debug-> info -> warning -> error # 默认级别为 info # 如果设置了debug=true的时候,日志级别会自动降低为debug # ROOT代表默认全局设置 logging.level.ROOT=INFO # 可以设置指定包的输出级别,这样的话,指定的包,级别以下

Kubernetes二进制方式v1.13.2生产环境的安装与配置(HTTPS+RBAC) ?

Kubernetes二进制方式v1.13.2生产环境的安装与配置(HTTPS+RBAC) 一 背景 由于众所周知的原因,在国内无法直接访问Google的服务.二进制包由于其下载方便.灵活定制而深受广大kubernetes使用者喜爱,成为企业部署生产环境比较流行的方式之一,Kubernetes v1.13.2是目前的最新版本.安装部署过程可能比较复杂.繁琐,因此在安装过程中尽可能将操作步骤脚本话.文中涉及到的脚本已经通过本人测试. 二 环境及架构图 2.1 软件环境 OS(最小化安装版): cat

生产环境Linux二进制安装配置MySQL

生产环境Linux二进制安装配置MySQL 一.环境检查rpm -qa |grep libaio #如果没有安装libaio则需要安装.df -hmount /dev/sr0 /mnt二.安装过程1)上传安装程序通过FTP/SFTP上传安装包2)创建创用户,组,创建目录groupadd mysqluseradd -r -g mysql -s /bin/false mysqlmkdir -p /mysql/data/3306/data这里的3306是MySQL默认端口号,/mysql/data目录

vue cli3配置开发环境、测试环境、生产(线上)环境

cli3创建vue项目是精简版的少了build和config这2个文件,所以配置开发环境.测试环境.生产环境的话需要自己创建env文件. 需要注意2点: 1.cli2创建项目生成的config文件里的env文件是js后缀 2.cli3创建自定义env文件的话不需要js后缀 下面开始创建配置: 一.直接在你项目的根目录创建三个文件(注意都没有后缀,直接创建新文件):.env.development (开发环境) .env.test(测试环境).env.production(生产环境) .env.d

Linux centos5.6版本下mysql5.6主从环境安装配置

MySQL数据库支持数据库的主从复制功能,因此在集群方面具有其独特的优势,国内外大型网站架构体系中,均采用了MySQL的主从数据库配置来实现查询负载.数据库热备等功能.本人在此将如何配置实现做了个简单小结. 服务器配置,具体iP,主从库如下 主库 IP:192.168.1.189 master server 从库 IP:192.168.1.188 slave server 服务器系统为:centos5.6,下载安装软件包具体包括如下 MySQL-client-5.6.13-1.linux_gli

redis持久化策略梳理及主从环境下的策略调整记录

redis是一个内存数据库,它的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为"半持久化模式"):也可以把每一次数据变化都写入到一个Append Only File(AOF)里面(这称为"完全持久化模式").redis提供了两种不同级别的持久化方式:一种是默认的RDB(filesnapshotting快照)持久化,一种是AOF持久化,这两种持久化方式都可以将内存中的数据库状态保存到磁盘上,但是原理非常不同,区别很明显! 1.RDB持久化可以在

CentOS7.X安装部署mysql5.7主从环境

生产搭建环境:操作系统:CentOS7.5内存大小:32GB硬盘:500G主库IP:192.168.8.129 hostname:master从库IP:192.168.8.130 hostname:slave 涉及主从都需要执行的地方,文中只写主库的操作指使,从库请自觉执行相同的命令 目录:1.环境准备与清理2.参数调优3.安装部署 1.系统初始化1.1.1. 主从库环境关闭selinux [[email protected]]# sed -i 's/SELINUX=enforcing/SELI