PostreSQL9发布了,无比灿烂的一个版本
文档:
http://www.postgresql.org/docs/9.0/static/index.html
通过学习文档,实验后总结HA配置如下:
1.安装pgsql9
2.initdb data文件夹
3.将文件夹复制到standby机器
4.
配置一般standby,这种standby数据库无法登录,总是显示"the database system is starting up"
primary端打开archive(与一般归档日志配置相同)
日志级别设为最高级,以适应下面所有情况:
wal_level = hot_standby
standby端:配置recovery.conf
standby_mode = 'on'
restore_command = 'copy "d:\\program files\\PostgreSQL\\9.0\\arch\\%f" "%p"'
这个时候数据库已经可以复制了,只不过standby库是无法登陆的,可以查看日志,看到在读取归档日志.
5.
配置streaming 复制,及具有更高的实时性,会读取没有进入归档日志的改变
primary端pg_hba添加访问,给一个超级用户给standby,database列填replication
如:
host replication pgsql 192.168.1.3/32 md5
max_wal_senders 增加数字,表示可以有几个standby连过来
standby端,增加primary_conninfo设置primary服务器的登陆参数 :
standby_mode = 'on'
primary_conninfo = 'host=192.168.1.2 port=5432 user=Administrator password=foopass'
restore_command = 'copy "d:\\program files\\PostgreSQL\\9.0\\arch\\%f" "%p"'
6.
配置hot standby(这种就是在standby机器可查询,可用作报表服务器等等):
standby端打开
hot_standby = on
7.唤醒standby为primary,recovery.conf增加:
standby_mode = 'on'
primary_conninfo = 'host=192.168.1.2 port=5432 user=Administrator password=foopass'
restore_command = 'copy "d:\\program files\\PostgreSQL\\9.0\\arch\\%f"
trigger_file = '"d:\\program files\\PostgreSQL\\9.0\\trigger_file"'
写入此文件,就会唤醒,进入正常工作状态,以代替primary
以上就是全部的配置
在windows下已经试验成功
在freebsd8.1下,使用ports安装pg9,日志用archive_command 中加入scp传送到另一台机器,可以成功配置standby
但是 streaming 复制没有成功,会在standby端日志中显示错误信息:
[2-1] FATAL: could not access file "libpqwalreceiver": No such file or directory
,等待ports更新吧.
现在只能切换日志发送最新数据了:
psql -c"select pg_switch_xlog() ;" postgres
解决这个问题的方法,是自己下载编译pg9,可以看到完成后有这个文件lib/libpqwalreceiver.so,而ports安装的就没有,至少目前是没有,以后可能会修复这个bug,我想是ports的bug。
自己编译pg9,freebsd8.1上也完全成功了。
进入psql
执行select pg_is_in_recovery();
可以查看是否在恢复状态,一个standby库,在没有变成primary时,语句返回总是't'
其他的函数还有:pg_last_xlog_receive_location()等
网址:
http://www.postgresql.org/docs/9.0/static/functions-admin.html#FUNCTIONS-RECOVERY-INFO-TABLE
可以看出pg 9对HA的实现基于WAL日志系统,并应用原来的配置文件,增加了几个关键字,与原结构保持统一。
在使用中还需要考虑归档日志的传输脚本和primary数据库状态的检测脚本的实现,好在这些工具已经有很多。
其实自己用python写一个代理,并另作一个程序监控主库的状态,并发送给python代理,提示切换至standby和写入trigger文件,我想代码不会超过200行。
分享到:
相关推荐
### PostgreSQL 双机热备及自动化备份管理 #### 一、自动备份数据库 在 PostgreSQL 数据库管理系统中,实现数据的自动备份是一项非常重要的任务。它不仅能够帮助我们防止数据丢失,还能确保数据的一致性和完整性。...
【HA for Windows 2003 双机热备方案】是针对企业关键业务连续性的解决方案,旨在确保在系统故障时能迅速恢复服务,避免业务中断造成的损失。该方案特别适用于那些依赖Windows 2003 Server和SQL Server数据库系统的...
通过以上对 PostgreSQL 9.0 性能提升策略及常见陷阱的详细阐述,我们可以看到,合理的数据库设计、正确的参数配置以及恰当的查询优化措施是实现高性能数据库系统的基石。此外,持续监控系统性能、及时调整配置也是...
PostgreSQL 9.0 引入了对热备(hot standby)数据库的支持,这是一个重要的里程碑,使得在数据库恢复过程中,standby数据库不仅可以接收并应用Write-Ahead Log (WAL)日志,还能提供只读访问。这种特性在Oracle数据库...
POSTGRESQL 9.0 性能调校PDF电子书
总的来说,构建 PostgreSQL 的高可用性双机热备系统是一个涉及多个层面的过程,包括服务器配置、复制流设置、pgpool 配置以及故障切换机制。每个环节都需要细心调整和测试,以确保在实际环境中能提供稳定可靠的服务...
PostgreSQL9.1 双机部署配置(主备数据同步)PostgreSQL9.1 双机部署配置(主备数据同步)
《PostgreSQL 9.0性能调校》内容包括 为处理高要求的应用程序而升级PostgreSQL安装的最佳实践; 揭秘硬件适合或不适合高性能数据库应用程序的原因; 深入研究在速度与稳定性之间进行取舍的手段; 调整操作系统以获得...
《PostgreSQL 9.0 高性能》一书由格雷戈里·史密斯撰写,专注于提升 PostgreSQL 数据库系统的性能并避免常见的性能陷阱。本书是 Packt 出版社于2010年首次出版的,版权严格保护,任何未经许可的复制、存储或传输均被...
### 关于《PostgreSQL 9.0 高性能》一书的关键知识点 #### 书籍概述 本书《PostgreSQL 9.0 高性能》由Gregory Smith撰写,旨在帮助数据库管理员(DBA)和高级用户了解如何充分利用PostgreSQL 9.0的功能来提升系统的...
### PostgreSQL 9.0 高性能指南核心知识点详解 #### 一、前言与背景介绍 《PostgreSQL 9.0 高性能》是一本专为数据库管理员、开发者和技术爱好者编写的指南,由国际知名数据库专业服务公司2nd Quadrant的首席顾问...
资源名称:PostgreSQL 9.0性能调校资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
postgresql9.0的中文chm手册,实用不解释
一款轻型的数据库系统,使用简单方便,集成图形管理界面。
- **新特性介绍**:PostgreSQL 9.0 是一个重要的里程碑版本,它引入了许多新功能,包括支持热备、增强的复制功能(物理复制和流复制)、新的索引类型(如GiST、SP-GiST、GIN和BRIN)等。 - **性能提升**:此版本在...
jar包文件:postgresql-9.0-801.jdbc4.jar javadoc API文档文件:postgresql-9.0-801.jdbc4-javadoc.jar sources 源代码文件(若本来存在):postgresql-9.0-801.jdbc4-sources.jar 对应Maven信息: groupId:...
4. **postgresql-9.0-int.msi** 和 **postgresql-9.0.msi** - 这些是Windows Installer包,用于安装PostgreSQL 9.0.3。前者可能是一个内部版本,适用于特定的配置,而后者可能是通用版本,适应更广泛的环境。 5. **...
windows 下64位 postgresql+postgis的安装包,方便本地调试测试