数据库管理-第七十期 自己?自己(20230425)

这篇具有很好参考价值的文章主要介绍了数据库管理-第七十期 自己?自己(20230425)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第七十期 自己?自己

来到70了,最近有点卷,写的稍微多了些。
吐槽一下五一调休,周末砍一天,连6天,放5天,上3天,周末又砍一天。
今天刷抖音看到现在是如何看伍佰演唱会的:“花500买票,去伍佰的演唱会,唱伍佰的歌给伍佰听,伍佰只要起个头,插不上嘴”。突然回忆起伍佰的《突然的自我》。最近还是除了很多跟“自己”相关的事情,记录一下。

1 自己吓自己

这里是前段时间做ADG搭建准备的时候发现的,dbca建库的时候开启了FRA和日志归档。到准备修改log_archive_dest_1参数时,发现这个值为空,理论上默认配置这个参数应该为:

log_archive_dest_1='LOCATION=use_db_recovery_file_dest'

同时去FRA目录下通过下面命令查看目录:

ASMCMD> ls +RECOC1/db_unique_name/

发现里面没有ARCHIVELOG文件夹,归档虚空了?通过EM看备份日志,发现日常的备份日志是跑着的啊,有点小就是了(我一个日志组10G,每3小时的归档备份一般也就10-50G之间)。难道是只有备份期间的日志归档被备份了?平时没有产生。到这里我下出了一身冷汗,没有归档还没有搭ADG意味着备份几乎没啥用。
冷静一下,还是发现一个问题,归档刚刚备份完,有20多个G,我就尝试做了:

alter system switch logfile;

这时候“惊讶”的发现FRA目录下出现了ARCHIVELOG文件夹,刚刚切换生产的归档日志也有。当然参数还是正常配了:

alter system set log_archive_dest_1='LOCATION=use_db_recovery_file_dest VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primary_db_unique_name';

这里可以看到在开启FRA功能的默认情况下,归档在配置的FRA路径下生产归档文件,我属于是在“正确”的时间看到了“正确”的输出做出了“正确”的惊吓。翻遍官方文档也就发现下面描述比较贴切:
数据库管理-第七十期 自己?自己(20230425)
归档模式,开了FRA默认就是在FRA,没开就会去dbs目录。这盘属实是自己吓自己。

2 自己坑自己

接下来到上面那个环境的ADG备库,因为服务器给我的时候,有台服务器HBA卡是坏的,更换需要时间,但是灾备环境上线又比较急(报了考核的),就只能把另外两台装好,先把ADG弄好,服务器修好了再加入集群。
在这中间出过一丢丢小插曲,其实以前遇到过,就是一个没有经过dbca的集群,db中因为$ORACLE_HOME/bin/oracle权限的问题是无法使用ASM磁盘组的,需要执行以下操作:

$GRID_HOME/bin/setasmgidwrap -o $ORACLE_HOME/bin/oracle

彻底弄完了观察了两天发现一个问题:

DGMGRL> show configuration

Configuration - dg

Protection Mode: MaxPerformance
Members:
	dbaas - Primary database
	dbdg - Physical standby database
		Warning: ORA-16632: instance being added to member profile

Fast-Start Failover: Disabled

Configuration Status:
WARNING (status updated 17 seconds ago)

DGMGRL> show database dbdg

Database - dbdg

Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 0 seconds ago)
Apply Lag: 0 seconds (computed 1 second ago)
Average Apply Rate: 1.08 MByte/s
Real Time Query: ON
Instance(s):
	dbdg1
	dbdg2 (apply instance)
	-- dbdg3呢????!!!!

首先发现第一个问题,我新加节点的忘记配置静态监听和tnsname了,搞完之后,configuration output能短暂恢复下,但是一会儿继续恢复报错,第三个实例仍然没有粗线。本来这个报错是会自动处理的:
数据库管理-第七十期 自己?自己(20230425)
但是通过DG Diagnostic检查后发现最后个节点无法正确的通过正确的tnsname连接到主库去(绝对正确,可以用sqlplus连过去的!!),SR给了个操作建议:

DGMGRL> disable database dbdg;
DGMGRL> enable database dbdg;
DGMGRL> enable configuration

