其他分享
首页 > 其他分享> > postgres主从,安装postgis

postgres主从,安装postgis

作者:互联网

Postgresql 9.5

主服务 : 192.168.1.129

从服务器:192.168.1.131

安装

进入https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/找到目标操作系统适配的数据库Yum Repository,部署版本为centos7,PostgreSQL 9.5,postgis2.4

设置变量

ip_master='192.168.1.129'
ip_slave='192.168.1.131'

指定Yum Repository

##如能连外网可之间按照yum源
yum install -y https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y pgdg-redhat-repo-latest.noarch.rpm

安装软件包

yum install -y postgresql95-9.5.25-1PGDG.rhel7.x86_64.rpm
yum install -y postgresql95-server-9.5.25-1PGDG.rhel7.x86_64.rpm

yum install postgis* -y

初始化数据库,并指定目录

vi /etc/init.d/postgresql-9.5
#修改为如下内容

PGDATA=/data/postgres/data
PGLOG=/data/postgres/logs/pgstartup.log

先创建目录

mkdir -p /data/postgres/data
mkdir -p /data/postgres/pg_archive
mkdir -p /data/postgres/logs

改变属主

chown -R postgres.postgres /data/postgres
su - postgres

执行初始化

/usr/pgsql-9.5/bin/initdb -D /data/postgres/data exit

修改目录PGDATA

vi  /usr/lib/systemd/system/postgresql-9.5.service

PGDATA=/data/postgres/data

主库配置:

修改postgresql.conf文件
sudo vim /data/postgres/data/postgresql.conf

data_directory = '/data/postgres/data'
hba_file = '/data/postgres/data/pg_hba.conf'
listen_addresses = '*'
port = 5432
max_connections = 500                        #从库要比主库大
shared_buffers = 4096MB                    #一般为服务器内存的10%-25%
work_mem = 64MB                         
maintenance_work_mem = 512MB            #日常操作占用最大内存
wal_level = hot_standby                         #热备                             
checkpoint_completion_target = 0.9
archive_mode = on                          #开启归档
archive_command = 'cp %p /data/postgres/pg_archive%f'       #归档目录synchronous_commit = local     #本地同步级别
max_wal_senders = 2    #两台服务器
wal_keep_segments = 10240
wal_sender_timeout = 60s
log_directory = '/data/postgres/logs'   #日志路径
log_filename = 'pg-%Y-%m-%d.log'
log_file_mode = 0600
log_rotation_age = 1d
log_line_prefix = '%m %p %u %d %r %e '
hot_standby = on

修改pg_hba.conf文件添加以下配置

sudo vim /data/postgres/data/pg_hba.conf

host    all             all             0.0.0.0/0               md5
host    all             all             192.168.1.131/32       md5
host    replication     repl        192.168.1.129/32       md5
host    replication     repl        192.168.1.131/32       md5

重启Postgresql

systemctl daemon-reload
systemctl start postgresql-9.5
systemctl enable postgresql-9.5

首先需要 登录postgresql

sudo -u postgres psql

设置postgres密码

ALTER USER postgres WITH PASSWORD 'postgres@#1yla26';

创建用于复制的用户replica

create role repl login replication encrypted password 'postgres@#1yla26';

主服务器配置结束--------END

从服务器配置

初始化数据库,并指定目录

vi /etc/init.d/postgresql-9.5
#修改为如下内容
PGDATA=/data/postgres/data
PGLOG=/data/postgres/logs/pgstartup.log

先创建目录

mkdir -p /data/postgres/data
mkdir -p /data/postgres/pg_archive
mkdir -p /data/postgres/logs

改变属主

chown -R postgres.postgres /data/postgres
su - postgres

执行初始化

/usr/pgsql-9.5/bin/initdb -D /data/postgres/data

修改目录PGDATA

vi  /usr/lib/systemd/system/postgresql-9.5.service

PGDATA=/data/postgres/data

启动pg

systemctl daemon-reload
systemctl start postgresql-9.5

