首页 理论教育分区及其管理、备份、重置对性能的影响

分区及其管理、备份、重置对性能的影响

【摘要】:此外,为有效操作,确定分区数时应使分区数据的管理、备份、重置更容易。从这方面来说,最重要的就是能否有效实现各层次的分区。总体来说,为保证最佳性能,要通过策略性的有效分区,应该寻求最大限度减少因相互干扰而出现超载的关键因素,以及针对pinging现象的解决方案,并按照数据文件有效性分配PCM锁来移除false pinging,尽量提高整体系统的性能。

数据库构造和运行环境中,从性能和管理、维护方面来看,分区(partitioning)是影响很大的重要部分,应综合考虑系统构成、实现业务类型及运行形态等,有效进行利用,才能起到好的作用,否则可能会导致超载。因此从设计阶段到实施都需要策略性访问。从性能方面来说,在制定基本分区标准时,目标是将访问事务的相同资源(数据)按时间、空间来分离或分散,以使资源争用负载最小化。

1)表分区策略

从逻辑数据模型转换为物理数据模型时,要将哪种实体作为分区对象是重要的课题,包括:

(1)执行parallel DML的表(主要针对大批量操作);

(2)超过数 GB数据容量的表;

(3)作为可明确分辨只读记录和读写记录的大容量表,例如一年间的数据中当前月份的数据可进行变更,其余数据为只读的历史管理表;

(4)在并发服务器环境下,通过大多数实例访问的表中可分离为数据组的表;

(5)访问parallel-index scan所需的表。(www.chuimin.cn)

此外,不能随意地决定分区数目,确定重要的设计之前应仔细分析多种外部的影响因素。有时会在数据库的可用性和性能之间难以抉择,设计者应先确定哪种设计对客户更重要,考虑优先顺序后应用。此外,为有效操作,确定分区数时应使分区数据的管理、备份、重置更容易。

2)按实例节点分区

在一个节点上独立运行数据库时,只需基本所需的内部锁机制来维持数据一致性,但如果在多个用户通过不同节点同时使用同一个DB内资源的RAC环境下,为保证数据的一致性和连续性,引入并管理节点(实例)之间的锁机制概念是理所当然且无法避免的。

即对于两个以上的Oracle实例访问一个DB的RAC结构,如果未最大限度地降低同一资源的负载争用,很难实现所需的性能和稳定性。在现实中,是无法全部消除通过不同节点对同一资源的“cross-access”的情况的,是否最大限度地向减少这些可能性方向构建各种环境,将成为决定整个系统性能和业务运营稳定性的关键因素。从这方面来说,最重要的就是能否有效实现各层次的分区。分区的层次可分为实例、应用程序、用户、表行(数据子集)、访问时间等,一般情况下通过组合操作。

虽然无法对RAC环境下实施的所有应用程序进行完美分区,但大多数应用程序,对于管理相同PCM锁的块,最大限度地向降低cross instance read/write、write/write争用方向进行设计,是提高整体性能的充分必要条件。

总体来说,为保证最佳性能,要通过策略性的有效分区,应该寻求最大限度减少因相互干扰而出现超载的关键因素,以及针对pinging现象的解决方案,并按照数据文件有效性分配PCM锁来移除false pinging,尽量提高整体系统的性能。

在PCM锁控制一个以上数据块的情况下,当变更不同节点下控制同一PCM锁的数据块时,该PCM锁的状态必须变更为排它(exclusive)状态。此时在对应实例中会事先将该PCM锁控制的数据块从SGA缓冲区缓存保存到磁盘中,并通过移交访问权限的构造来保持同一资源的一致性。这种现象为pinging,若出现太多这种现象则会引起不必要的磁盘I/O,会成为降低系统整体性能的原因。当然,在 Oracle 8i上引入 cache fusion功能,通过内存交换信息来减少因实例之间的干扰造成的性能下降,但还需强调分区的重要性。