入门教程之:PgSQL Streaming同步

作者:袖梨 2022-06-29

下面简单介绍一下PostgreSQL9.1同步步骤。

安装及配置PgSQL9.1

在这里把node1作为PgSQL Master服务器,node2作为PgSQL Slave服务器。

1. yum安装

执行命令服务器:node1,node2

# wget -P /usr/local/src http://yum.postgresql.org/9.1/redhat/rhel-5-x86_64/pgdg-#centos91-9.1-4.noarch.rpm
# rpm -ivh /usr/local/src/pgdg-centos91-9.1-4.noarch.rpm
# yum install postgresql91 postgresql91-devel postgresql91-libs postgresql91-server postgresql91-docs
2. 数据库的初始化

执行命令服务器:node1

# service postgresql-9.1 initdb --encoding=UTF8
Initializing database:                                     [  OK  ]
Data directory is not empty!

如出现以上错误,删除PgSQL所有的数据。

# cd /var/lib/pgsql/9.1/data
# rm -fr *
3. 配置postgresql.conf

postgresql.conf是最重要的配置文件(跟MySQL的my.cnf一样),在这里只配置Streaming同步相关的几个参数。

执行命令服务器:node1

# vi /var/lib/pgsql/9.1/data/postgresql.conf
修改以下4个参数。
----
listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 2
hot_standby = on
----
4. 配置pg_hda.conf

执行命令服务器:node1

# vi /var/lib/pgsql/9.1/data/pg_hda.conf
追加以下2行(★追加)
----
# TYPE  DATABASE    USER        ADDRESS         METHOD
local   all         all                         trust
# IPv4-style local connections:
host    all         all         127.0.0.1/32    trust
host    all         all           trust    ★追加
host    all         all           trust    ★追加
# IPv6 local connections:
host    all     all             ::1/128         trust
----
5. 创建Streaming同步用户

启动Master的PgSQL以后,创建同步时使用的用户。

执行命令服务器:node1

# service postgresql-9.1 start
# su - postgres
$ psql
CREATE ROLE repluser LOGIN REPLICATION PASSWORD 'zabbixcc';
q
6. 从Master服务器获取数据

执行命令服务器:node2

# cd /var/lib/pgsql/9.1/data/
# rm -rf *
# su - postgres
$ pg_basebackup -D /var/lib/pgsql/9.1/data/ -x -P -h  -U repluser
7. 配置recovery.conf

执行命令服务器:node2

# cp -p /usr/pgsql-9.1/share/recovery.conf.sample /var/lib/pgsql/9.1/data/recovery.conf
# vi /var/lib/pgsql/9.1/data/recovery.conf
修改以下2个参数。
----
standby_mode = on
primary_conninfo = 'host= port=5432 user=repluser password=zabbixcc'
----
配置以后启动,node2的PgSQL。

# service postgresql-9.1 start
8. 配置开机启动

执行命令服务器:node1,node2

# chkconfig postgresql-9.1 on
确认Streaming同步

1. 插入数据(Master)

执行命令服务器:node1

$ psql
CREATE TABLE tbl (id int);
INSERT INTO tbl VALUES (1), (2);
SELECT * FROM tbl;
q
2. 查看数据(Slave)

查看在Master插入的数据,有没有同步到Slave。

执行命令服务器:node2

$ psql
SELECT * FROM tbl;
q

相关文章

精彩推荐