您的位置: 网界网 > 存储 > 正文

数据归档负载平衡会自动由软件硬件使用

2013年01月24日 10:26:53 | 作者:转载自网络 | 来源:51CTO  | 查看本文手机版

摘要:数据归档是常用系统,然后我就学习及深入的研究数据归档,在这里和大家一起探讨数据归档的使用方法,希望对大家有用。

标签
缓冲
前台进程
数据归档

数据归档是常用系统,然后我就学习及深入的研究数据归档,在这里和大家一起探讨数据归档的使用方法,希望对大家有用。调整数据归档时第一件需要确保的事是LGWR没有等待ARCn完成数据归档一个日志文件。第二个需要考虑的是ARCn活动时的影响对前台进程最小化。

而这两个方面通常是刚好相对的,因此最好的目标就是调整ARCn使其足够快,并在可以证明其影响了前台进程时降低其速度。主要包括以下原则,另外还包括数据归档可用的缓冲大小和数量的调整,以及数据归档进程的数量。

缓冲的大小

ARCn每次从日志文件读取 _log_archive_buffer_size(以块为单位),并写入数据归档目的地。因此如果_log_archive_buffer_size设置为OS下最大的可能值,那么ARCn的性能将最大化并且其在I/O子系统上的负载将最小化。如果该参数在OS上为UNLIMITED,那么设置为最大的物理I/O大小的几倍,效果将最好。

缓冲的数量

如果_log_archive_buffers可用并且可以从日志文件异步读取,那么ARCn将使用aio_read()系统调用并行读取日志到多个缓冲。如果多个日志成员可用,将使用并行异步读每个日志文件成员以扩展磁盘I/O负载。

如果使用了软件/硬件镜像进行日志文件传播,类似的负载平衡将会自动由软件/硬件使用。因此,可以考虑使用并行数据归档读,使用与每个日志文件相同多的磁盘,镜像或者传播,然后配置_log_archive_buffers最多为3。

需要注意的是:不能通过设置多个_arch_io_slaves来模麓尤罩疚募稍辈⑿幸觳蕉痢RCn通常自己执行该任何并仅使用I/O服务器来写操作。为了在可能时进行异步数据归档写,至少需要设置两个_log_archive_buffers,以并行从日志文件读取。但是如果系统达到了cpu负载颈瓶并且数据归档期间前台进程受到了影响,并且没有数据归档聚集的威胁,应该考虑减少缓冲数量,分散cpu负载。

进程数量

如果产生的重做持续过高或者需要数据归档到多个位置,通常需要多个ARCn进程,从Oracle8i开始(+微信关注网络世界),可以通过设置log_archive_max_processes参数。也可以通过定期调度ALTER SYSTEM ARCHIVE LOG ALL,如果没有数据归档聚集,该命令的影响是很小的。

但是如果有,该命令会迅速产生额外的arcn帮助赶上聚集。 为了防止LGWR赶上数据归档聚集运行多个ARCn是最大的保险,但是为了使该策略有效,恰当的配置在线日志和数据归档终点的磁盘是很重要的。

因为也可以使用手工数据归档,Oracle在数据归档期间将在任何在线日志文件上保留一个排斥的WL(等待日志)队列锁,而忽略log_archive_max_processes的设置。这些队列上的操作由archive control latch保护。数据归档活动可以从STATSPACK等报告中的该LARCHE上的gets列得到。

影响数据归档进程性能的两个威胁

在RAC环境下,在实例没有启动时,其线程是可用的。如果一个关闭的,启用的线程的当前SCN落后于force scn,那么在那个线程上将发生强制的日志切换并且活动实例的ARCn为未活动的实例数据归档日志文件。

这使得arcn进程转移到那个实例中工作而不是执行其自己的工作。然而如果ARCn被其自己的lgwr唤醒数据归档其自己实例的日志,那么ARCn将会刮起这个数据归档。这应该通过保持空闲实例启动或者禁用其重做线程完全避免。 数据归档在前项滚动期间将被完全禁用。因此应该确保干净的关闭,保持重做产生最小化。

[责任编辑:存储 chai_shasha@cnw.com.cn]