文档库 最新最全的文档下载
当前位置:文档库 › PostgreSQL Active Standby系统的配置搭建和容灾切换_part1

PostgreSQL Active Standby系统的配置搭建和容灾切换_part1

变更记录Version History

Copyright Information

? 2011 by GLORYSOFT

All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system without written permission from GLORYSOFT, except for the inclusion of brief quotations in a review.

Information contained in this document has been obtained by GLORYSOFT from sources believed to be reliable. However, because of the possibility of human or mechanical error by our sources, GLORYSOFT does not guarantee the accuracy, adequacy, or completeness of any information and is not responsible for any errors or omissions or the results obtained from the use of such information.

MES PostgreSQL数据库在两台主机上Active Standby 系统的配置搭建和容灾切换

2012年6月

QQ: 80184001

目录

Copyright Information (2)

1. 硬件架构图 (5)

2. 软硬件配置信息 (7)

2.1 服务器配置信息 (7)

2.2 Linux和PostgreSQL数据库信息 (7)

3. DB数据文件和备份存储空间规划 (8)

3.1 共享存储RAID阵列准备 (8)

3.2共享磁盘的数据分区划分规划 (8)

4. Centos6.0 Linux系统的安装 (8)

5. Postgresql Active standby系统高可用性概述 (10)

5.1 Postgresql Active Standby系统高可用性概述 (10)

6.PostgreSQLPrimary-Standby数据库的配置 (11)

6.1主备机器上postgresql数据库软件安装 (11)

6.1.1备注 (13)

6.1.2 主库上表空间的创建 (16)

6.2主数据库上的配置 (18)

6.3 Standby 数据库上的配置 (24)

6.4 测试主库和备库的数据同步 (37)

7.备库上的备份设置 (38)

7.1备机上的备份目录 (38)

7.2备份脚本 (39)

7.3调度备份任务 (40)

7.4过期备份文件自动删除 (41)

8Postgresql Active Standby DB日常监控维护 (43)

8.1 Postgresql Active Standby DB日志同步监控 (43)

8.2 备库的备份监控 (47)

9. RPT Primary-standby数据库的配置 ................................................................................ 错误!未定义书签。

9.1 RPT主数据库的创建 .................................................................................................. 错误!未定义书签。

9.2 RPT主数据库上的配置............................................................................................... 错误!未定义书签。

9.3 RPT standby数据库上的配置..................................................................................... 错误!未定义书签。

9.4 测试RPT主库和备库的数据同步 ............................................................................... 错误!未定义书签。

9.5 RPT备库上的备份设置及监控..................................................................................... 错误!未定义书签。

9.6 RPT主备库的日志同步监控 ....................................................................................... 错误!未定义书签。

9.7 设置RPT 主备机的随机启动 ...................................................................................... 错误!未定义书签。

10.MES主备数据库的故障切换和恢复................................................................................... 错误!未定义书签。

10.1数据库故障切换和恢复.............................................................................................. 错误!未定义书签。

1. 硬件架构图

1.1 硬件架构图

如下图:两台AP Server和两台DB Server分别采用互备份模式。

即两台DB server主机上搭建两套POSTGRESQLACTIVE-STANBY数据库系统:

MES DB :MES ACTIVE DB在主机MESDB 上,其对应的MES STANDBY DB在主机RPTDB上;

RPT DB :RPT ACTIVE DB在主机RPTDB 上,其对应的RPT STANDBY DB在主机MESDB上。

两台AP server上都装MES AP和报表AP,运行时一台启动MESAP,一台启动报表AP。

注:

MES DB Server和Report DB Server使用双网卡,MES数据库和报表数据库使用固定IP。

正常时备用IP禁用,如对方服务器无法使用时,手动启用禁用的网卡,在一台服务器上运行双应用。

1.2 Postgresql active standby架构原理图

1.3 Postgresql Active Standby架构原理说明

数据库Active standby方式又可成为PrimaryStandby方式。即一台机器的PostgreSQL数据库作为主数据库,提供生产服务,另一台机器上对应的PostgreSQL数据库作为备用数据库,两数据库之间的数据同步,采用primary-standby方式的在线流复制方式同步数据。

