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