辽宁省建设部网站,婚庆公司怎么开店,wordpress显示空白,wordpress固定链接怎么设置20 高可用性方案设计#xff08;一#xff09; 在一个生产系统中#xff0c;通常都需要用高可用方案来保证系统的不间断运行。本章将详细介绍如何实现PostgreSQL数据库的高可用方案。
20.1 高可用架构基础 通常数据库的高可用方案都是让多个数据库服务器协同工作#xff0…20 高可用性方案设计一 在一个生产系统中通常都需要用高可用方案来保证系统的不间断运行。本章将详细介绍如何实现PostgreSQL数据库的高可用方案。
20.1 高可用架构基础 通常数据库的高可用方案都是让多个数据库服务器协同工作比如当一台服务器失效时另一台服务器可以顶替上去工作这样就可以不中断对外服务或只中断很短的时间;或者让几台数据库同时提供服务用户可以访问任意一台数据库当其中一台出现问题时访问其他数据库即可。但与为静态页面提供服务的Web服务器不一样的是数据库中记录了数据要想在多台数据库中切换需要进行数据同步所以数据同步是数据库高可用方案的基础。
20.1.1 各种高可用架构介绍 从解决数据同步问题的方式来看高可用方案可以分为以下几种。
共享磁盘的失效切换或磁盘的底层复制方案:使用共享存储如SAN存储一台机器失败后把SAN存储输出的磁盘挂到另一台机器上然后把磁盘上的文件系统挂起来后完成切换。WAL日志同步或流复制同步的方案:PostgreSQL自身提供了这种方案通过这个机制可以搭建主从数据库当主数据库失败时把从数据库提升为主库继续对外提供服务。基于触发器的同步方案:使用触发器记录数据变化然后同步到另一台数据库上。基于语句复制的中间件:用户不直接连接到底层数据库而是连接到一个中间件中间件把数据库的变更发送到底层多台数据库上从而完成数据的同步。 基于改造PostgreSQL源码的方案:修改PostgreSQL源码来截取数据的变更然后同步到另一台数据库上。 目前随着PostgreSQL自身复制功能的增强越来越多的技术方案开始基于PostgreSQL自身的复制方案进行设计改造PostgreSQL源码的开源软件技术方案已越来越不活跃了如pgcluster软件已发布的最新版本1.3还是在PostgreSQL8.0之上改造的pgcluster-II目前还没有开源出来。所以本书不再介绍“基于改造PostgreSQL源码的高可用方案”。至于其他方案在后面都会介绍。
20.1.2 服务的可靠性设计 主备方式的高可用方案是通过主备之间的数据同步来实现的数据同步有异步和同步两种方式。同步方式的优点是在故障切换过程中数据完全不丢失但缺点也很明显主要问题有:
影响性能这是很明显的一个事务的数据必须写到备库中才能返回。当主备库之间的网络中断时要不让同步退化为异步要不就让主库挂起。当然还有一种方案是让一个主库带两个备库只要有一个备库是正常的主库就不需要挂起。这个方案的缺点是增加了成本。 如果系统可以容忍故障切换时丢失少量的数据可以使用数据异步同步的方式。该方案需要避免备库落后主库太多防止故障切换时丢失太多的数据。 要保证服务中断的时间尽量地少还需要灵敏的故障检测。但故障检测太灵敏时误触发的概率也会增加所以需要选择一个合适的故障检测时间。这个故障检测时间通常在秒级别以上。想要做到秒级别以下是比较困难的。
20.1.3 数据可靠性设计 系统中最重要的资源就是数据如何保证数据不丢失是数据库系统中需要重点考虑的事情。导致数据丢失的原因有很多如硬件故障或损坏、软件Bug、.人为失误等所以通常要备份数据,除非这个数据库不重要丢失了也没有关系。