采用Enterprise PostgreSQL9.1版本的Active Standby的在线流复制同步数据的方式,备用数据库在同步主数据库的数据时,可以用只读的方式打开备用数据库,此时可以在备用数据库上进行查询数据、查询报表等操作,也可用做读写分离应用。

2. 软硬件配置信息

2.1 服务器配置信息

其中hostname,IP,subnet,gateway等根据项目具体情况指定。

2.2 Linux和PostgreSQL数据库信息

3. DB数据文件和备份存储空间规划

3.1 共享存储RAID阵列准备

共享存储RAID需要存储供应商准备配置完成,并使得LINUX系统安装完成后,能正确识别到共享存储磁盘。

3.2共享磁盘的数据分区划分规划

本套方案采用在两台主机上搭建两套POSTGRESQLACTIVE-STANBY数据库系统。

MES DB :MES ACTIVE DB在主机MESDB 上,其对应的 MES STANDBY DB在RPTDB上,并在RPTDB主机的MES STANDBY DB上进行MES DB的备份;

RPT DB :RPT ACTIVE DB在主机RPTDB 上,其对应的 RPT STANDBY DB在MESDB上;并在MESDB主机的RPT STANDBY DB上进行RPT DB的备份。

从而每台主机上各需要有三个磁盘分区供存放数据库文件和备份文件。

数据分区划分规划如下。

数据分区划分规划如下。

注:共享磁盘数据分区划分前,共享存储(RAID)需要存储供应商准备配置完成,并使得Linux系统安装完成后,能正确识别到共享存储磁盘。

4. Centos6.0 Linux系统的安装

Centos6.0 Linux系统的安装和配置请参考《Centos6.0 Linux系统安装图解》。

注:共享存储的分区使用fdisk工具,根据上面数据分区划分规划,需要将共享存储划分出6个分区,并将其分别

挂载到两台主机的相应目录下,fdisk划分分区和mount到数据目录的详细过程《MESwellPostgresql DB系统软硬件架构、安装配置和备份恢复手册V00.01.docx》。

主机MESDB 上数据目录如下:

主机RPT DB上数据目录如下:

下面以在服务器mesdb上安装配置MES Active DB和服务器rptdb上安装配置MES Standby DB为例来演示安装配置及进行故障切换恢复的过程。其RPT ACTIVE -Standby DB在RPT DB服务器和MES DB服务器上的安装配置与MES Active- Standby DB的配置过程类似。

5. Postgresql Active standby系统高可用性概述

5.1Postgresql Active Standby系统高可用性概述

数据库Active standby方式又可成为PrimaryStandby方式。即一台机器的PostgreSQL数据库作为主数据库,提供生产服务,另一台机器上对应的PostgreSQL数据库作为备用数据库,两数据库之间的数据同步,采用primary-standby方式的流复制方式同步数据。

这种高可用性的方式,可以实现数据库的实时备份,且在备份的同时可以进行正常的主数据库的各种操作,也不会影响用户对数据库的访问。同时,当主数据库出现损坏时,可将备用数据库升级为主数据库,然后将应用手工切换到备用数据库服务器。这样可使得原主库在进行维护时,保证应用的持续进行,最大程度的减少了系统宕机时间,满足7*24的系统运行需要。

另,采用Enterprise PostgreSQL9.1版本的这种高可用性Active Standby的流复制备份方式,备用数据库在同步主数据库的数据时,可以用只读的方式打开备用数据库,此时可以在备用数据库上进行查询数据、查询报表等操作,也可用做读写分离应用。从而以提高企业备用主机的利用率,产生较大的投资回报。(这个功能在oracle数据库中也只是最新版本11g 中才有的新功能。)

PostgreSQL Active Standby 的架构原理图可见1.2中(或如下图)。

6.PostgreSQLPrimary-Standby数据库的配置

基于PostgreSQL流复制的Primary-standby数据库架构的搭建方法,设置步骤如下。

6.1主备机器上postgresql数据库软件安装

下载PostgreSQL9.1数据库软件,在主数据库机器,standby数据库机器上安装好数据库软件。

主数据库机器IP:192.168.15.122;主机名:mesdb

standby数据库机器IP:192.168.15.121;主机名:rptdb

主数据库的数据目录为:/data/mes_data/mes,standby数据库的数据目录为/data/mes_data/mes。

