本周问答集萃
我们定期从墨天轮问答平台上用户遇到的数据库问题中整理出一些常见问题和诊断总结,供大家参考学习,详细的诊断分析过程可以通过点击标题链接查看。
1、生产环境MySQL 8.0.21 gtid主从同步,每周因为同一张表必报一次Last_SQL_Errno:
解答: 有可能出在now()函数上,从库执行的时候,now()函数产生的时间是与主库执行时有差异了,造成该表在主从环境中数据不一致。
2、OGG Oracle到MySQL同步,colmap列映射报OGG-00919 Error in COLMAP clause
解答: 在ogg配置文件中将字段名改成大写 COLMAP (“target column” = ”source expression“);
3、OGG实时同步如何实现当源端字段值为1时,目标端该字段改为0 ,当源端字段为0或空值时,目标端该字段改为1 ?
解答: 使用@EVAL可以,比如:map test2.test1, target test2.test1,COLMAP(usedefaults,NAME=@EVAL(NAME=‘1’,‘0’,NAME=‘0’,‘1’,‘1’));
解答: 支持function,点击查看OGG 19.1官方文档,其他版本具体支持情况也可以参考各个版本官方文档。
5、mysql in sysdate子查询过滤条件相当于失效,now过滤条件可以正常使用,这个结论是否正确?
解答: set optimizer_switch=‘semijoin=off’;关闭semijon优化后再试试in +sysdate子查询语句。
6、Oracle数据库中x$ 的表记录通常会保留多久?有没有参数进行限定呢?
解答: 不同x$数据由不同存储时间,例如,但是由于x$是内存结构,所以会随着实例的关闭x$数据会烟消云散:(1)常见的x$kglob/x$kgllk/x$kglpn等会随着sharedpool变化而变话; (2)有一些与存储相关,例如与ASM区段映射有关的x$kffxp,会随着ASM映射关系变化而变化,也有一些与RMAN备份相关的x$kccbf,会随着rman备份信息变化而变化。
解答: 墨天轮上有很多类似的文档,点击查看《Oracle DG的归档缺失修复》
8、MySQL数据库卡顿,事后查询 show engine innodb status可以看到死锁,请问下如何定位到具体问题sql。
解答: 通过DDL看出,将KEY index_order_movement_unit_dest (dest) USING BTREE,这个索引改成一个组合索引(dest,unit_no)。
9、请教下 oracle的merge into 在gp 里面是改为 update + insert 吗?
解答: 需要改造,pg有insert on conflict,但是看gp文档好像没有这种语法。
10、19c dbca 单机 建库 19c DBT-05509:Failed to connect to the specified database
解答: 修改sqlnet.ora文件:SQLNET.authentication_services=(none) 不允许操作系统验证登录,改为SQLNET.AUTHENTICATION_SERVICES = (ALL) 允许操作系统验证登录。dbca建库就不报错了。
11、如果asm磁盘组的磁盘大小不一样,会导致大的磁盘空间浪费吗?
解答: 看你的磁盘组冗余模式跟分配了。
(1)external的话,会造成不同磁盘au分布不均匀,磁盘组磁盘大小不同,可以预见的是,当小磁盘放完之后,大磁盘将容纳后续asm extent的全部au,将导致读写无法将i/o分散到不同磁盘,造成一定i/o能力下降。
(2)normal跟high的话,由于au需要保存多份,
a. 如果容量大小不同磁盘实际造成了不同failgroup大小不同,则会影响存储的,木桶原理,例如1g 500M两块磁盘组构成了normal冗余磁盘组,则实际可使用量为500m。
b. 如果大小盘均匀分散在不同failgroup,容量不会受到影响,但是同样根据上面原理,理论上i/o性能会有影响。例如四块磁盘1g 1g 500m 500m 如果1g+500构成normal磁盘组第一个failgroup,1g+500g构成了normal磁盘组第二个failgroup,则磁盘组实际容量为1g+500m。
本周回复问题数排行前三
本周墨天轮问答平台回复问题数前三名的分别为:cqiwen、Tcaplus、你好我是李白
恭喜以上网友将分别获得100墨值、80墨值、50墨值奖励。
评论
