调试上线前的数据库需要额外关注哪些参数

 

话题

Topic

从基础建设见功底,一套数据库上线前的调试过程,哪些参数设置是需要额外关注的?大家发挥想象,从隐患和性能角度,从Oracle11.2.0.4角度,平台以aix和linux为主。(本期话题贡献人:李广才)

 
 

 

发起人观点  
 

杨建荣_北京:数据库升级中的参数考虑,可以分成几个方向:哪些是通用参数,是否有标准;哪些是性能参数,需要怎么考虑;哪些是过期参数,哪些是新特性参数,是否需要,比如segment deferred creation,case sensatitive的新特性,哪些隐含参数需要调整,比如skip scan是否需要,在我们的系统是禁掉的……

 



 

老A(周亮):Oracle推出的每一个参数都有其特定适用场景,一切以适用角度和最佳实践为准。不过从稳定性角度(Oracle bug实在太多)出发,建议关闭一些新特性参数,如RAC中的DRM特性,11g中的小表直接路径读特性等。

 



 

王朝阳:很多参数已经较之前版本优化掉了,还是需要根据业务调整比如打开文件和游标数量,作业进程数量并行回滚级别之类的参数;另外还有操作系统相关的,比如shmmax以及/dev/shm大小等。

 



 

IvanYao:首先Oracle官方的文档,对于初始化安装一个Database有一个基本的OS kernel parameters 和Database的设置参考; 对于RAC环境MOS(support.oracle.comS(support.oracle.comS(support.oracle.com)提供了RAC and Oracle Clusterware Best Practices and Starter Kit(Linux/AIX/HP-UX/Soaris)一系列文章,而且是定期更新的,从2014年开始大量的中文文档出现在MOS中,所以对于上面提到的文档都有中文文档可以查询。 在我们这里遇到过系统升级Aix6.1到Aix7.1其中OS级别的参数被重置,导致RAC工作不正常的情况。

 

另外,从原理上,Oracle database是shared memory的重度用户,所以IPC机制中涉及的参数,特别是shared memory相关应该重点关注。

 

一般来说Oracle都是用在关键系统中,所有的audit和hardening参数设置的相关的设定和参数验证的工作应该在上线前完成。

 



 

彭小波:我说几个和数据库性能相关的几个参数。

 

1、从Oracle 9i 以上版本起,共享池分为多个副池(sub pool),最多由7个副池,_kghdsidx_count隐含参数,可以管理副池的个数,在CPU为4,共享池250M以上的情况,可以使用设置_kghdsidx_count值的个数副池管理共享池,副池可以作为独立的共享来管理,有独立的空闲列,LRU列,shared pool锁存器。因此可以减少shared pool锁存器的争用。

 

2、在数据库中发现mutex争用比较多时,可以根据具体情况设置_kgl_hot_object_copies参数,设置SQL争用比较的对象拷贝份数。来达到减少mutex争用的情况。

 

3、_CURSOR_OBSOLETE_THRESHOLD主要用来控制SQL多版本问题,对于版本过多的SQL,这不仅仅占用了内存,而且会使得SQL解析延迟,一次软解析甚至不如重新执行一次硬解析来的高效,所以Oracle引入了一系列的控制手段来处理这些特殊的游标。在11.2.0.3之后,这些解决方案是修改 _CURSOR_OBSOLETE_THRESHOLD,其作用是当SQL版本超过这个参数设定后,直接舍弃这个游标,重新解析,重头开始。在这一版本之前,通过补丁和参数("_cursor_features_enabled" 和 event 106001)可以达成类似的效果。

 

关于SQL的多版本,MOS文章 296377.1 非常值得仔细看看。

 



 

李广才:从数据库初始上线调试来讲,基础设计的部分需要尽量贴合业务系统特性来设置。这类的设置会牵扯到较多的数据库配置,基础部分比如系统设置,内存分配、并行设置、缓存规划、文件磁盘规划、统计信息、索引以及表碎片维护计划等,而这些大部分最终是以性能最优化的角度,所以牵扯出来的范围会比较广。

 

话题上讲到参数设置,我这里抛砖引玉,从运维隐患的角度列出一些实例创建后需要的关注点。

 

deferred_segment_creation延迟段创建特性默认开启是否需要关闭?他主要影响你的一些导出操作。

 

_use_adaptive_log_file_sync特性,相信因为它没少遇见log_sync_waits。

 

_skip_unusable_indexes特性默认开启是否需要关闭?失效的索引不提示但又是不影响业务,这个是好事么?

 

_optimizer_use_feedback特性默认开启,这11g中这bug较多,是否需要关闭?

 

_datafile_write_errors_crash_instance特性默认也是开启的,在出现io超时时候会把整个数据库crash,相对比关闭后只offline datafile,哪个好?

 

optimizer_cature_sql_plan_baselines特性默认是否开启?11g中它会触发一些bug,比如撑爆你的sysaux。

 

query_rewrite_enabled查询重写默认开启是否需要关闭?

 

密码大小写敏感特性默认开启,是否需要关闭,特别是在新老数据库升级或者迁移情况下?

 

登陆失败密码延迟验证特性,该特性的特点主要在密码错误下触发,是否需要屏蔽?

 

基础审计默认开启的特性,审计表的位置以及审计记录管理是否需要斟酌一翻?

 

默认profile 密码180天过期是否需要匹配下密码管理策略或者直接更改?

 

DRM默认开启,是否有必要开启,11g带来的影响也不小呢?

 

直接路径读默认是开启的,是否应该关闭?

 

blank_trimming谓词条件去空值是否打开?

 

optimizer_dynamic_sampling与optimizer_index_caching的比例值是否需要根据应用类型评估设置等?

 

这只是在数据库实例层面的一部分考虑,还有不少需要关注的系统问题,比如系统的大页是否开启,开了就一定好么?swap 11g的比例算法已经不一样了,是否有关注过?

 



 

Rickyzhu:关于系统初始化参数,在不同版本参数不同,但是明显的趋势是数量越来越多。Oracle为了考虑向后的兼容,一些废弃obsolete的参数和一些deprecated参数仍然要保留,新增加的feature又引入了新的参数。

 

在系统升级特别是数据库升级时,为了保证业务的稳定和连续,建议老的参数继续保留,同时对新出现的参数按照Oracle推荐的最佳实践的方法和MOS的notes进行合理设置。

 

举两个例子,最近的一个EBS系统升级,数据库版本从10g让10gR2升级到了11g的最新release 11.2.0.4,有一些参数EBS专属的参数Oracle就提供了详细的notes来介绍,这样就必须按照参数进行设计,否则EBS的功能就会受到影响:

 

*._b_tree_bitmap_plans=FALSE

*._fast_full_scan_enabled=FALSE

 

*._fix_control='13704562:OFF'

 

*._gby_hash_aggregation_enabled=FALSE

*._like_with_bind_as_equality=TRUE

*._optimizer_autostats_job=FALSE

*._sort_elimination_cost_ratio=5

*._sqlexec_progression_cost=2147483647

*._system_trig_enabled=TRUE

 

另外一个例子,就是在测试环境和生产环境的可比性。因为配置不同,生产环境和测试环境在很多典型参数的配置是行也需要进行精细化调整。比如memory_target、sga_target等等。

 

这些前面已经探讨得已经很热烈了,不再赘述。有一个真实的例子。在一个生产环境,配置了streams进行两个数据库之间的数据复制,生产上线后发现stream的延迟总是超过之前定义的阈值,导致告警频发,跟踪发现是streams_pool_size没进行特别的调整。根据自动内存管理特性,只设置了sga 和pga。这样默认的streams池的大小不够,后来参考MOS notes对streams_pool_size进行特别设置,保证了最小值。提升了streams的复制效率。这个问题在测试环境因为数据量和压力的关系就很难提前预测和发现,也要经过实际的测试才能够发现。总而言之,数据库初始化的设置是个细致活,需要精细化的设置和调整。

 



 

杨志洪:这是2个层面的参数。首先,操作系统层面的,AIX的参数,点击【阅读原文】有非常详细的资料供检查。Linux的参数,重点关注HugePage的使用,还有联想服务器如果是上RAC的话,一定要记得把USB心跳关闭(近一年一个用户RAC系统2个节点频繁不定期重启,因为解决掉这个问题后成功成为我们的客户)。

 

数据库层面,重点是一些坑(关闭DRM、关闭AMM等一些新特性,ricky说的针对EBS的)。我这里贡献电信级大数据库系统的实践(注意Oracle每个版本都会做调整的,用之前还是要请专家甄别下,是否还适用):

 

 



 

唐波:比如:log_archive_min_success;比如:log_archive_max_process;比如:log_archive_max_processes;比如:rman中的archivelog deletion policy。

 

群友论点  
 

周俊@HOME.数据集成:用AIX的话存储和光卡的queue depth通常要调整一下,AIX可以用命令标识一下ASM盘防止踩盘事件发生。

 



 

小马:asm的内存参数,遇到过默认参数太小,大批量io操作直接当机。asm的memy_target和share池太小,刚好遇上rman和加磁盘,结果asm当了,基本就是默认参数太小,所以生产环境asm的内存参数还是调大点好。

 



 

FZJ111@CES.DBA:关于磁盘的参数比较容易被忽略,emc、hds、netapp的磁盘怎么调整属性才能发挥最好的io性能。还有网络网卡的,有的是实卡有的是虚卡,网络参数如何调整?对于用vios的架构,一般网卡都是虚的,要通过vios上去调网卡的一些参数,比如全双工、默认速率。对于用vmx的存储,还得让emc的来出参数。

 

其实db实例的参数都是根据应用测试来调的,每个系统业务不同。功能测试也就是uat的参数调的少,sit和压力测试参数要多一些。因为测试指标比较严格,每个模块和业务都是有指标的,sit和压力测试参数基本都要上生产。不仅是db,中间件、系统、存储、网络的参数优化都是比较有深度的。

 



 

lastwinner:场景很多,最佳实践必须细化到某个或某些场景才适用,因此对其他情况就可能没有参考价值了。可以理解为以默认配置为基础,根据具体情况进行适当修改,所有的数据库其实都是在Oracle默认值的基础上修改来的。

 

(以上观点仅供参考,本公众号、发起人及群友均不对上述参数或建议在生产上使用造成的后果负责。)

 

鸣 谢

在“DBA+社群”热议话题讨论活动中,得到了以下联合发起人以及群友们的积极参与和支持。在此,小编整理成文,并附上所有发表观点的人员头像汇总图,特此鸣谢!

  
 

时间: 2024-11-01 09:51:34

调试上线前的数据库需要额外关注哪些参数的相关文章

谈谈新网站上线前要做的几件事

中介交易 SEO诊断 淘宝客 云主机 技术大厅 一个新网站在上线前,需要注意的事情还是有很多的,其中有几个要点要把握好,否则对网站前期的发展很不利.具体要注意什么,要怎么做,今天就讲一下自己的一些经验总结. 1.把握好网站的定位 一个新网站,尤其是个人的小网站,一定要注意网站定位,明确网站市场,不要好高骛远.目前,很多领域都已经有无数网站在做,没有实力的新网站很难在热门领域开辟市场,所以我们要另辟蹊径,抓住某个点,有针对性地提供服务,避免盲目. 2.购买好的域名主机 域名对一个网站也是相当重要的

网站的优化应该在网站上线前就确立

摘要: 现在很多SEO者在接单后到感觉任务难以完成或者约定时间到了网站的排名根本就没有上升,面对这种情况不少SEO者也感悟:网站的优化如果不能够从网站上线之前就进行规划,在网站的 现在很多SEO者在接单后到感觉任务难以完成或者约定时间到了网站的排名根本就没有上升,面对这种情况不少SEO者也感悟:网站的优化如果不能够从网站上线之前就进行规划,在网站的中途进行优化其难度大了很多倍. SEO优化一直都是一个独立的命题,但随着百度搜索引擎对网站的要求越来越高,很多在中途开始进行优化的网站已经不适应百度的

网站上线前要策划好网站的方向和主题

摘要: 网站要发展和存在,在上线前就要策划好网站的方向和主题,选择好网站的空间和程序,设计好网站的结构等,让网站一上线就能达到意想不到的效果,也为网站顺利成长提供方便,只 网站要发展和存在,在上线前就要策划好网站的方向和主题,选择好网站的空间和程序,设计好网站的结构等,让网站一上线就能达到意想不到的效果,也为网站顺利成长提供方便,只有这样网站的优化更新更有效果. 网站行业 网络似海的今天,成千上万的网站出现在用户的面前,使得网站竞争越来越大,这就要求站长在网站上线前就要选择好网站的方向,做网站不

新网站上线前必做的准备和建议

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 网站建设是一个比较艰辛的过程,从网站策划.建设.上线.运营管理.后期的维护等这些工作都是必不可少的.缺少经验的新手站长往往都会急着在网站建设完成后第一时间到各搜索引擎登录入口提交网站,然后做了大量的网站优化(SEO)工作却迟迟没有被搜索引擎收录. 这时新手们或者会认为是网站标题.内容.关键字或外链接没有做好.然后又急着去修改,急着发大量的外链

精准定位 让企业网站优化决胜在上线前!

网站定位是上线前seo必须做好的工作,定位准确会让你的网站优化工作事半功倍,如果定位失策将直接导致优化进程遥遥无期,让企业发展蒙受损失.如何对自身网站进行定位?今天,seo奇兵给大家分享几个思路. 1.企业网站要服务于那些人群? 每种产品和服务不可能满足所有人群需要,都是针对某些特定群体推出的.所以,搞清楚购买人群特征,他们年龄阶段.兴趣点.性格特征.职业.地区都是我们的分析对象,我们要进行深入分析.我们的网站应该如何做内容才能吸引到她们,怎样促使他们来我们的网站深层浏览,长时间停留,如何能转化

网站上线前对于标准化建站的思想

很久没写东西手都生硬了,前段时间帮朋友写了点网站上线前对于标准化建站的想法,现在拿出来给初学者分享下,请高手也多指点 :) 网站优化是分阶段的,在前一阶段,主要对网站的架构提出相关建议,把网站的url做成权重最高的url,以及提出站内页面相关的反向连接计划,并且涉及到网站内页的优化,当然现在这个阶段我们后台人员是我对站内优化以及反向连接的重点辅导对象,现在的搜索引擎算法调整的很先进了,不允许在正规网站上尝试作弊手段了,也就无形中增加了优化的难度,但另一方面使得我可以安心做站,对于网站的优化方案,

杜震教你在网站上线前选择空间?

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 杜震教你在网站上线前选择空间? 我们在网站上线前,都会考虑三个问题:一,域名;二,程序;三,网站空间.而网站空间一般都是在前两个人问题确定后就要考虑的.而对于新手来说,很多人都比较在乎空间的价格.容量等,但因为没有经历过,所以都并不清楚一个好的空间是多么重要的一件事.在这里,笔者以三年来的网络推广经验,向大家介绍一下选择空间前的必备技巧. 一

java oracle-怎么在oracle用imp导入数据库前删除数据库里的表 触发器怎么写 或者java代码怎么写

问题描述 怎么在oracle用imp导入数据库前删除数据库里的表 触发器怎么写 或者java代码怎么写 // 还原 Button button_1 = new Button(composite_1, SWT.NONE); button_1.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { TableItem[] tis = table.get

新站上线前必做的一些工作

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 本人的网站已经上线有两个多月时间左右了,在这两个月中经历了许多许多,也走了很多的弯路,今天我就主要结合自己这两个月中的经验来总结一下一个新站上线前必做的几个工作吧.不妥之处,请板砖伺候,呵呵! 第一,给自己网站做好定位 首先,要考虑自己要做什么网站,是团队做还是个人做,这是要考虑清楚,并要了解自己做站技巧的程度和SEO优化的程度来进行选择网站