ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

postgres主从,安装postgis

2022-07-07 16:39:43  阅读:210  来源: 互联网

标签:postgresql postgres postgis pg 9.5 data 主从


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有