引言
DBASK是一个在线浏览数据库最新资讯和技术文章的微信小程序,还可以查阅知识库提交问题。近期我们在DBASK小程序新关联了PingCAP公众号,将最新资讯模块放在首页第一栏显示,同时调整了文章显示样式,优化知识库显示内容,欢迎大家到小程序内体验。
问答集萃
接下来,我们分享本期整理出的问题和诊断总结,供大家参考学习,详细的诊断分析过程可以通过标题链接跳转到小程序中查看。
问题一、oracle 12.2 rac SCM0进程占用cpu高
1节点 scm0进程占用cpu高,是什么问题导致,scm0进程是否可以关闭?关闭了该进程,是否有什么影响?
诊断结论:DLM统计信息收集和管理从站(SCM0)负责收集和管理与全局入队服务(GES)和全局高速缓存服务(GCS)相关的统计信息。仅当启用DLM统计信息收集时,此从属服务器才存在,可以直接kill,关闭进程后没有任何影响,12.2中根本就还没用到DLM统计信息(18c和19c才开始用到)。
问题二、ORA-19706:无效的SCN
dblink在正常使用时报错:ORA-19706:无效的SCN ORA-02063:紧接着line ,原库:oracle10.2.0.4 AIX Version 5.3 ,目标库:11.2.0.4 AIX Version 7.1,找了网上的说法,需要升级原库,然后再修改隐含参数_external_scn_rejection_threshold_hours;麻烦问下恩墨大师,有没有不升级也可解决的办法?
诊断结论:今年6月SCN还会自动升级,如果要继续使用DBLINK,官方建议必须升级打补丁,10g至少升级到10205再打补丁,详情参看这个专题下面的文章modb.pro/db/topic/0/564
问题三、MySQL ERROR 1205 (HY000): Lock wait timeout exceeded
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction,请教各位 资深前辈 Mysql Innodb 引擎数据库 出现1205 锁等待问题 这个问题会是什么原因导致的呢?
诊断结论:一般来说,这个错误表示行锁等待超时。
InnoDB是事务引擎,每次对行操作(一般是update,delete)前,都需要拿到行锁,(在一些特定场景下,还需要求到间隙锁),之后才能实际更新数据,如果你的事务将要修改的数据对应的锁已经被别的事务持有,在那个事务提交或者回滚之前,你的语句就一直会等待,这个等待超过指定时间(innodb_lock_wait_timeout)之后,就会让你的会话结束等待,返回这个错误。
解决办法的话,一个是看下当前是否有长耗时会话或者SQL.
问题四、OGG复制进程报错ORA-01403: no data found
之前同事撘了个ogg进程,一直数据同步没有问题。忽然某一天就报了这种类似的错:ORA-01403,然后把复制进程dsc撑爆了写不进去了,进程就断掉了。然后同事又重新初始化了一遍,过了几天又报了类似的错,这是什么原因呢?
诊断结论:配了discard参数复制进程会将错误记录输出到discard文件中,但该文件虽然配置了近50M的大小,可错误信息依然没能完全写下,所以你应该进行以下步骤来处理
1、使用view params reppd检查discard的设置;
2、分析DISCARDFILE,看看是什么原因导致复制中产生那么多的错误信息。
问题五、Oracle 设置NTP时间同步问题
有这样一个问题,就是我的oracle 集群时间同步是用自己的ctss服务同步的,但是系统时间就缓慢的变得越来越慢,我现在想要换成ntp服务来同步时间,大致的操作步骤是什么样的呢?需要重启数据库集群吗,有什么风险吗?没做个这个没什么经验,求指导。
诊断结论:1、参考对应的平台的ntp配置文档配置,2个节点指向同一个可用的ntp服务器,2、关闭集群服务,3、2个节点手工和ntp服务器强制同步一次,4、启动集群服务
问题六、修改sys和system密码会对DATAGUARD有影响吗?
想询问一下,修改oracle数据库sys和system的密码会对DATAGUARD主备库之间的数据同步产生影响吗?
诊断结论:sys 的会有影响,12.2 可以自动同步口令文件。如果是11g的话,可以设置redo_transport_user参数指定特定用户作为redo同步。
问题七、split分区ora-01652
新建一个分区表LGY_201905,在t_gnlk表中,创建LGY_201905表空间成功,在创建分区的时候报错,ora-01652:无法通过8192(在表空间LGY_201905)扩展temp段。
诊断结论:split在拆分分区时至少需要两倍的空间。
问题八、vip转移之后,无法连接
rac 两个节点,节点一down掉之后,节点一的vip转移到节点二了,但是通过连接节点一的vip连接不到数据库,是不是把节点一的vip加到节点2的local_listener和remote_listener参数里面进行配置就可以实现?
诊断结论:节点一的vip飘到节点二了,通过节点一的VIP是无法连接数据库的,要么通过scanip,要么在客户端连接字符串中同时配两个节点的VIP并将failover设置成on。
问题九、Oracle sga内存如何分配
服务器内存251G,目前sga 为70G,想修改sga大小,如何取个合理的值,db_cache_size 和shared_pool_size如何取值,目前参数另外cdb-sga为70g想修改sga的大小,调整多少合适?
专家解答:1、参考老熊的文章如何给Oracle分配内存 modb.pro/db/article/0/126,2、如果SGA给的70G,可以先设置db_cache_size=35G,shared_pool_size=15G,后期根据数据库运行情况再调整,3、内存都是根据自己需求一步一步调整的,合适自己的系统就行。
问题十、sqlplus连接和dblink连接区别
请教下,sqlplus连接和dblink连接的区别是什么?例如,我用ora8/9的client,sqlplus可以连接12c,但在8的库中就不能dblink连接12c?非常感谢
诊断结论:sqlplus是一个客户端工具,而dblink是走的oracle内部连接,也就是两个完全不相干的东西。DBLINK跨版本连接有个兼容列表,可通过详情查看。
问题十一、oracle12c rac service TAF问题
通过srvcrl add service添加的service,但是再shutdown 实例1后 scv服务不自动切换到实例2,请问是什么原因?
诊断结论:从12c开始,通过sqlplus和srvctl这种人为的命令关闭数据库,集群并不会转移service,因为CRS觉得这是人为的例行事件。通过-failover或者直接kill pmon进程来测试service转移。