未加星标

Ubuntu 16.04 下 PostgreSQL 主从复制配置

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二05 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

Ubuntu 16.04 下 PostgreSQL 主从复制配置
PostgreSQL数据库系统

PostgreSQL 是一个高级开源的对象关系数据库管理系统(或ORDBMS)。 它是一个可扩展和高度可扩展的数据库系统,这意味着它可以处理从单机应用程序到企业Web服务与许多并发用户的负载。 PostgreSQL是符合ACID的(Atomicity,Consistency,Isolation,Durability)。

它支持SQL标准的很大一部分,并提供了许多功能,包括:

复杂查询 外键 触发器 可更新视图 交易完整性 多分支并发控制

如前所述,PostgreSQL数据库系统可以由其用户进行扩展。 有不同的方法可以做到这一点,例如添加新功能,操作符,数据类型,索引方法,过程语言等。

它由PostgreSQL Global Development Group开发,并根据PostgreSQL许可证的条款发布。

PostgreSQL提供了许多复制数据库的方法。 在本教程中,我们将配置主/从复制,这是通过从服务器(主)上的数据库复制到另一个服务器(从属)上的数据库来同步两个数据库之间的数据的过程。

这个配置将在运行Ubuntu 16.04的服务器上完成。

先决条件

Ubuntu 16.04服务器上安装了PostgreSQL 9.6

配置UFW

UFW(或简单防火墙)是在Ubuntu系统上管理基于iptables的防火墙的工具。 通过apt通过执行:安装它(在两台服务器上)

# apt-get install -y ufw

接下来,将PostgreSQL和SSH服务添加到防火墙。 为此,执行:

# ufw allow ssh
# ufw allow postgresql

启用防火墙:

# ufw enable 配置PostgreSQL主服务器

主服务器将具有对数据库的读写权限,并且将具有对从服务器进行数据流传输的能力。

使用文本编辑器,编辑PostgreSQL主配置文件,即 /etc/postgresql/9.6/main/postgresql.conf :

# $EDITOR /etc/postgresql/9.6/main/postgresql.conf

取消注释listen_addresses行并编辑添加主服务器IP地址:

listen_addresses = 'master_server_IP_address'

接下来,取消注释wal_level行改变其值:

wal_level = hot_standby

要使用本地同步进行同步级别,请取消注释并编辑以下行:

synchronous_commit = local

我们正在使用两台服务器,所以取消注释并编辑两行如下:

max_wal_senders = 2
wal_keep_segments = 10

保存并关闭文件。

编辑pg_hba.conf文件以进行身份验证配置。

# $EDITOR /etc/postgresql/9.6/main/pg_hba.conf Paste the following configuration:
# Localhost
host replication replica 127.0.0.1/32 md5
# PostgreSQL Master IP address
host replication replica master_IP_address/32 md5
# PostgreSQL SLave IP address
host replication replica slave_IP_address/32 md5

保存,退出并重启PostgreSQL:

# systemctl restart postgresql 创建用于复制的用户

为复制过程创建一个新的PostgreSQL用户。 登录postgres用户并启动PostgreSQL shell ::

# su - postgres
$ psql

创建一个新用户:

postgres=# CREATE USER replica REPLICATION LOGIN ENCRYPTED PASSWORD 'usr_strong_pwd';

关闭shell.

主服务器配置结束。

配置从服务器

从服务器将不具有对数据库的写入权限,因为它的唯一功能是从主机接受流式传输。 所以它只有READ权限。

首先,停止PostgreSQL服务:

# systemctl stop postgresql

编辑PostgreSQL主配置文件:

# $EDITOR /etc/postgresql/9.6/main/postgresql.conf

在此文件中,取消注释listen_addresses行并更改其值:。

listen_addresses = 'slave_IP_address'

接下来,取消对wal_level行的注释,更改如下:

wal_level = hot_standby

如在主设置中,取消注释sync_commit行以使用本地同步。

synchronous_commit = local

同样在master中,取消注释并编辑以下两行:

max_wal_senders = 2
wal_keep_segments = 10

通过取消注释以下行并更改其值,启用从服务器的hot_standby:

hot_standby = on

保存并退出。

将数据从主机复制到从机

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

# su - postgres

备份实际的数据目录:

/var/lib/postgresql/9.6/
$ mv main main_bak

创建一个新的主目录:

$ mkdir main/

更改权限:

$ chmod 700 main

此时,使用pg_basebackup将主目录从主服务器复制到从服务器:

# pg_basebackup -h master_IP_address -U replica -D /var/lib/postgresql/9.6/main -P --xlog

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

standby_mode = 'on'
primary_conninfo = 'host=10.0.15.10 port=5432 user=replica password=usr_strong_pwd'
trigger_file = '/tmp/postgresql.trigger.5432'

保存,退出并更改此文件的权限:

# chmod 600 recovery.conf

启动PostgreSQL:

# systemctl start postgresql

从服务器配置到此结束。

总结

通过使用运行Ubuntu 16.04的两台服务器,我们已经了解了如何配置PostgreSQL主/从机复制。 这只是该高级和全开源数据库系统提供的许多复制功能之一。

Ubuntu 16.04 下安装 PostgreSQL 和phpPgAdmin http://www.linuxidc.com/Linux/2016-08/134260.htm

Linux下RPM包方式安装PostgreSQL http://www.codesec.net/Linux/2016-03/128906.htm

Linux下安装PostgreSQL http://www.codesec.net/Linux/2016-12/138765.htm

Linux下PostgreSQL安装部署指南 http://www.codesec.net/Linux/2016-11/137603.htm

Linux下安装 PostgreSQL 并设置基本参数 http://www.codesec.net/Linux/2016-11/137324.htm

Fedota 24 将数据库升级到 PostgreSQL 9.5 http://www.codesec.net/Linux/2016-11/137374.htm

CentOS 6.5下PostgreSQL服务部署 http://www.codesec.net/Linux/2017-01/139144.htm

MongoDB 的详细介绍 : 请点这里

MongoDB 的下载地址 : 请点这里

本文地址 : http://www.codesec.net/Linux/2017-08/146190.htm

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

分页:12
转载请注明
本文标题:Ubuntu 16.04 下 PostgreSQL 主从复制配置
本站链接:http://www.codesec.net/view/561365.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(13)