虽然在大规模写入(insert和create )加载下,当Oracle RAC需要扩展表空间时,所有的写活动都会被阻塞,不管完成扩展需要多长时间(数十分钟),所有会话都会被“数据文件中的写入”所阻塞。是否有办法配置Oracle来主动扩展文件,以便在执行文件时,事情可以继续进行下去?
发布于 2013-08-02 03:48:07
30分钟治疗1TB是相当正常的。如果您的表空间完全耗尽空间,那么所有的写入停止也是正常的。当写入没有去处时,它们必须等待调整大小操作的完成。如果在数据库中仍然有空间的情况下扩展数据文件,则I/O不会停止。
你为什么要花这么多钱?现在,这些+1TB将添加到RMAN备份中。当然,它们会很好地压缩,但仍然不是100%,RMAN将需要时间来读取所有这些块。
我将在这些表空间上设置自动扩展:
ALTER DATABASE DATAFILE '+DG/sid/datafile/datafile_01.dbf' AUTOEXTEND ON NEXT 10G MAXSIZE 30G
这样,您就不会在表空间中浪费空间,而且即使您的数据增长很快,并且赶上了自动扩展操作--因为10 to的格式化不会花费很长时间,所以写操作只会有很小的延迟。
Oracle将主动主动地扩展表空间。它不会等到最后几个街区被填满。
发布于 2013-08-02 17:09:21
我们在前一家公司解决了这个问题,把cron的工作安排在交易时间之外,以便在表空间下降到几个平均日增长率的标准差范围内,来增加表空间。当时我对它进行了广泛的研究,没有办法调整Oracle什么时候这么做的门槛(而且您可能无论如何也不想这样做,因为您仍然不能保证它不会在错误的时间敲击您)。我们本可以完全使用这个机制并完全关闭自动扩展,但我们认为白天暂停自动扩展比完全耗尽空间要好。很难客观地做出判断,因为Oracle不记录任何地方的自动扩展事件(至少在我们当时的10g事件中是如此)。
另一个作业检查了所有自动扩展DBFs的最大大小,并将其与磁盘上实际空闲的空间进行比较,以确保我们没有过度提交。
https://dba.stackexchange.com/questions/47424
复制相似问题