我们正在做Oracle往MySQL数据库迁移,但在迁移之前,这一次是数据同步的Oracle出现性能故障,Oracle使用shutdown immediate以及数据导入都非常慢,通过8个小时的排查,完成了一次简短的性能调优。其中性能调优主要优化了下面几个参数:
-
SGA_TARGET,SGA_MAX_SIZE 5000m
-
db_cache_size,shared_pool_size=2000m
-
pga_aggregate_target 1000m
-
sort_area_size 30000000
-
processes 600
-
large_pool_size 512m
-
FILESYSTEMIO_OPTIONS=SETALL
上面调优过程中,需要根据你整体oracle内存参数memory来调整,我这边的memory参数是12G。
同时,对表也做了优化处理,如下图所示
调整完后,同时在防火墙放开Oracle默认的1521,使用shutdown immediate进行了重启,重启过后,再shutdown immediate发现速度得到了有效提升,再对数据I/O和AWR做了一次评估,具体数据I/O评估如下,AWR(省略)
SET SERVEROUTPUT ON
DECLARE
l_max_iops PLS_INTEGER;
l_max_mbps PLS_INTEGER;
l_actual_latency PLS_INTEGER;
BEGIN
DBMS_RESOURCE_MANAGER.calibrate_io (
num_physical_disks => 1,
max_latency => 20,
max_iops => l_max_iops,
max_mbps => l_max_mbps,
actual_latency => l_actual_latency);
DBMS_OUTPUT.put_line ('l_max_iops = ' || l_max_iops);
DBMS_OUTPUT.put_line ('l_max_mbps = ' || l_max_mbps);
DBMS_OUTPUT.put_line ('l_actual_latency = ' || l_actual_latency);
END;
/
l_max_iops = 547
l_max_mbps = 216
l_actual_latency = 21
两个节点请求小块读为547,最大吞吐量为21M/s,I/O速度还可以。最后用awr生成报告,I/O性能也还不错
经过几个小时的查询,验证,性能跟之前比较得到了比较大的提升。调优基本结束。
FAQ:参考文章
Oracle 11g优化 https://www.cnblogs.com/wu1314421/p/3654086.html
oraclecapabilityi/o(压力测试数据库服务器i/o性能) http://www.2cto.com/database/201404/294854.html