第14章 扩展复制

有些时候当尝试对数据库的性能改进时,最为实用的方法就是为数据添加更多的副本,并将性能的负荷分摊到所有这些副本上。PostgreSQL当中有各种项目用于横跨多个节点对数据进行复制,此时就可以使用这些相关的项目。此外,高性能的系统往往都会伴随着有关高可用性的需求以及它们各自的开销。即使是在这些数据副本并不被激活用于负载分担的情况下,也要了解如何与那些可能影响性能调整工作的复制软件共存。

要注意的是,在本章中没有提及任何成熟的工具能够很有效地支持高写入量向上扩展。有关该类别如何使用pl/Proxy的最佳解决方案内容将在下一章中讨论。写入量的扩展同时也是Postgres-XC的一个目标。一般情况下,当谈及通过添加节点的方法来向上扩展数据库的时候,对于同一数据通常会允许更多的读取操作,但对于写入速度来说并没有得到任何的改善。

PostgreSQL自8.2版本开始附带了集成的备用功能。该功能允许创建一个主/备节点对,备用节点定期接收来自于主节点的数据库更新日志。PostgreSQL8.2版本当中所引入的当前主流的热备(warm standby)配置当中允许了在主节点丢失的情况下,备用节点可以快速取代主节点进行工作的高可用性的设置。

从PostgreSQL9.0版本开始,可以在一台或者多台备用服务器上执行查询。这种完全热备(Hot Standby)功能允许使用多个只读的服务器池来向上扩展读取的工作负荷。此时仅仅需要对应用程序进行架构以便所有的写入操作均转入主节点。

需要了解如下的几个方面的内容,以便在随后关于热备以及完全热备的设置的讨论。

  • 预写式日志(WAL,Write-ahead log):PostgreSQL在确定对数据库进行相应修改之前会将信息写入到一系列的预写式日志文件中,其中每段大小为16MB。如果开始所使用的是同一对数据库,并且使用了相同的 ...

Get PostgreSQL 9.0性能调校 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.