最近让我焦灼的四个问题

简介: 今天的内容可能会让大家失望了,是最近准备在着手解决的几个问题,目前都是无解,虽然问题有临时的解决方案,但是感觉还是快找到原因了,结果还是让我不够满意,有些问题刚刚碰到,还在观察之中,有些问题准备处理,但是老是感觉忙,CPU老是负载高,这个得反思工作效率,是不是在干有意义的事情。
今天的内容可能会让大家失望了,是最近准备在着手解决的几个问题,目前都是无解,虽然问题有临时的解决方案,但是感觉还是快找到原因了,结果还是让我不够满意,有些问题刚刚碰到,还在观察之中,有些问题准备处理,但是老是感觉忙,CPU老是负载高,这个得反思工作效率,是不是在干有意义的事情。
今天心中更是内疚,最近几天,晚上回到家,闺女都睡了,早上上班,她还在熟睡之中,吻吻她的额头,这些天她可能都没有意识到我的存在,所以格外珍惜我们在一起的时光,时光如梭,干点有意义的事情,比如家庭团聚,比如解决技术,两者还是要做平衡。
首先来说说第一个问题,是关于dataguard,最近碰到一个有些奇怪的问题,主库使用了ASM,备库使用了普通文件系统,从理论和实践来看,这都是可行的,但可能不是最佳实践。但是我碰到了一个奇怪的问题,就是备库搭建完成之后,也能正常接收归档,dg broker的配置和以往的配置并没有什么变化,但是备库会报出奇下面的ora错误。
Reading datafile '/home/U01/app/oracle/oradata/testbi/datafile/mbi_data.274.899314747' for corruption at rdba: 0x024bdc8c (file 9, block 777356)
Reread (file 9, block 777356) found same corrupt data (no logical check)
Hex dump of (file 9, block 777483) in trace file /home/U01/app/oracle/diag/rdbms/stestbi/testbi/trace/testbi_pr04_11007.trc
Corrupt block relative dba: 0x024bdd0b (file 9, block 777483)
Completely zero block found during media recovery
Reading datafile '/home/U01/app/oracle/oradata/testbi/datafile/mbi_data.274.899314747' for corruption at rdba: 0x024bdd0b (file 9, block 777483)
Reread (file 9, block 777483) found same corrupt data (no logical check)
Hex dump of (file 9, block 796276) in trace file /home/U01/app/oracle/diag/rdbms/stestbi/testbi/trace/testbi_pr04_11007.trc
Corrupt block relative dba: 0x024c2674 (file 9, block 796276)
Completely zero block found during media recovery
Reading datafile '/home/U01/app/oracle/oradata/testbi/datafile/mbi_data.274.899314747' for corruption at rdba: 0x024c2674 (file 9, block 796276)
Reread (file 9, block 796276) found same corrupt data (no logical check)
然后会刷很多屏,对于这个问题,自己分析了各种场景,前前后后做了不下十多种测试,基本都排除了,重建了多次,都是同样的问题。
我发现一个地方不同,那就是主库是redhat 6.3,而备库是redhat 5.3,最后排除了一圈,唯一的差别就是这个了,最后反复验证,在另外一台机器上尝试搭建备库,那台机器是6.3,就没有任何问题。所以怀疑是不是这个原因导致的,但是手头也没有更多的信息来论证,而且让我比较纠结的是我还确实看到过不少主备库,主库redhat 6,备库redhat 4照样也没有问题,这台主备环境原来也是有数据库实例在跑,最近是把旧环境清理掉,直接使用创建的备库,原来的那个库之前也没有问题。

第二个问题是对于物理数据空间的清理
比如一台服务器的分区 /u01有500G的空间,但是目前/u01只剩余2G,原因就在于里面的数据增长太快,数据文件都快写满了,和业务方的确认,对于这类热数据,可以保留一定期限的即可,从这个角度来看,如果做清理就会清理掉近40%的空间,也就是500G的空间清理后剩余300G左右的空间。但是这部分空间逻辑上是释放了,在文件系统级别就是对应数据文件,还没有释放。所以这个分区的使用率还是近100%,所以这种情况就比较纠结,你说释放空间吧,确实释放了,但是文件系统级还没有释放,如果尝试resize数据文件,从目前的情况来看,很多的表都分散存储在多个数据文件中,文件级别的高水位线还是不好理,自己曾经尝试把一个2G的数据文件resize成10M,可以参考之前写的文章http://blog.itpub.net/23718752/viewspace-1651534/,但是在这个例子里面,自己也分析了一大圈,收效甚微,收缩的幅度很小。那么有没有其它的办法来把目前的状态能够稍微改进一下呢,因为这种情况下,如果归档开始切换,很可能磁盘空间就马上回爆满,而添加新的磁盘空间从业务上也不好协调,因为我们已经清理了近40%的空间。
所以目前的临时改进方案可以暂时先缓解这个问题,可以把一部分的数据文件给move到/home分区下,这样/u01的空间也释放出来了。可能实现不太标准,但是能够解决当前的问题,那么问题又来了,这个操作是否可以直接这么做,结果一查还发现了一些小问题,需要考虑备库的情况,这个路径映射一定得考虑周全,要不很可能得重建备库,所以一个好几T的库如果被逼无奈搭建备库那就太让人郁闷了,所以,move数据文件也可以考虑,但是不是首选。