两台主机上的postgresql数据库的安装请参看《MESwellPostgresql DB系统软硬件架构、安装配置和备份恢复手册

V00.01.docx》。

注:应用表空间(表空间如:ts_mes_data)最好能在主库安装后创建完成,这样就不需要配置active standby DB完成后再去创建表空间。

为了便于启动和停止PostgreSQL,在主备机postgres用户下.bash_profile文件中添加以下三行:

6.1.1备注

主备机mesdb和rptdb上mes数据库安装完成并且表空间都创建完成后,若需要配置另外的rpt主备数据库,可以在mes备库主机上使用pgstop将mes备库停掉,然后,将mes数据目录/data/mes_data/mes下的文件全部拷贝一份到目录/data/rpt_data/rpt目录下,再将/data/rpt_data/rpt/postgresql.conf文件中的port参数设置为5433 .如下图。然后

使用pg_ctl start -D /data/rpt_data/rpt,即可启动rpt数据库。下面是在rptdb主机上的操作过程:

RPT ACTIVE -Standby DB在主备机上的安装配置与MES Active- Standby DB的配置过程类似,此处只是说明了一下rptdb在主备机上的创建和启动方式,不涉及rptdb active standby 的配置。

下面以MES DB在主备机服务器上安装配置MES Active Standby DB为例来演示active standby配置及进行故障切换恢复的过程。

6.1.2 主库上表空间的创建

MES主库创建完成后,需创建MES所需要的表空间

(或者主备库配置完成后,在主备主机上分别创建表空间对应的相同数据目录,然后在主库上创建表空间,此时表空间的创建会自动在备库上同步创建)。

主库主机上如下:

主库上

CREATE TABLESPACE temp

OWNER postgres

LOCATION '/data/mes_data/mes/pg_APtblspace/temp';

CREATE TABLESPACE ts_mes_dat

OWNER postgres

LOCATION '/data/mes_data/mes/pg_APtblspace/ts_mes_dat';

CREATE TABLESPACE ts_mes_his_dat

OWNER postgres

LOCATION '/data/mes_data/mes/pg_APtblspace/ts_mes_his_dat';

CREATE TABLESPACE ts_mes_his_idx

OWNER postgres

LOCATION '/data/mes_data/mes/pg_APtblspace/ts_mes_his_idx';

CREATE TABLESPACE ts_mes_idx

OWNER postgres

LOCATION '/data/mes_data/mes/pg_APtblspace/ts_mes_idx';

CREATE TABLESPACE ts_mes_wf_dat

OWNER postgres

6.2主数据库上的配置

在主数据库的/data/mes_data/mes/postgresql.conf文件中设置如下配置项:

wal_level:WAL(Write-Ahead Logging,预写日志)级别,启动时生效。有三种级别,分别为minimal(默认值)、archive和hot_standby:

?minimal:只会记录必要的日志,用于在崩溃或直接关闭后恢复数据库

?archive:记录的日志可被用作WAL存档

?hot_standby:记录的日志可被用于热备

?max_wal_senders:指定允许最大用于热备服务器的连接数,启动时生效

?wal_keep_segments:指定最少保留的WAL片段数量(即pg_xlog中以16进制命名的文件),超过这个数量后,master可能会移除过多的WAL文件,reload时生效。

wal_keep_segments值的设置,可这么算, STANDBY若最悲观的和主库断开1天的话,那至少要KEEP一天的XLOG目录下的日志段SEGMENTS(每个segments 16M)来进行standby的日志应用;若每天产生1000个xlog segments,则需要设置wal_keep_segments=1000。若出现中断一天的这种情况,可以将主库做一个全备份,可直接覆盖掉先前的standby库了。考虑到active standby 采用的是流复制,网络稳定时日志传输和应用几乎感觉不到延时,一般wal_keep_segments=2000 足以满足要求。

在主数据库上的pg_hba.conf中设置listen_addresses和连接验证选项,允许standby数据库连接到主库上来拖WAL 日志数据。在主数据库中的/data/mes_data/mes/pg_hba.conf中添加如下配置:

其中192.168.15.121是standby数据库所在主机IP地址。

相关文档
相关文档 最新文档