大规模升级来临,谈谈Oracle 12cR2使用经验
将交易型生产数据库迁移到Oracle 12c(包括Oracle12cR2、Oracle18c、Oracle 19c),有一些特性建议关闭(其中部分特性是从Oracle 10g开始一直都建议关闭的),设计很理想,现实很骨感,我们能做的就是帮忙尽量圆润一些。 下面默认数据库都是Oracle RAC: 1、实例并行执行 PARALLEL_FORCE_LOCAL该参数默认是False。理论上讲,集群多个节点,并行处理的时候多个节点一起来,均衡用力,是最优方案。事实是多节点并行处理的协调成本很高,节点间通讯负载大。因此要改为True,实现进程级别本地化并发处理。 2、内存自动管理 从10g开始sga自动管理sga_target到12c的内存级别自动管理memory_target。核心生产库全部建议改为手动,非核心几个月不看一眼的库可以设置为自动管理。 3、查询结果缓存 一次缓存,百次使用。对某些特定“静态”查询类的系统可能适用,在OLTP里这种场景几乎没有。所有result_cache_max_size=0。 4、布隆过滤算法 Bloom Filter由布隆在1970年提出,用来检索一个对象是否在某个集合中,优点是空间效率高于其他算法,缺点是有一定的误识别率。一旦识别错误,效率就是百倍降低,这对于高效稳定的系统来说是不可接受的。
动态资源重组:每个数据库资源,都有其Master,拥有者和请求者,初衷是根据请求情况来动态调整Master,减少实例间数据传输。
5、 段延迟创建 新建一个数据表,Oracle只会建这个对象而暂不分配segment,只有当往表里插入第一条数据的时候才创建segment。初衷是节约存储空间,但该特性bug极多。
6、内存列式存储 In-Memory Option是12c的一大亮点,对特定的应用适用。 通常建议关闭:inmemory_size=0;inmemory_query=disable; 四、几个问题/bug 升级到Oracle 12c后遇到的一些重要bug,建议要去整改。 问题1:SGA手动管理模式下,Oracle偷偷去自动增大Shared pool了(Oracle 19.2解决)。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |