问题描述
现在老听到抱怨在VM安装12C RAC的资源需求太大,安装个12C GI就要几十G磁盘空间和4G的内存, 这些资源被哪用了?当然离不开GIMR和ASM memory target这两个的变化,这篇就简单的谈谈这两个变化及如何突破限制,注意生产环境如果没有理解其影响最好不要做。
专家解答
1, GIMR (Grid Infrastructure Management Repository database )
GIMR是一套完整的数据库,如在安装GI的过程中会提示是否要创建GIMR的数据库MGMTDB ,当然你可能会选NO,注意这里容易被误解, 在12.1.01版本时是可以选择GIMR不安装,但是在12.1.0.2和12.2 版本中GIMR成了强制安装,即使在这里选择了NO,这里的YES和NO的区别只是把MTMTDB是存放在OCR ASM DISKGROU还是独立的创建ASM DISKGROUP. 12C r1是GIMR的位置是有OCR的路径决定的。
MGMTDB只是1个CDB包含1个PDB的完整的数据库环境,通常不需要人维护,存储的是GIMR的信息,用于存放cluster health monitor生成的一些操作系统级的负载指标,存储着历史信息用于分析性能和诊断问题,是全全集成在EM 12CC 中。 GIMR存放的信息更多查看 the documentation here,而对于cluster health monitor是可以手动停止,使用下面的命令:
$ crsctl stop res ora.crf -init $ crsctl delete res ora.crf -init
不过Gleb 记录GIMR可以增加命令行 -J-Doracle.install.mgmtDB=false 来跳过MGMTDB的安装。
GIMR平均每天增长700M左右的空间,默认保留周期为3天,改变保留期时记的提前增加空间,改变retention命令如下:
$CRS_HOME/bin/oclumon manage -repos checkretentiontime 518400
2, ASM 1 GB memory target
之前朋友安装12C RAC时因为测试环境主机内存不足, 想把ASM memory target调小,结果总是补忽略自动恢复成1G。在12c中ASM instance的memory target默认为1GB ,这点比11G时的默认256M增加了很多。但是如果人为的调小memory_target如改为500M,默认是被忽略,除非你调整了下面的隐藏参数。如下:
--ASM instance env $ sqlplus / as sysasm alter system set "_asm_allow_small_memory_target"=true scope=spfile; alter system set memory_target=500m scope=spfile; alter system set memory_max_target=750m scope=spfile; --重启