第四个问题是最近在做硬盘巡检的时候发现有一台服务器的硬盘正在做rebuild,是有人动了硬盘,但是做了确认,没有任何人操作。但是看到进度还在不断刷新
# MegaCli -pdrbld -showprog -physdrv[32:6] -aALL                                                                                    
Rebuild Progress on Device at Enclosure 32, Slot 6 Completed 4% in 8 Minutes.
自己也就没有太在意,但是今天再次查看发现问题依旧,那块硬盘又开始在做rebuild了。没有任何人操作怎么会出现这样的结果?

第四个问题比较泛,可能会有一些争议,不过我还是简单提一下吧,有这么一个真实的案例,业务方在做一个查询的时候,某个业务的sql执行时间会根据统计信息的误差产生多个子游标,所以看到一个sql语句有差不多近14个执行计划,而且每个都不太一样,现在他们发现一个流程处理很慢,大概需要18分钟才能执行完,所以紧急求助我们,对于这种问题,如果sql语句比较长,而且不能在线修改语句的情况下, 使用sql profile着实是一个不错的选择,但是如果要使用sql profile稳定执行计划,理论上很简单,但是实践起来也不是谁都能搞的定,这个时候我借助sqlt来做这个事情,加单的几分钟就把执行计划给替换了过来,然后从业务方的反馈,不到1秒就执行完成,从18分钟到1秒钟,提升的幅度还是比较大的,但是让我比较纠结的是,这个过程似乎也没什么技术含量,因为最有技术含量的工作都已经让oracle做好了,同一件事情oracle有很多种解决方案都可以完成,所以这个时候我就在思考,到底该怎么去衡量使用工具,这个度该怎么把握,其实当时在极短的时间内,让我重新去构建调试一个sql还是非常困难的,而且需要很多的知识储备,但是通过工具,也在很短的时间范围内就能够轻松搞定这个问题。到底是工具驱动更强,还是技术分析驱动更强,因为从身边经历的很多的问题处理情况,感觉工具的分析已然非常成熟,我们是不是也要升级了。把这些积累的知识储备转换一下。

其实最近碰到的问题不止这四个,能拿出来说的就是这四个了。看来还得浪费不少脑细胞来好好解决这些问题了。

目录
相关文章
|
1天前
|
存储 关系型数据库 MySQL
数据管理的艺术:PolarDB开源版详评与实战部署策略(一)
PolarDB-X是阿里巴巴自研的高性能云原生分布式数据库,基于共享存储的Shared-nothing架构,支持MySQL生态,具备金融级高可用、分布式水平扩展、HTAP混合负载等能力。它通过CN(计算节点)和DN(存储节点)实现计算与存储分离,保证数据强一致性,并支持全局二级索引和多主多写。PolarDB-X开源版提供更高程度的定制化和控制权,适合追求技术自主性和成本优化的开发者。部署方式包括RPM包、PXD工具和Kubernetes,其中PXD工具提供了一键部署的便利性。
34600 10
|
5天前
|
关系型数据库 Serverless 分布式数据库
高峰无忧,探索PolarDB PG版Serverless的弹性魅力
在数字经济时代,数据库成为企业命脉,面对爆炸式增长的数据,企业面临管理挑战。云原生和Serverless技术革新数据库领域,PolarDB PG Serverless作为阿里云的云原生数据库解决方案,融合Serverless与PostgreSQL,实现自动弹性扩展,按需计费,降低运维成本。它通过计算与存储分离技术,提供高可用性、灾备策略和简化运维。PolarDB PG Serverless智能应变业务峰值,实时监控与调整资源,确保性能稳定。通过免费体验,用户可观察其弹性性能和价格力,感受技术优势。
|
15天前
|
存储 缓存 监控
你的Redis真的变慢了吗?性能优化如何做
本文先讲述了Redis变慢的判别方法,后面讲述了如何提升性能。
102243 5
|
15天前
|
机器学习/深度学习 并行计算 算法
Transformer 一起动手编码学原理
学习Transformer,快来跟着作者动手写一个。
94253 8
|
14天前
|
存储 SQL Apache
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
|
19天前
|
人工智能 弹性计算 算法
一文解读:阿里云AI基础设施的演进与挑战
对于如何更好地释放云上性能助力AIGC应用创新?“阿里云弹性计算为云上客户提供了ECS GPU DeepGPU增强工具包,帮助用户在云上高效地构建AI训练和AI推理基础设施,从而提高算力利用效率。”李鹏介绍到。目前,阿里云ECS DeepGPU已经帮助众多客户实现性能的大幅提升。其中,LLM微调训练场景下性能最高可提升80%,Stable Difussion推理场景下性能最高可提升60%。
124013 41
|
15天前
|
存储 弹性计算 Cloud Native
1 名工程师轻松管理 20 个工作流,创业企业用 Serverless 让数据处理流程提效
为应对挑战,语势科技采用云工作流CloudFlow和函数计算FC,实现数据处理流程的高效管理与弹性伸缩,提升整体研发效能。
64754 2
|
21天前
|
消息中间件 安全 API
Apache RocketMQ ACL 2.0 全新升级
RocketMQ ACL 2.0 不管是在模型设计、可扩展性方面,还是安全性和性能方面都进行了全新的升级。旨在能够为用户提供精细化的访问控制,同时,简化权限的配置流程。欢迎大家尝试体验新版本,并应用在生产环境中。
187583 29
|
17天前
|
存储 关系型数据库 数据库
|
24天前
|
物联网 PyTorch 测试技术
手把手教你捏一个自己的Agent
Modelscope AgentFabric是一个基于ModelScope-Agent的交互式智能体应用,用于方便地创建针对各种现实应用量身定制智能体,目前已经在生产级别落地。