仍然不能在配置中正确添加新加的节点,只能用大招了:

DGMGRL> remove database dbdg;
DGMGRL> add database dbdg as connect identifier is dbdg;
DGMGRL> edit database dbdg set property logxptmode='sync';

然后一切正常,我怀疑这里和没有在添加节点前配置好静态监听和tnsname这步有关,属实自己坑了自己一把。

3 自己挺自己

今天下午我这X8M那台一体机告警,CPU占用率超过95%,也算是小刀剌屁股——开眼了(虽然祖上也因为CBC遇到过),但是很久没出现了,这机器CPU常年15%以下。
到EM一看,第二次小刀剌屁股,一体机内两个PDB,一个PDB用dblink去另一个dblink查数据,然后并发达到了150次/s(后面AWR查出来一小时跑了660W次,而对应的接口调用记录一小时只有几万次),这里明显是业务侧出现了异常,150次/s的并发,dblink两端都在一体机上,即便语句单条执行只有不到4微妙,但是双倍压力引给了CPU多倍的“快乐”。(其实前一天还处理了也是涉及这两个PDB的一条SQL,是一个查询4张表,3张表涉及dblink不在本地,而且这3张表一张在一体机另外两张在另一套数据库,因为查询条件一点点的改动就会造成查询时长非常大的变化,最后把另一套库的两张表都弄到一体机搞定的),后面重启了对应应用正常了。
其实CPU高不高都没啥,主要是CPU那么高(超过了66%,具体见第二十四期),但是对所有业务(十多个PDB)都没造成啥影响,响应速度依旧飞快,毫无感知,甚至是除了CPU比较高,这两个PDB对应的业务都没啥感知。这当然是resource manager的功劳啊(详见第四期,算上古文章了),虽然这两个PDB都是share 2,CPU max 40%。资源管理在这个时候就是根据份额确保了各个PDB运行所需要的CPU资源。
这里算一下,平时整体CPU不超过15%,到95%之间有80个点,那么CPU整体突破95%时这两个PDB以外用的其实很少(可以算不超过15%),那么算下来这两个PDB各占用了40%(虽然,资源隔离其实没那么简单)。所以没有影响到其他业务,resource manager还是起到了CPU隔离的作用,当然整体常规负载低也是重要原因,要不这两个PDB的性能分配肯定会被挤压。
所以预先做好了配置,还是一定程度上避免了出现更大范围的问题,给自己点个赞!

4 自己懵自己

首先说明一点,本节内容仅限运营商环境,仅是本人观点。
上周不是国产数据沟通么,其实很多厂商都说过一句话或者表达一种态度,以前都在B域发力,O域不是太上心。之前一直觉得B域有钱,O域没钱,还有就是B域整体技术实力是普遍强于O域的。但是今天和客户讨论这事,被自己一句话点了一下:B域的业务其实很简单,比如BOSS计费,主要是高并发相对单一业务逻辑应用场景(插改为主),而且很多情况会通过其他方式汇聚结果或者结果只是根据请求反馈,很多时候的结果及时性有些场景反而没有O域那么明显(记录的实时性还是比较极端的哈)。而O域的很多业务都是流程类的,业务逻辑比较复杂,涉及的语句会更复杂,还可能会有大量的存储过程和触发器,实时性要求反而更高。
而现在很多国产数据库都在标榜自己的tpmC能力,其实更多也也是应对B域的应用场景,也就是业务逻辑相对单一的高并发OLTP。那么之前不重视O域也似乎找到了一点原因了。为啥现在又来了呢,一方面是占坑,另一方面是近一年大家的HTAP能力还是有了长足的进步,可以应对更加复杂的应用场景了。所以后面O域这边的数据库选型可能会有不一样的要求和侧重点。

总结

最后说一句,这周某大佬攒了个项目“时序流式地理空间图谱文档关系向量流批一体自主可控智能自治AI向量全文检索云原生可编程超融合分布式单机一体化serverless数据库”,大家有没有兴趣投一下啊。
老规矩,知道写了些啥。文章来源地址https://www.toymoban.com/news/detail-426060.html

