暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库【问答集萃】第14期-墨天轮20211025

原创 墨天轮问答平台 2021-11-01
705

上周问答集萃(10月25日-10月31日)

未命名_自定义px_202104260.png

由于目前问答平台问题较多,问答集萃改为每周更新,并同时公布【采纳榜单】及【优秀提问者名单】。

我们定期从墨天轮问答平台上用户遇到的数据库问题中整理出一些常见问题和诊断总结,供大家参考学习,详细的诊断分析过程可以通过点击标题链接查看。

1、_optimizer_mjc_enabled含义

解答: Description(文成)

If the optimizer_index_caching and optimizer_index_cost_adj parameters are set to non-default values the optimizer may select a merge join cartesian even if hints are specified for other joins. This can occur as CBO costs the MERGE JOIN as if it was a nested loops without any keys and so the parameters incorrectly affect the merge join costing. Eg: select /*+ use_hash (a) use_hash (b) use_hash (c) */ a.id from look_up a inner join look_up b on (a.id = b.id) inner join look_up c on (b.id = c.id) where a.text = 'aa' and b.text = 'bb' and c.text = 'cc' ^ | 0 | SELECT STATEMENT | | | | 6 | | 1 | HASH JOIN | | 2 | 36 | 6 | | 2 | INDEX RANGE SCAN | LOOK_UP_UK| 100 | 600 | 1 | | 3 | MERGE JOIN CARTESIAN | | 20K | 234K | 4 | | 4 | INDEX RANGE SCAN | LOOK_UP_UK| 2 | 12 | 1 | | 5 | BUFFER SORT | | 10K | 59K | 3 | | 6 | INDEX RANGE SCAN | LOOK_UP_UK| 10K | 59K | 1 | Predicate Information: ---------------------- 1 - access("B"."ID"="C"."ID" AND "A"."ID"="B"."ID") 2 - access("B"."TEXT"='bb') 4 - access("A"."TEXT"='aa') 6 - access("C"."TEXT"='cc') Workaround Set "_optimizer_mjc_enabled"=false;

2、Oracle存储过程无法编译,无法删除,只要编译或删除直接卡死无响应?

解答: https://www.modb.pro/db/40299

可以参考下这篇文章,找到blocking session,不影响业务的情况下,干掉阻塞源即可。

个人不建议使用v$access视图,生产环境下,这个视图太慢了。(王小那个鑫)


3、 用postgresql连续往一个表里执行4次insert语句,每次insert都要提交一次事务吗?

解答:
如果你的4次插入都是在一个会话中,最后一次提交就行。如果你是插入后退出在登录再插入这样是需要每次 commit 的。

如果你的 自动提交 是打开的,原则上则不需要提交,事务会自动提交的。

postgres=# \echo :AUTOCOMMIT
on

postgres=# \set AUTOCOMMIT off
postgres=# \echo :AUTOCOMMIT
off(JieKeXu)

4、 19C rac异机恢复到单机上CDB报错rman-07537错误。

解答: 找到原因了,原因是enable_pluggable_database参数值要设为true。(糖醋里脊)

5、ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname对应关系。

解答: 个人感觉,不同场景使用不同的名字。

db_name,搭建DG时,备库的db_name要与主库一致,db_unique_name需要不同于主库;

instance_name,ps -ef |grep -i smon 看到的名称;

ORACLE_SID ,操作系统的环境变量,与instance_name保持一致;

service_name,服务名,监听的名字,dblink里可以用到;(trex)

6、Oracle 10g集群:做断网测试,拔掉a节点的网线,a的vip会先离线然后跑到b节点,接着a的监听离线,这个时候恢复网络,a节点的监听不会自己起来,是什么原因?

解答: 10g好像一直是这样手动的步骤

关闭vip1
$ crs_stop ora.db1.vip -f

再启动节点1的监听

$ crs_start ora.db1.LISTENER_DB1.lsnr -c db1(文成)

7、ogg的mgr进程的autorestart参数作用。

解答:
1.查备份日志

安装目录下,有个log。备份日志为dm_BAKRES_日期.log

里面有详细的备份日志。

2.查操作系统文件

如果知道备份路径的话去备份路径查。如果不知道备份路径的话去数据文件路径里面有个bak目录里面查看有没有备份文件。(阿毛)

8、表空间和pdb比较。

解答: 主要看资源限制有没有要求?
1、用户级别的熔断,当SQL代码无法按照规范执行,达到阈值,则数据库将所有用这个用户的连接全部中断。防止影响到其他用户。无需其他支持
2、会话级别的熔断,当SQL代码无法按照规范执行,达到阈值,则数据库将这个会话的请求进行阻塞,防止影响到其他会话。需要PDB支持。
3、SQL级别的熔断(一个功能或者按钮),,当SQL代码无法按照规范执行,达到阈值,则数据库将这个SQL的请求进行自动优化、优化失败进行封存,防止影响到其他功能或者按钮。需要一体机支持。(薛晓刚)

9、19C插入pdb时提示ora-65005。

解答https://www.eygle.com/archives/2016/12/ora-01276_pluggable.html
可以参考一下,你的问题是windows 的文件路径是D:\,但是linux的路径是/root/xxx 估计是路径没有转换过来,你从这个思路看看怎么处理。(杨卓)

10、oracle表设置nologging。

解答: 可以,但是要注意是否有dg,ogg等,dg,ogg是需要force logging的,此时no logging是无效的。(肖杰)


墨力问答计划正在如火如荼进行中!

成为优秀提问者指南https://www.modb.pro/db/105726
墨力问答计划https://www.modb.pro/db/100800



本期“墨力问答计划”最佳提问者名单

副本_未命名_自定义px_2021092817_30_32.png

序号 1 2 3 4 5 6 7
用户昵称 iPhone Mini 糖醋里脊 许肖肖 沈西含 刘广 MacBookPro 执戟郎


本期“墨力问答计划”采纳榜单

12.png

最后修改时间:2021-12-13 17:06:02
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论