《Greenplum5.0 最佳实践》 高可用性<1>

高可用性

Greenplum 数据库集群支持高可用,容错性数据服务。为了保证所需要的服务级别,每个组件都必须有一个备用的服务器,
避免发生故障没有有效的准备。

磁盘存储

Greenplum 数据库是 "Shared-nothing" MPP 架构,主节点和段节点都有其各自专有的内存和磁盘存储空间,每一个主接节点或者
段实例都有其自己独立的数据文件。为了更高的可靠性和性能表象。 Pivotal 建议使用8到24个硬盘的RAID存储解决方案。使用RAID
5(或6)时,大量磁盘可提高吞吐性能,因为增加了并行的磁盘I/O。RAID控制器可以持续使用故障磁盘中的数据,因为它可以保存每个
磁盘上的奇偶校验数据,从而可以重新构建磁盘阵列中的任何实盘的成员上的数据。如果配置了热备份(或者操作员使用新的备份替换
故障磁盘),则控制器奖后自动构建故障磁盘。
RAID 1 是完全镜像磁盘,所以一个磁盘挂掉,可以立即获得一个跟磁盘挂掉之前性能一样的替代品。使用RAID5时,必须根据剩余的
活动驱动器上的数据重新构建发生故障的阵列成员上的每一个 I/O 数据,知道更换新的磁盘重建,所以这里有一个临时的性能下降。如
Greenplum 的master和segment 都有镜像,你可以将在磁盘重建期间任何受到影响的实例切换到镜像,以保证可以接受的性能。

例如,如果整个RAID卷失效,一个 RAID 磁盘阵列可以有一个单点的故障。在硬件层面,你可以保护磁盘阵列失效通过设置阵列镜像
,使用其他的节点操作系统做镜像或者使用RAID控制器做镜像。

定期见识每一个每段主机上的可用磁盘空间是非常重要的。在 gptoolkit 模式下查询外部表 gp_disk_free 可以获得当前磁盘的使用情
况,其底层是 linux 的命令 df 实现的。确定去检查这里有足够的磁盘空间在执行一些耗费磁盘空间的操作时。(例如拷贝大表)

具体使用方法可以参看 中的gp_toolkit.gp_disk_free

最佳实践

  1. 使用RAID存储,每个节点实际使用8到24块磁盘
  2. 使用的RAID为 1 5 6 这样可以容错,推荐使用RAID6 (RAID 1 + RAID 5)
  3. 在磁盘阵列中配置热备份,以便在检测到磁盘故障时自动开始重建
  4. 通过对RAID卷进行镜像重建,防止整个磁盘阵列出现故障并性能降低
  5. 时刻监控磁盘的使用情况,当需要的时候可以增加磁盘的容量
  6. 监控各个段的数据倾斜情况,确保数据最终分布在每一个节点。避免木桶效应

Master 监控

Greenplum 的master节点是客户端的唯一能访问的单点。master 节点中存储这数据库系统的全局 catalog, 这些系统表存储这关于
数据库实例信息的元数据,但是这里不存放用户使用的数据。如果master节点挂掉,那么整个Greenplum 数据库集群就会挂掉。因为已经不能访问真个数据库集群了,所以最好配置standby节点。

Master 镜像使用的是两个进程,即活动主机上的发送者和镜像主机上的接收者,以使得镜像和主机同步。当更改应用于主系统目录
时,活动的主服务器的预写日志(WAL)传送到镜像,以便在主服务器上应用的每一个事务都应用到镜上。

standby 是一个热备,如果master出现故障,那么需要使用管理员用户权限去切换。使用的命令是 gpactivatestandby 在standby
主机上。这样所有在master的任务,全部要在standby上重新构建,连接,运行。

具体的内容可以参考手册 《Greenplum Database Administrator Guide for more information》

最佳实践

  1. master 节点设置一个 standby 节点, 避免 master 节点失效。
  2. standby 可以和 master 一个节点,也可以不是同一个物理节点。但是最好还是不是同一个物理节点
  3. 要做好规划如何在发生故障的时将客户端切换到新的主机实例上。例如可以通过更新DNS实现快速切换
  4. 设置监控以在系统监控应用程序中发送通知,或在主系统失败时通过电子邮件发送通知
时间: 2024-10-27 08:16:42

《Greenplum5.0 最佳实践》 高可用性<1>的相关文章

《Greenplum5.0 最佳实践》 模式设计 (三)

模式设计 最佳实践 Greenplum 是基于大规模并行处理(MPP)和shared-nothing架构的分析型数据库.其不同于高度规范化的事务型SMP数据库. 使用非规范化数据库模式,例如具有大事实表和小维度的星型或者雪花模式,处理MPP分析型任务时,Greenplum数据库表现优异. 数据类型 (Data Types) 使用类型一致 在做关联操作的两个表,其两个关联字段的数据类型尽量保持一致.如果数据类型不一致,Greenplum 数据库必然后动态的转化一个字段的数据类型,这样就可以实现不同

