PostgreSQL 9.4 流复制主备搭建

更新时间:2024-05-27 18:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

CentOS 6.6_x64搭建PostgreSQL 9.4流复制环境

环境介绍: ServerHostname Node1 Node2

一.安装两台CentOS 6.6_x64,并更改主机名、配置网络、关闭防火墙。 二.两台主机间实现无密key访问。

1. 节点一生成公钥和私钥

# ssh-keygen(过程中出现三个需要输入的地方直接按回车键)

Network 10.10.10.193/24 10.10.10.194/24 Application Master server Slave server Account root 1qaz!QAZ

此时在.ssh目录下生成了id_rsa和id_rsa.pub。其中id_rsa是私钥,本机要用;id_rsa.pub是公钥,给其他的机器用。 2. 将公钥上传到远程主机上

按照提示输入远程主机(10.10.10.194)的密码后,可看到上传成功的提示:

3. 登录远程主机,将客户端公钥写入authorized_keys文件

[root@node1 .ssh]# ssh 10.10.10.194

root@10.10.10.194's password:

Last login: Tue Nov 17 14:24:30 2015 from 10.10.10.1 [root@node2 ~]# cd /root/.ssh [root@node2 .ssh]# ls id_rsa.pub

[root@node2 .ssh]# cat id_rsa.pub >> authorized_keys

此时可在node2机器的.ssh目录下看到两个文件authorized_keys和id_rsa.pub。其中id_rsa.pub的主要目的就是把公钥信息写到authorized_keys中。然后把两台主机中的id_rsa.pub都删除掉,否则这台机器将无法不用密码登录别的机器。 4. 此时在node1上可直接ssh node2

5. 若要实现两台linux主机之间的无密码登录,只需把上述的两台主机对调一下再操

作一遍即可。 参考链接:

http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=7654720&id=4236912 三.两台主机在线安装postgresql9.4,并初始化数据库。

1. 通过yum安装,获取PostgreSQL官方的yum源

wget

http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-2.noarch.rpm

2. 安装PostgreSQL官方的yum源

# rpm -ihv pgdg-centos94-9.4-2.noarch.rpm

3. 安装PostgreSQL数据库

# yum -y install postgresql94 postgresql94-server

4. 设置用户postgres密码(密码也为postgres)

# passwd postgres 5. 修改PostgreSQL脚本名称为psql

# mv /etc/init.d/postgresql-9.4 /etc/init.d/psql 6. 初始化数据库

# service psql initdb

四.MasterServer(Node1)配置

1. 启动数据库服务,并设置开机启动

# service psql start # chkconfig psql on 2. 关闭数据库服务

# service psql stop

以下修改PG的配置文件

3. 修改postgresql.conf文件

# vi /var/lib/pgsql/9.4/data/postgresql.conf 修改如下内容:

listen_addresses = '*' wal_level = hot_standby archive_mode = on

archive_command = 'rsync -av %p postgres@10.10.10.194:archive/%f' archive_timeout = 300 max_wal_senders = 1 wal_keep_segments = 300

4. 修改pg_hba.conf文件

# vi /var/lib/pgsql/9.4/data/pg_hba.conf 最后一行添加内容如下:

host replication postgres 10.10.10.0/24 trust 如果使用GUI客户端工具登陆数据库,再添加如下内容: host all postgres 10.10.10.0/24 trust

五.SlaveServer(Node1)配置

1. 确保psql服务停掉

2. 修改postgresql.conf文件

# vi /var/lib/pgsql/9.4/data/postgresql.conf

修改内容如下: listen_addresses = '*' hot_standby = on

修改pg_hba.conf文件,如果使用GUI客户端工具登陆数据库,添加如下内容: host all postgres 10.10.10.0/24 trust

3. 创建recovery.conf文件

# vi /var/lib/pgsql/9.4/data/recovery.conf 输入如下内容:

restore_command = 'cp /var/lib/pgsql/archive/%f %p' standby_mode = 'on'

primary_conninfo = 'host=10.10.10.193 port=5432 user=postgres password=postgres' 4. 创建archive目录,并授权

# mkdir /var/lib/pgsql/archive

# chmod 777 /var/lib/pgsql/archive/

六.MasterServer(Node1)备份数据并归档

1. 启动数据库服务

# service psql start

2. 切换postgres用户,并登陆数据库

# su – postgres $ psql -d postgres

3. 备份数据库

# select pg_start_backup('base');

4. CRT工具克隆新会话,进行归档、同步数据

进入到/var/lib/pgsql/9.4/data/目录,执行命令:

# rsync -av --exclude postmaster.pid --exclude postgresql.conf --exclude pg_ident.conf

--exclude pg_hba.conf /var/lib/pgsql/9.4/data/* 10.10.10.194:/var/lib/pgsql/9.4/data/

执行结果如下:

5. 返回到备份会话,停止备份。

# select pg_stop_backup();

七.SlaveServer(Node2)启动数据库并开机启动

# service psql start # chkconfig psql on

八.使用GUI工具Navicat Premium连接数据库验证是否同步。

1. 连接MaserServer

本文来源:https://www.bwwdw.com/article/0477.html

Top