确定集群中副本的数量和位置
在集群中创建数据库副本有两个主要原因:提供持续的数据可用性和在多台服务器间分布工作负载。在集群中创建副本前,请考虑用户对数据库的访问频率以及他们对数据冗余的需求。如果一个数据库非常繁忙或者它的作用非常重要,那么可以创建多个副本,并将它们放在最可靠的服务器上。对于不是非常繁忙和持续可用性不太重要的数据库,可能根本不需要创建任何副本。例如,服务器日志文件就不需要在其他服务器上创建副本。
数据库的副本越多,数据就越容易访问。但是,创建太多的副本,可能会增加不必要的系统维护开销,并且会影响性能。规划集群策略时,请尝试在用户对数据可用性的需求与集群中每台服务器的物理能力之间找到平衡点,以管理额外的工作负载。如果数据库有三个以上副本,其可用性不会显著提高。如果用户可以从一台或两台服务器上充分地访问一个数据库,则不必增加集群中副本的数量。
当用户需要特定数据库的持续可用性时,如果有足够的磁盘空间和资源,请考虑将副本放到集群中的每台服务器上。
此外,请尝试将最繁忙的数据库分布到不同的服务器上,以便每台服务器都不会包含太多繁忙的数据库。如果集群中的服务器都具有相似的处理能力,则可以使每台服务器的负载(包括为故障转移保留的处理能力)相等。如果一台服务器比其他服务器明显具有更强或更弱的处理能力,请考虑更改此服务器上的数据库数量和可以故障转移到此服务器的数据库数量。另外,应该在集群内分布邮件文件,或为邮件设置单独的服务器或单独的集群。
由于集群中繁忙的数据库可以创建许多复制事件,所以最好将这些副本安装到集群中速度最快的可用硬盘上。如有可能,请将这些副本置于不与其他进程产生设备争用的位置,例如,在不包含操作系统交换文件的其他某个分区上。
要查看集群中的现有数据库及其副本,请打开集群数据库目录 (CLDBDIR.NSF)。其中包含一个存储集群中每个数据库及副本的相关信息的文档。
要创建的副本数量
下表描述了确定要创建的副本数目时要考虑的一些因素。
- 要创建的数据库副本的数量取决于该数据库可用性的重要程度和该数据库接收的使用请求的数量。
- 至少应为需要数据冗余的数据库创建一个副本。如果数据库变得不可用,用户就可以故障转移到该副本。
- 如果希望确保数据库总是可用,可以创建多个副本。数据库的可用性越重要,应创建的副本数量就越多。应该只为非常重要的数据库添加多个副本。不必要的副本会减少集群和网络资源。
- 对于大多数数据库,单个副本就足够了。除非数据库确实承担有关键任务,否则应当只有极少数数据库需要三个以上的副本。
- 创建副本时,请考虑系统的处理能力和带宽。数据库愈忙,更新副本所需的网络流量和处理能力就越大。如果系统的处理能力和带宽有限,可能需要为繁忙的数据库创建较少的副本(相对于更强的处理能力和带宽而言);或者可能需要为服务器添加处理器和其他资源。在一个资源有限的集群中,因为集群复制需要额外的资源,所以创建繁忙数据库的副本会起反作用。(集群不是解决资源短缺的方法)。但是,数据库繁忙程度越低,随时更新数据库所需的开销就越少。
- 如果不能确定要创建多少副本,请启动一台服务器并跟踪集群统计信息。如果统计信息显示此服务器变得不可用或者性能出现问题,则增加副本的数量可能会解决此问题。
- 对于可用性或负载平衡能力对您来说并不很重要的数据库,请不要创建副本。
分析数据库以确定副本数量
决定要创建多少个副本时,要考虑很多因素。有些因素需要您创建更多的副本,而有些因素需要您创建更少的副本。以下列表描述了这些因素及其可能对集群通讯和性能产生的影响。
在集群中分布数据库之前,创建有关数据库和集群硬件的信息表可能会很有帮助。可以使用此表来确定特定数据库的重要性以及资源是否充足。您可以包含部分或所有以下信息:
- 数据库的标题
每个数据库的标识符
- 每个数据库的大小
大型数据库会占用较多的磁盘空间。根据磁盘容量,为了节省磁盘空间,可为较大的数据库创建较少的副本。
- 数据库用户的数量和分布
如果有大量用户,那么在多台服务器间分布负载可能会获得更好的性能。这需要多个副本。如果用户数量较少,那么他们可能不会注意到新增的副本提高了系统性能。
- 用户事务发生的频率
如果事务频率较高,那么创建多个副本可能会提高性能。
要了解数据库的活动速率,请查看 HCL Notes®日志文件。
- 新数据的预期大小
如果估计数据库中可能包含大量的新数据,由于集群复制会导致大量额外的流量,所以额外的副本可能降低性能。如果有处理能力强大的服务器和足够的带宽,可能不会产生此问题。
- HCL Domino®服务器硬件的能力
服务器的处理能力越强、具有的磁盘空间越多,在不显著影响性能的情况下可以创建的活动副本就越多。
- 服务器间的网络连接类型。
在没有足够带宽的网络上进行集群复制可能会产生瓶颈。因此,带宽越宽,可创建的副本就越多。
- 数据库对业务运转的重要性
对于关键任务数据库,应创建多个副本。对于可用性不太重要的数据库,可以创建较少的副本或根本不创建副本。
示例表
此表有助于识别哪个数据库需要高可用性、哪个数据库最繁忙以及将来需要多少额外的磁盘空间。在本示例中,有两个非常重要并且增长迅速的数据库。应确保这些数据库有足够的副本,以便它们始终可用。另外,还应确保在包含这些数据库副本的每台服务器上都有足够的磁盘空间来满足增长的需要。一个具有中等重要性的数据库不但增长缓慢,而且活动较少。除非此数据库的暂时不可用会对业务造成负面影响,否则只为此数据库提供一个副本即可。一个不很重要的数据库在集群中不需要副本。
并发用户数有助于您确定是否需要均衡工作负载。
下表使用上文中的部分信息来确定所需的副本数量。
数据库标题 |
大小 |
最大并发用户数 |
事务速率 |
增长率 |
可用性需求 |
建议的副本数量 |
---|---|---|---|---|---|---|
产品讨论 |
4GB |
600<nozeros> |
高 |
高 |
高 |
2<nozeros> |
销售跟踪 |
1GB |
200<nozeros> |
中等 |
高 |
严重 |
2 或更多 |
公司调查 |
2GB |
20<nozeros> |
低 |
中等 |
中等 |
0 或 1 |
分类广告 |
1GB |
50<nozeros> |
中等 |
中等 |
低 |
0<nozeros> |