《Greenplum5.0 最佳实践》 系统参数 (二)

<Greenplum 数据库最佳实践 > 系统参数配置 系统配置 本章主要描述在Greenplum部署之前,系统参数的配置 文件系统 (File System) 推荐使用XFS作为Greenplum默认文件系统, 目前redhat,Centos 7.0 都开始使用XFS作为默认文件系统 如果系统不支持 需要使用下面的挂载命令rw,noatime,nobarrier,nodev,inode64,allocsize=16m XFS相比较ext4具有如下优点: 1. XFS的扩展性明显优于ext4,

《Greenplum5.0 最佳实践》 迁移数据使用Gptransfer

使用 Gptransfer 命令迁移一个 Greenplum 数据库集群中的数据到另一台集群(metradata, data) gptransfer 可以迁移数据库中的全部数据或者部分选择的表到另外一台 Greenplum 中. 源数据库和目的数据库可以在同一个集群中,也可以在不同的集群中. gptransfer 所有的段数据库是并行的移动数据的,使用 gpfdist 可以获得更高的数据移动效率. gptransfer 处理这数据的启动和执行. 参与的集群必须存在.同时确保集群间的访问时可以用过

《Greenplum5.0 最佳实践》 系统监控与维护 (五)

常规的系统维护是为了我们的Greenplum数据库具有更高的稳定性和更优化的性能体现 使用 ANALYZE 更新系统的统计信息 数据库的数据膨胀管理 (需要仔细点延伸下去) 监控Greenplum的日志文件 Monitoring (监控) Greenplum 数据库系统提供了非常使用的监控工具.gp_toolkit 模式包含多种视图,可以通过SQL命令去查询Greenplum数据库系统的 system catalogs , log files 和 对当前操作环境下系统的状态信息. 对于更多的 g

《Greenplum5.0 最佳实践》数据导入 (六)

Loading Data INSERT 命令 使用 INSERT 命令将数据加载到表中.一行数据会根据分布键,从主节点分配到 segment 上.这是一种非常慢的方法,并不适合加载大量数据. COPY 命令 Postgresql 数据库提供的 COPY 命令实质就是将 外部文件拷贝到数据库表中, 该命令一次可以插入多行数据, 效率明显高于 INSERT 命令.但是这并不是一位置数据不需要从master 节点开始执行数据导入,依旧需要master 节点完成数据分布的计算.使用数据拷贝命令,并不意味

《Greenplum5.0 最佳实践 》SQL 转换

改变 SQL 查询 Greenplum 数据库是基于代价的查询优化,查询优化器会选择代价最小的作为执行计划.像其他的 RDBMS 优化器一样, Greenplum的查询优化器也会考虑如下因素,例如做连接操作涉及的记录数量,索引是否可用,访问数据的字段基数.查询优化器还要考虑数据的具体位置,尽可能的在当前段内执行更多的操作,然后在进行段之间的通信操作,因为在实际生产中,频繁的段间数据交换会产生集群的网络瓶颈.那么会降低集群的性能. 当查询执行要比我们想象的要慢时,我们需要去检查查询计划,这也就意味

《Greenplum5.0 最佳实践》 内存与资源队列 (四)

避免内存错误和GPDB资源问题 内存管理对GPDB集群具有重要的性能影响.大多数环境推荐使用默认设置.不要去改变默认设置,除非你真的理解了自己系统的需求. 解决内存溢出错误 内存不足错误绘制出遇到内存不足错误的GPDB的段数据库,节点,进程信息 例如: Out of memeory ( seg27 host. example.com pid = 47093 ) VM Protecte failed to allocate 4096 bytes , 0MB available 通常情况下GPDB内

《Greenplum5.0 最佳实践》 访问HDFS存储 (七)

访问Hadoop集群中数据用到的工具有 外部表 external tables 和 gphdfs 协议, Greenplum 可以从 HDFS 上读取文件也可以向 HDFS 写文件.为了达到更快的性能,所有的段数据库是并行地读取 HDFS 中的数据. 当Hadoop集群采用的是 Kerbes 实现集群中各个节点的认证的,以确保集群数据不被恶意攻击.那么 Greenplum 必须使用的用户为 gpadmin, 该用户拥有对外部表的读写权限在HDFS中,需要通过 Kerbes 的授权.为了实现对 g

开发基于IBM Lotus Domino的Web 2.0应用的最佳实践

简介:本文介绍了开发基于 IBM Lotus Domino 的 Web 2.0 企业应用的最佳实践.这些最佳实践覆盖 系统开发的整个生命周期,包括系统设计阶段.实现阶段以及系统装配和部署阶段.根据本文所介绍的这 些方法,可以高效的开发高质量的基于 Domino 的 Web 2.0 企业应用. 背景简介和挑战 Domino 是 IBM Lotus 下面的一个旗舰产品,由于其提供了多层级的安全解决方案,内置集成的协同 服务应用和目录服务并提供灵活的数据库复制机制,因成为很多企业应用的重要平台. 随着