到了这里,关于数据库管理-第七十期 自己?自己(20230425)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【cfengDB】自己实现数据库第0节 ---整体介绍及事务管理层实现

    LearnProj 本文作为数工底层的项目CfengDB开始篇章,介绍开发缘由和实现思路 cfeng之前对数据库研究不深入,之前只是能够做到基本的SQL查询和基本的慢SQL优化,之前拿到数据库系统工程师证书还是只在业务上对于DB系统使用更深入,但是cfeng基于work的理解,当作为一个优秀的产

    2024年02月16日
    浏览(32)
  • 第七十五回:Flutter中的包管理

    我们在上一章回中介绍了主题相关的内容,本章回中将介绍 Flutter包管理 .闲话休提,让我们一起Talk Flutter吧。 在移动开发中会使用各种各样的包,比如Android开发中用于网络操作的Okhttp包,包太多了就需要做统一的布署和管理,不然会让项目混乱不堪。 Android早期使用Ant进行

    2024年02月12日
    浏览(37)
  • 【数据库复习】第七章 数据库设计

    数据库设计的过程(六个阶段) ⒈需求分析阶段 准确了解与分析用户需求(包括数据与处理) 最困难、最耗费时间的一步 ⒉概念结构设计阶段 整个数据库设计的关键 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型 ⒊逻辑结构设计阶段 将概念结构

    2024年02月08日
    浏览(39)
  • 数据库系统概念 第七版 中文答案 第2章 关系模型介绍

    2.1 考虑图 2.17 中的员工数据库。 这些关系上适当的主码是什么 ? Answer: 相应的主键如下所示: 2.2 考虑从 instructor 的 dept_name 属性到   department 关系的 外键约束 。 请给出对这些关系的插入和删除的示例,使得它们破坏该外码约束。 Answer: 插入元组: (10111,   Ostrom, Econ omics,  

    2024年02月02日
    浏览(30)
  • 数据库系统概念 第七版 中文答案 第3章 SQL介绍

      a. 查找计算机科学系中学分为3的课程的标题。 b. 查找所有由名为Einstein的教师教授的学生的ID;确保结果中没有重复项。 c. 查找任何教师的最高工资。 d. 查找所有薪水最高的教师(可能有多个薪水相同的教师)。 e. 查找在2017年秋季开设的每个课程部分的注册人数。 f. 查

    2024年01月22日
    浏览(40)
  • 基于向量数据库搭建自己的搜索引擎

    前言【基于chatbot】 厌倦了商业搜索引擎搜索引擎没完没了的广告,很多时候,只是需要精准高效地检索信息,而不是和商业广告“斗智斗勇”。以前主要是借助爬虫工具,而随着技术的进步,现在有了更多更方便的解决方案,向量数据库就是其中之一【chatGPT也需要它的支撑

    2024年04月11日
    浏览(30)
  • PHP最简单自定义自己的框架数据库封装调用(五)

    1、实现效果调用实现数据增删改查封装   2、创建数据表    3、index.php 入口定义数据库账号密码 4、KJ.php引入基类 5、基类使用pdo封装增删改查 ModelBase.php 6、indexCrl.php控制器调用 7、完整KJ.php代码

    2024年02月13日
    浏览(27)
  • jieba 加whooh 构建自己本地数据库的搜索引擎

    例子 实战

    2024年02月10日
    浏览(29)
  • 自己动手写数据库系统:实现一个小型SQL解释器(中)

    我们接上节内容继续完成SQL解释器的代码解析工作。下面我们实现对update语句的解析,其语法如下: UpdateCmd - INSERT | DELETE | MODIFY | CREATE Create - CreateTable | CreateView | CreateIndex Insert - INSERT INTO ID LEFT_PARAS FieldList RIGHT_PARAS VALUES LEFT_PARS ConstList RIGHT_PARAS FieldList - Field ( COMMA FieldList)?

    2024年02月12日
    浏览(39)
  • 自己动手做数据库系统:解释执行 update 和 delete 对应的 sql 语句

    在上一节我们完成了 select 语句的解释执行,本节我们看看 Update 和 Delete 对应的语句如何解释执行,当然他们的实现原理跟我们前面实现的 select 语句执行大同小异。无论是 update还是 delete 都是对数据表的修改,因此他们的实现方法基本相同。 假设我们要执行如下 sql 语句:

    2024年01月22日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包