问答集萃
接下来,我们分享本期DBASK小程序整理出的问题和诊断总结,供大家参考学习。
问题一、对于temp表空间爆满情况,怎么处理?
undo temp表空间很大,我的思路是增大表空间大小或者,新建个temp1,然后默认的制定新建temp1,但是我感觉这样还会满。正常思路怎么处理这种undo temp表空间大问题?
诊断结论:最根本的方法是去优化占用temp和undo多的sql,比如排序多的、执行时间长的sql等等。结合自己的环境设置合理的temp和undo空间,一般是给核心业务用户单独的temp表空间,以免其他误操作对核心业务影响。另外这两个表空间是不会释放的,也就是随着业务的运行使用率会越来越大,最后接近100%,一般如果没有报ora-01555和无法扩容temp表空间的错误可以忽略表空间使用率。
问题二、extended cluster在一个站点故障时,存活站点内实例的处理流程
存活站点实例处理此故障的流程,以及预估一般需要多长时间恢复服务能力。
诊断结论:以两种典型故障为例,1、两边数据库均承载业务,任何一边发生故障,则由另一边承载所有业务,无须进行主备站点切换。故障站点原先承载的用户会话在几分钟内由其他存活节点接管,体验上会有一些卡顿,这个与普通RAC节点故障一样,某个实例发生故障后,集群reconfiguration,应用TAF。2、若站点间的心跳线中断,则由第三站点的仲裁盘决定驱逐哪个站点,哪个站点存活。被驱逐站点原先承载的用户在体验上会有几分钟的卡顿。
问题三、Oracle 12c OEM upgrade to 13c
升级本端服务器agent 流程。
诊断结论:这个要看具体的版本,就算从12.1.0.1到12.1.0.5都需要先升级到12.1.0.3再升级到12.1.0.5,12到13直接升级支持最低版本是12.1.0.5,其他都需要先升级到中间版本。GC升级完之后,直接在GC管理页面升级agent即可。
问题四、Oracle数据库第一次访问卡死
系统页面后台连接oracle数据库,第一次访问系统时候,页面框架都能出来,但是需要调数据库显示数据的地方一直在转圈,也不报错,再次刷新页面的时候数据就出来,请问一下这是数据库什么参数设置影响的吗?
诊断结论:这个还是得从应用着手,debug打开看下哪里出现了问题。对于数据库来说,只是存在第一次执行SQL需要解析、读取磁盘数据缓存到内存,第二次执行就直接从内存取数据,速度上会快一些。另外这个现象很有可能是连接到数据库的长连接由于长时间未进行数据交互,被网关或防火墙断开,因此第一次访问的时候会等待一个TNS超时。可以让应用增加日志的输出,看看问题是否发生在获取数据库连接后运行第一个SQL的地方。如果是这个问题,解决思路是修改网关或防火墙的配置,避免中断空闲连接。或者在数据库中配置死连接检查DCD。
问题五、卸载完DB,如何完全卸载GI
卸载grid,运行第二个root脚本报错,估计是因为asm实例没有关闭必须是有一个要保持开启。之手用sysasm关闭所有asm实例再运行还是报错,执行./crsctl stat res -t 发现.dg .proxy_advm .asm等资源虽然变offline但是ora.ASMNET1LSNR_ASM.lsnr还是online,crsctl stop crs也执行不了如何解决?
诊断结论:尝试强制停止:crsctl stop crs -f,再deconfig -force和deinstall,详细步骤请查看详情。
问题六、9.2.0.8 aix 升级11.2.0.4 aix升级后需要检查什么
参考《手动升级到 Oracle Database 11gR2 (11.2)的完整核对清单 (文档 ID 1674333.1)》进行升级,其中timezone不升级。升级后除了检查升级日志,后台日志,用户对象。
诊断结论:优化器从RBO到CBO,改变很大,确保应用在生产数据库升级前已经做过了充分的SPA测试。
问题七、win安装10g报错Ora-12546 tns:permission denied
Windows 2012 r2 64位系统安装10.2.0.4的数据库64位,总会出现这个报错,要么是dbca的时候,要么就是建完数据库,一重启服务器之后,sqlplus也登陆不了报错。尝试了一下安装了10.2.0.5的补丁的话就没在出现这问题,反复试了几次,这个是bug么?
诊断结论:这个是因为Oracle 10.2.0.4发行的时候,Windows 7都还没有出,而从Windows 7开始(甚至是更早的Windwos Vista开始),Windows的权限体系出现了非常大的变化,而早期的Oracle版本并不能适应这种新环境,所以会出各种各样的问题。用新版本就好了,如你说的Oracle 10.2.0.5,该小版本正好解决这个环境问题,所以就没问题了。
问题八、oracle数据库平台兼容性列表
Oracle各个版本操作系统兼容性列表
诊断结论:可以参考https://docs.oracle.com/en/database/oracle/oracle-database/index.html,每个版本都有不同的支持列表,在官方文档上可以查到。
问题九、dg库控制文件扩展报错
dg库的control1扩展报错,用的是裸设备,2和3还是原来大小,主库的没有报错,并且大小没有变,求解释。
专家解答:从ALERT报错可以看出,控制文件从8050个块扩展到13168个块时报错,而裸设备最大只支持8050个块,无法扩展,可以尝试将参数CONTROL_FILE_RECORD_KEEP_TIME改小,避免控制文件报错。
问题十、sql调条件中where1=1,基于不同的优化器cbo会走索引,而rbo则不会
应用中经常能够看到where1=1的条件。请问,为什么在不同的优化器下,rbo不会走索引而是全扫?
诊断结论:与where 1=1没有关系,这个SQL相当于没有where条件。RBO是定义死的一套规则,只有在MAX和MIN索引列时才会走索引全扫,也不会去看统计信息。
问题十一、OGG 11.2无法使用format release 12.3
高版本OGG传递文件到11.2,传递失败,试过加参数format release,不行,高版本OGG传递文件到12.1,应用失败,试过加参数format release,不行。求一份OGG版本兼容。
诊断结论:建议源端、目标端最好用同一版本。目前从官方文档来看,10、11、12都可以通过FORMAT RELEASE参数来兼容,除了CDB必须要求12.3以上外。