前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >20万DBA在关注的11个问题

20万DBA在关注的11个问题

作者头像
数据和云
修改2019-08-07 16:32:02
9510
修改2019-08-07 16:32:02
举报
文章被收录于专栏:数据和云数据和云

引言


云和恩墨旗下的DBASK小程序近期增加了数据库 MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的专题栏目和一些新的技术专家,另外,也新关联了技术闲谈、OB、架构文摘、51CTO技术栈等等数据领域的公众号,欢迎大家阅读分享。

新晋技术专家


下面是墨天轮DBASK部分新晋的技术专家。大家可以点击往期阅读《墨天轮DBASK技术专家邀请函》了解详情,申请成为我们的技术专家,加入专家团队,与我们一起创建一个开放互助的数据库技术社区。

房晓乐

TiDB学院院长

赵全文

Oracle ACE Associate,擅长数据库日常运维和性能优化

利成文

擅长Oracle, DB2, SQL Server等数据库

李敏

擅长Oracle RAC、ASM等高可用领域,另外人称XD小王子

邓秋爽

擅长Oracle性能优化和故障处理

许文榕

擅长Oracle日常运维及故障处理

许玉晨

擅长Oracle日常运维及故障处理

孙加鹏

擅长Oracle、SQL Server等数据库

谢金融

擅长Oracle日常运维及故障处理

刘娣

恩墨东区交付一姐,擅长Oracle性能优化

刘文波

擅长Oracle日常运维、故障处理以及性能优化

陈刚

擅长Oracle故障处理

周琦放

擅长Oracle性能优化

杨天成

擅长Oracle、及开源数据库

张敏

擅长Oracle数据库的日常运维

新关联公众号


墨天轮DBASK是一个开放互助的数据库技术社区。所以,我们也新关联了技术闲谈、OB、架构文摘、51CTO技术栈等等数据领域的公众号,方便大家的阅读。如果有和数据相关的公众号,有文章转载合作的需求,可以留言联系小编哦~

我们分享本期DBASK小程序整理出的问题和诊断总结,供大家参考学习,详细的诊断分析过程可以通过标题链接跳转到小程序中查看。


问题一、总结不走索引的常见情况

请问SQL什么情况下不走索引,帮忙总结一下。

诊断结论

1. 谓词中出现NULL过滤条件

2. 谓词中出现函数转换导致没有走索引;

3. 统计信息不准确;

4. 在WEHRE条件中like中关键字两边都有"%";

5. 查询条件值与列类型不一致;

6. 查询条件列进行数学运算;

7. 索引列在 IN 或者多个 OR 语句中;

8. 是否使用的是不可见索引等。


问题二、sid和服务名,和tns别名的区别

sid和服务名,和tns别名的区别。之间是如何区分的?

诊断结论:拿两节点RAC的情况说明下吧:db1/db2为两个节点的sid,是两个节点数据库实例的唯一名称,与instance_name参数一致分别为db1/db2;db为服务名,方便应用连接数据库,与service_name参数一致两个节点为db;tns别名为在tnsnames.ora文件中自定义的别名,应用使用此别名连接数据库,如连接字符串为db,tns别名设置为crmdb,应用连接直接使用crmdb即可,方便辨别。


问题三、oracle DG failover后更改flashback操作的并行度

我这边遇到一个问题,想改变DG在failover后主库进行的flashback操作时的并行度,就是主库执行flashback to scn xxxxxx的命令所默认的并行度。我们观察到默认是128的parallel,但是由于某些原因,我们可能需要降低并行度,请问有什么参数可以控制吗?

我在网上到处都找不到相关文章,也无法从专业书籍里找到类似的研究。

诊断结论:经测试,flashback的并行度默认受CPU_COUNT参数控制。


问题四、MySQL体系结构中一直说也有SGA和PGA,请问具体位置在哪?

MySQL 体系结构中一直说也有 SGA 和 PGA,5.7 的官方文档也没有描述,那请问是在 InnoDB 中,还是具体位置在哪?

诊断结论:一般而言,如果对应于Oracl的这两个对应概念,SGA指的是以Innodb buffer pool,innodb字典,frm缓存等公用缓存组合出来的内存区域。PGA指的是以sort buffer,binlog buffer等线程专用内存组合成的内存区域。


问题五、oracle 11g支持IPV6吗?

公司最近在做IPV6的改造方案,我想问下对现有oracle数据库会有什么影响吗?公司主要用oracle11g和oracle12c。

诊断结论:11gr2支持单节点使用ipv6,12cR1支持public IP的ipv6(内联不支持),12cR2完全支持。


问题六、move表后,表空间可用300G,但是无法resize

由于磁盘组冗余度不符合安全要求,对各表空间(Bigfile)进行清理后尝试做数据文件的resize操作,过程如下:

1. 新建表空间,作为数据中转用

2. MOVE大部分表(90%)至其新建表空间后MOVE回原有表空间,从而减少数据库碎片

3. 收缩对应的数据文件在MOVE回原有表空间后重建相关索引,统计发现可用空间提高40G左右,有效的减少了碎片,但是无法resize数据文件到MOVE之后的大小。

诊断结论:实际上按照你的操作思路,可以move 100%的表都去另外一个表空间,然后直接drop掉原有表空间就可以了。如果存在没MOVE表的EXTENTS已经扩展到了数据文件的边缘,是没办法resize的。