将数据从主机复制到从机【重点】

要从主服务器同步到从服务器,从服务器上的PostgreSQL主目录必须由主服务器的主目录替换。 在从服务器中,登录postgres用户

备份实际数据库目录:

su - postgres
rm -rf  /data/postgres/data/*
su - postgres
cd  /data/postgres/data

停止postgresql

systemctl stop postgresql-9.5

使用pg_basebackupR将主目录从主服务器复制到从服务器:(要输入密码repl)

su - postgres
pg_basebackup -h 192.168.1.129 -U repl -D /data/postgres/data/ -P

修改postgresql.conf文件

vi /data/postgres/data/postgresql.conf

data_directory = '/data/postgres/data'
hba_file = '/data/postgres/data/pg_hba.conf'
listen_addresses = '*'
port = 5432
max_connections = 1000                        #从库要比主库大
shared_buffers = 4096MB                    #一般为服务器内存的10%-25%
work_mem = 64MB                         
maintenance_work_mem = 512MB            #日常操作占用最大内存
wal_level = hot_standby                         #热备                             
checkpoint_completion_target = 0.9
archive_mode = on                          #开启归档
archive_command = 'cp %p /data/postgres/pg_archive%f'       #归档目录synchronous_commit = local     #本地同步级别
max_wal_senders = 2    #两台服务器
wal_keep_segments = 10240
wal_sender_timeout = 60s
log_directory = '/data/postgres/logs'   #日志路径
log_filename = 'pg-%Y-%m-%d.log'
log_file_mode = 0600
log_rotation_age = 1d
log_line_prefix = '%m %p %u %d %r %e '
hot_standby = on

在主目录中创建一个新的recovery.conf文件,并粘贴以下内容:

vi /data/postgres/data/recovery.conf

standby_mode = on
primary_conninfo = 'host=192.168.1.129 port=5432 user=repl password=postgres@#1yla26'
trigger_file = '/tmp/postgresql.trigger.5432'

从服务配置结束。

systemctl start postgresql-9.5
systemctl enable postgresql-9.5

验证

主服务登录验证:

myubtu@ubuntu:/home$ sudo -u postgres psql
[sudo] password for myubtu: 
psql (9.5.2)
Type "help" for help.

postgres=# select client_addr,sync_state from pg_stat_replication;
  client_addr   | sync_state 
----------------+------------
 192.168.1.131 | async
(1 row)

postgres=# select pg_is_in_recovery();

pg_is_in_recovery 

 f
(1 row)

出现 192.168.1.131 | async 表示成功!!!

postgre 9.5对应的postgis版本为2.4,安装前需要确认postgis的版本

安装工具包

yum install -y wget net-tools epel-release

安装postgis

yum install -y postgis24_95-2.4.9-3.rhel7.x86_64.rpm
yum install -y postgis24_95-client-2.4.9-3.rhel7.x86_64.rpm

安装拓展工具

yum -y install ogr_fdw_95-1.1.0-1.rhel7.x86_64.rpm
yum -y install pgrouting_95-2.6.1-1.rhel7.1.x86_64.rpm 

创建postgis数据库

CREATE DATABASE postgis OWNER postgres;

切换新创建的database

\c postgis

安装PostGis扩展

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

然后可以验证是否安装成功

SELECT postgis_full_version();

创建新的数据库及用户

需要先切换到postgres用户下

创建用户postgis

create user postgis createdb;

修改密码

alter user postgis password 'pgsf13dfds4efds';

创建数据库

create database postgisdb owner postgis;

将postgisdb数据库的所有权限都赋予postgis

grant all privileges on database postgisdb to postgis;

进入postgisdb数据库

\c postgisdb

安装postgis扩展

CREATE EXTENSION postgis;

如果按照扩展故障,一般为版本不兼容,请尝试其他版本postgis插件版本

标签:postgresql,postgres,postgis,pg,9.5,data,主从
来源: https://www.cnblogs.com/wes1502/p/postgres-zhu-cong-an-zhuangpostgis.html