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

数据库【问答集萃】第22期-墨天轮20211220

原创 墨天轮问答平台 2021-12-27
1784

上周问答集萃(12月20日-12月26日)

未命名_自定义px_202104260.png

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

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

1、Oracle:用pl/sql导入,总是死机,这是什么原因?

解答: 如果是用plsql developer以复制粘贴的方式导入大量数据的话,界面可能会出现无响应,但这并不是死机,后台还是在运行的。另外,还要检查下是不是已经产生锁表的情况了(DarkAthena)

2、Oracle同一字段用两个工具查出来时间格式不一样?

解答: 和工具的时间格式有关,第一个工具我好像使用的就是这个, 可以在工具-首选项-数据库-nls-查看日期格式。希望能帮助到你。(କ1900)

3、oracle11g rac搭建配置互信问题

解答: 是的,在安装rac,执行节点向其他节点传输文件(如ORACLE_HOME下所有文件)用的免密传输,所以22端口应该是oracle写到程序里的,没看到什么地方可以修改,所以最好开通22端口(摸摸鱼)

4、 Oracle复制进程配置文件一直加handlecollisions参数,会不会影响一致性?

解答: 如果你需要加handlecollisions参数,进程才能起来,那说明,本身你这个数据已经不严格一致了,这个参数反而能有可能让你再次数据一致。(当然仅仅是有可能,数据是否一致还是需要使用ogg veridata比对或者通过手工比对)
可以查看官方文档reference -> How HANDLECOLLISIONS works解释。(你好我是李白)

5、OGG 源端表结构变动, 目标端没有变, 为什么复制进程没有停?

解答: 看是什么数据库版本以及ogg版本了

oracle到oracle 本来就不用停进程,支持的。

mysql到oracle,21c支持的。mysql最好是8

诸如此类等等。

oracle mysql到kafka,到hbase,到hdfs都不用停。(薛晓刚)

6、Mysql关于group by添加索引的疑问。

解答: 所谓最好的三星索引
1、过滤性好,能过滤掉较多的行
2、索引覆盖
3、SQL的排序也刚好是索引的排序

满足以上三点,就是最好的三星索引了。
但从你的SQL来看。1与3肯定不能同时满足了。
要么满足1,2, 要么满足2,3

但当底是排序对你这个SQL性能影响大还是过滤,这个要根据实际的数据来看。

你上面的索引就是以满足1,2来的。
不过如果建alter table table_name add index idx_dba(create_time,ware_code,customer_code,status_code);
也可以试试把 ware_code 放在最左试一试
alter table table_name add index idx_dba(ware_code,create_time,customer_code,status_code); 这样可以让过滤key 实现前两个字段过滤。(aisql)

7、oracle 10.2.0.4标准版中v$dataguard_stats适用吗?

解答: 那你是如何确认现在dg同步是正常的呢?alert log有输出media recover应用日志的信息吗?

用这个我sql查试试(摸摸鱼)

select process,status,sequence#,THREAD#,BLOCK# from v$managed_standby;
复制

8、MySQL数据库碎片如何清除?

解答: alter table 表名 engine=InnoDB是解决方案。

预防是id 自增,最好别删除。

表有分区,过期drop 分区。(薛晓刚)

9、oracle如何使用触发器将A表的指定字段同步到B表

解答

create or replace trigger after update on EMP_A for each row declare begin if :old.updatetime <> :new.updatetime then update EMP_b b set b.updatetime = :new.updatetime where b.empno = :new.empno; end if; end; /
复制

需求不够完整,根据问题描述只能这么写,需要注意几个问题

要根据什么条件来更新数据?我这个例子是假定根据empno这个字段相等的
如果EMP_A表存在插入或者删除,是否要对EMP_b表进行同步操作?这个例子中只对update进行操作,不含insert和delete
updatetime是否存在空值?把空值更新成非空,此例也不会进行处理,除非修改判断条件nvl(:old.updatetime,date’1900-01-01’) <> nvl(:new.updatetime,date’1900-01-01’)
另外,你这个例子中两个表结构是完全一致的,目的是什么?说清楚背景,或许有更好的解决方案。(DarkAthena)

10、19c上密码包含特殊字符@无法直接登录。

解答: 19c上不可以直接sqlplus test/”test@123“,在19c之前(11g,12c)都是可以的。

Mos文档 (Doc ID 2761789.1)针对这个有具体描述,原因是命中未发布的bug导致。

提供了两种解决方法:

1.交互式登录

2.sqlplus /nolog

conn test/”test@123“

另外oracle不推荐密码使用@字符,推荐的特殊字符:_ $ #(摸摸鱼)

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

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



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

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

序号 1 2 3 4 5 6 7 8
用户昵称 iPhone Mini 蛋蛋。 红色 yangweizhi 沈西含 佳佳 jackyimi Amos


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

企业微信截图_20211227094014.png

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

评论

目录
  • 上周问答集萃(12月20日-12月26日)