问题七、如何快速预估表的行数

请问有哪些方法可以快速预估表的行数?

诊断结论:

1. 并行查询count(*);

2. 统计信息num_rows字段;

3. sample block() 取样查询。


问题八、RAC配置多个public网络

现在有一个需求,客户有两个网络,都需要连接数据库,需要配置两个public网络,请问如何配置。

诊断结论:首先官方建议不要在安装Oracle时配置多个public网络,等集群安装完之后再通过命令去添加public网络,测试步骤详见小程序文章。


问题九、关于分区表全局分区索引和全局不分区索引的效率

按月分区的分区表,单个分区表记录大约1500万,对于非分区键上的索引来说,是建全局分区索引还是不分区索引效率高?分区索引按照列HASH分区还是有其它方式?

专家解答:LOCAL索引的最大好处是在进行分区操作,比如TRUNCATE PARTITION, DROP PARTITION时,不会出现索引INVALID的情况,不影响索引的可用性。由于GLOBAL索引所有的数据存储在一起,因此当执行分区操作的时候,索引会失效,而如果想要保证所有的有效性,需要增加UPDATE (GLOBAL) INDEXES语句,这使得原本很快结束的DDL操作,由于需要维护全局索引而变得非常缓慢,且产生大量的日志。12c之后,全局索引的异步同步可以缓解全局索引的这个问题。

而GLOBAL索引的好处是,在表变为分区后,只要索引仍然是GLOBAL索引,通过索引访问数据的效率就不会下降。由于LOCAL索引的索引分区数量和表分区数量相等,如果访问一个LOCAL索引,且查询条件未指定分区键值,这时Oracle将会扫描所有的索引分区。而GLOBAL索引则只需要访问一棵索引树,当分区数量众多时,二者的效率差异是非常明显的。

当然,它们还有其他的区别。就用户而言,判断需要GLOBAL还是LOCAL索引,最主要看是否会频繁进行分区的维护操作,比如定期删除老分区,如果是的话,LOCAL是最佳选择,如果不是,则考虑GLOBAL索引。


问题十、同样的SQL,变量不同执行计划不一样

一条相似的SQL语句,变量值不同,执行计划不同。SQL如下:

代码语言:javascript
复制
select order_no from OWNER.TAB_NAME where pa_id = '10221178' and ORDER_TIME > SYSDATE - 120;(异常)
select order_no from OWNER.TAB_NAME where pa_id = '10221178' and ORDER_TIME > SYSDATE - 150;(正常)

诊断结论:120的trc文件可以看到成本最低的是bit map and的执行路径,120的trc文件可以看到成本最低的是bit map and的执行路径。至于为什么两个执行计划不一样,应该和IDX_XXX索引选择率变化导致bit map的成本增加有关。


问题十一、oralce 11g RAC 系统时间同步问题

Oralce 11g RAC 系统时间慢慢的就比正常时间慢了,如何解决呢,rac节点之间时间是同步的,但是比实际时间慢出30分钟,这个问题如何避免呢,rac本身自带了时间同步的服务,还可以在外面再加ntp服务吗?

诊断结论:一般都是在两节点开启NTP服务,同步外部NTP服务器的时间,实践中都是配置NTP服务。如果启用NTP服务,集群自己的ctss服务会停止,没有影响。如果需要启用NTP,特殊情况下可能会导致节点重启,保险起见,可以到下次停机窗口一起变更。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据和云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 诊断结论:经测试,flashback的并行度默认受CPU_COUNT参数控制。
  • 诊断结论:首先官方建议不要在安装Oracle时配置多个public网络,等集群安装完之后再通过命令去添加public网络,测试步骤详见小程序文章。
  • 专家解答:LOCAL索引的最大好处是在进行分区操作,比如TRUNCATE PARTITION, DROP PARTITION时,不会出现索引INVALID的情况,不影响索引的可用性。由于GLOBAL索引所有的数据存储在一起,因此当执行分区操作的时候,索引会失效,而如果想要保证所有的有效性,需要增加UPDATE (GLOBAL) INDEXES语句,这使得原本很快结束的DDL操作,由于需要维护全局索引而变得非常缓慢,且产生大量的日志。12c之后,全局索引的异步同步可以缓解全局索引的这个问题。
  • 而GLOBAL索引的好处是,在表变为分区后,只要索引仍然是GLOBAL索引,通过索引访问数据的效率就不会下降。由于LOCAL索引的索引分区数量和表分区数量相等,如果访问一个LOCAL索引,且查询条件未指定分区键值,这时Oracle将会扫描所有的索引分区。而GLOBAL索引则只需要访问一棵索引树,当分区数量众多时,二者的效率差异是非常明显的。
  • 当然,它们还有其他的区别。就用户而言,判断需要GLOBAL还是LOCAL索引,最主要看是否会频繁进行分区的维护操作,比如定期删除老分区,如果是的话,LOCAL是最佳选择,如果不是,则考虑GLOBAL索引。
  • 诊断结论:120的trc文件可以看到成本最低的是bit map and的执行路径,120的trc文件可以看到成本最低的是bit map and的执行路径。至于为什么两个执行计划不一样,应该和IDX_XXX索引选择率变化导致bit map的成本增加有关。
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档