数据库管理-第九十七期 以一当十的数据库路线(20230810)

news2024/11/29 4:40:14

第九十七期 以一当十的数据库路线(20230810)

距离上一期已经过去了整整9天了,相较于前几个月的“生产队的驴”,确实慢了很多,归根结底有几点:一是19c OCM的相关内容暂时告一段落,少了一半内容;另一方面,准备完成了19c OCM的模拟环境,也开始了2天一轮的疯狂练习;当然还有就是大运会保障,我本身工作上也没啥事,素材偏少。
另一件事情,昨晚开源中国了组织了一个线上直播《MySQL 和 PostgreSQL,谁是世界第一?》,很多人都在说,素材来了,但是说真的,我真不想写,文无第一武无第二,选择适合自身应用场景、需求的数据库才是最重要的。
作为一个全职的Oracle DBA和兼职的其他数据库DBA,我还是认为Oracle才是世界第一(其实Excel才是,手动滑稽)。

1 多对单

这里不是指的数据库功能的多寡(如果比功能数量的话,PG能拉出一整页),具体咋解释看下图吧:
在这里插入图片描述
其实国产很多数据库,特别是分布式数据库走的路线和AWS是一样的,通过不同组件来实现如HTAP等功能,其实也就是把TP和AP分到不同的数据库组件去执行,也达到了不错的效果。以TiDB为例,就是通过存储引擎 TiKV 、列存储引擎 TiFlash 两款存储引擎实现了HTAP功能。
而Oracle走的却是另一条路,与PG通过插件来实现功能扩展的方式不同,Oracle使用一套统一架构,实现了多种数据库类型、多种数据负载、多种开发场景的支持,同时实现了CPU、内存、IO全方面隔离的多租户架构。这样的好处是显而易见的,维护量是显著减少的,不用去管理那么多组件也不用考虑组件之间的协调与同步;同时很多新功能的视线是无需对原有代码进行变更的;由于统一架构也能实现软硬件资源更加高效的利用,减少不必要的资源损耗。当然问题也是显而易见的,当新功能需要添加的时候,为了性能、稳定性和安全性的考量,同时维持高效的软硬件利用率,数据库本身可能需要从最底层代码进行变更甚至是重写,这往往需要很长时间,比如大版本升级才能实现,也增加了数据库出现bug的几率(这里可以参考19c初始几个版本显现出来的问题)。
两种方式孰优孰劣?我个人是站Oracle的,当然这也源自于Oracle在数据库行业超过40年的技术积累以及至今让人无法望其项背的研发投入,让Oracle有足够的资本选择一条更难但是更优的道路;国内的PolarDB、MatrixDB也走的类似的道路,目标是用户使用简单的统一架构降低使用成本。而使用多组件或者插件的方式,如前面提到的AWS以及PostgreSQL、TiDB、OceanBase等,确实也带来了数据库架构的灵活性,数据库功能扩展的便捷性,但是回到本源,多一个东西多一分损耗,多与优的平衡是需要好好掌控的。

2 能力密度

能力密度这个词,我第一次是在一场Oracle关于Exadata研讨会上听到的:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里节选了部分PPT内容,Exadata的性能,没用过的人可能不知道,我以我自己经历来说一下,以Exadata X9M-2 1/4替换4节点4U(单台40C512GB)服务器X86架构RAC集群为例:
原来X86架构服务器每台机器是配置了两张双口16Gbps的HBA卡,后面分别挂了EMC VMax和EMC Unity两套存储用以IO分流;两张双口万兆网卡,生产网络做了交叉bond mode1,集群私网做了双路双活;每台机器4颗E7-4820 v3的CPU。
即时是这样,3个用于生产的主机CPU占用率常年超过66%,经常性突破80%;私有网络10GE经常跑满,扩到20GE后也会偶尔跑满(知道为啥用双路双活的模式了吧);集群和IO等待常年较多。迁移前,数据库常态运行的活动会话数约为150左右。
迁移到Exadata过后(直接上截图):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
看图说话,相同负载下,不对,现在无论负载还是数据量是远高于迁移之前,Exadata带来的性能提升还是非常可观的。关于具体PDB的性能提升可以参看数据库管理-第四十二期 复盘一下(20221104)中的第四节“喜闻乐见”。
由此可以看出,Exadata确实可以用很小的空间(往往是一个机柜外加用于外部访问的交换机),利用“相对垃圾”的硬件,用极大的性能密度来解决需要很多服务器和配套其他硬件解决的问题。除了带来能耗、维保、空间层面的优势,维护层面的简化也有巨大的优势。
关于Exadata如此强大的根源,其实并不是GI+DB构建的RAC集群(当然数据库本身强也是个基础),更主要源自于Exadata Storage Software带来的诸如smart scan offload(详见数据库管理-第六十一期 Exadata是否需要索引(20230314))、分布式存储、智能存储索引等特性,充分利用NVMe SSD、RoCE/RDMA、PMEM/XRMEM等硬件优势,结合Oracle对自身数据库在数据存储层面的了解,软硬结合,极大扩展了存储提供的IO能力。这个是我们国产数据库和国产数据库一体机需要着重学习的,而不是单纯去堆硬件。

3 卷带来了什么

其实我之前在公众号写了一篇文章我们究竟在卷什么。还是以我这环境为了,好不容易通过Oracle Exadata和DBaas缩减的服务器用量,减少的维护压力,提升的数据库性能和稳定性。在国产化(或者开源替换)浪潮下,我们需要比以前还多的服务器、更多的数据库运维人员、更多的数据库类型来解决数据库层面的问题,不仅付出更多的硬件采购维保费用、电费、场地费、人工费,同时license费用也会增加很多。

总结

昨晚MySQL和PostgreSQL在争第一,直播评论里很多人就说:“Oracle会怎么看”,“Oracle是第一”,“Oracle是这个星球最好的数据库”。诚然,Oracle确实很强。但是要我说,Excel才是最强的:全功能的,图形化,跨平台,HTAP,BI集成,有云原生,自带GUI的Scripts,在Excel上可以创建Button和Event出发事件,也是个内存数据库;EXCEL满足90%企业的数字化需求。
这一期,我也不晓得晓得还是不晓得写了些啥。
最后,感谢薛首席提供的文章标题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/857900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从NPM注册中心获取包

目录 1、搜索和选择要下载的包 1.1 为什么使用 1.2 工作原理 1、质量 2、维护 3、受欢迎程度 4、名气 1.1、开始搜索包 2、在本地安装下载和安装软件包 2.1 安装未限定作用域的包 2.2 安装有作用域的公共包 2.3 安装私有包 2.4 测试包安装 2.5 已安装的软件包版本…

LeetCode算法递归类—两两交换链表中的节点

目录 24. 两两交换链表中的节点 题解: 代码: 运行结果:​编辑 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节…

线程池工作原理深入解析

目录 1. 线程正常的生命周期 2. 为什么要用线程池? 3. 线程池的核心原理 4. 怎样创建线程池? 5.线程池的代码实现 6. ThreadPoolExecutor 源码分析 7. ThreadPoolExecutor 工作原理展示(重点) 1. 线程正常的生命周期 我们知…

Pyinstaller 打包 django 项目如何将命令行参数加入?

起因 Pyinstaller 打包 django 项目,打包成 manage.exe 后用命令行 cmd manage.exe runserver 0.0.0.0:8001 --noreload 来运行感觉很不方便。 希望能够直接把命令行参数也打包进去,直接运行 exe 。我走了些弯路,但最终实现了。 弯路 我看…

Linux —— 基础I/O

一,背景介绍 狭义的文件存放在磁盘上,广义上在Linux下一切皆文件;磁盘上的文件一般为永久存储的外设,本质上对文件的操作,即为对外设的输入和输出(简称I/O);空文件并不是不占磁盘文件…

Xamarin.Android实现手写板的功能

目录 1、背景说明2、实现效果3、代码实现3.1 整体思路3.2 核心绘画类-PaintView.cs3.3 对话框类-WritePadDialog.cs3.4 前端实现类-MainActivity3.5 布局文件3.5.1 write_pad.xml3.5.2 activity_main布局文件 4、知识总结5、代码下载6、参考资料 1、背景说明 在实际使用过程中…

【动态规划刷题 6】 买卖股票的最佳时机含冷冻期 买卖股票的最佳时机含手续费

买卖股票的最佳时机含冷冻期 链接: 买卖股票的最佳时机含冷冻期 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票…

【赠书活动|第四期《互联网广告系统:架构、算法与智能化》】

文章目录 内容简介作者简介读者对象大咖推荐抽奖方式 广告平台的建设和完善是一项长期工程。例如,谷歌早于2003年通过收购Applied Semantics开展Google AdSense 项目,而直到20年后的今天,谷歌展示广告平台仍在持续创新和提升。广告平台是负有…

2024软考系统架构设计师论文写作要点

一、写作注意事项 系统架构设计师的论文题目对于考生来说,是相对较难的题目。一方面,考生需要掌握论文题目中的系统架构设计的专业知识;另一方面,论文的撰写需要结合考生自身的项目经历。因此,如何将自己的项目经历和专业知识有机…

内网穿透:实现公网访问内网群晖NAS的方法

公网远程访问内网群晖NAS 7.X版 【内网穿透】 文章目录 公网远程访问内网群晖NAS 7.X版 【内网穿透】前言1. 在群晖控制面板找到“终端机和SNMP”2. 建立一条连接公网数据隧道3. 获取公网访问内网群晖NAS的数据隧道入口 前言 群晖NAS作为应用较为广泛的小型数据存储中心&#…

RabbitMQ学习——发布订阅/fanout模式 topic模式 rabbitmq回调确认 延迟队列(死信)设计

目录 引出点对点(simple)Work queues 一对多发布订阅/fanout模式以登陆验证码为例pom文件导包application.yml文件rabbitmq的配置生产者生成验证码,发送给交换机消费者消费验证码 topic模式配置类增加配置生产者发送信息进行发送控制台查看 rabbitmq回调确认配置类验…

Shopee虾皮买家号注册时需要注意什么问题

虾皮是一家在线购物平台,如果您打算在虾皮上注册一个买家账号,以下是一些需要注意的问题: 账号安全:确保您选择一个安全的密码,并定期更改密码,以保护您的账号免受未经授权的访问。 个人信息:…

idea报“Could not autowire. No beans of ‘UserMapper‘ type found. ”错解决办法

原因和解决办法 1.原因 idea具有检测功能,接口不能直接创建bean的,需要用动态代理技术来解决。 2.解决办法 1.修改idea的配置 1.点击file,选择setting 2.搜索inspections,找到Spring 3.找到Spring子目录下的Springcore 4.在Springcore的子目录下…

uni-app使用vue语法进行开发注意事项

目录 uni-app 项目目录结构 生命周期 路由 路由跳转 页面栈 条件编译 文本渲染 样式渲染 条件渲染 遍历渲染 事件处理 事件修饰符 uni-app 项目目录结构 组件/标签 使用(类似)小程序 语法/结构 使用vue 具体项目目录如下: 生命…

三步免费接入 Claude 2.0,支持多账号轮询!

Claude 2.0 已经发布了一段时间,经过我的非暴力测试,比 ChatGPT 3.5 的能力是要强的,有更强大的上下文 100k,相当于 10 万字的上下文记忆,非常适合处理长文档和大的代码段,虽说有些方面略逊色 ChatGPT 4.0 &#xff0c…

日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理

日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理 目录 日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理 1、在线Json ,可以在线进行json 格式验证,解析转义等操作 2、Gif动图分解,在线把 gif 图分解成一张张单图 3、在线P…

仓储10、20代电子标签接口文档

标签注册 仓储10代注册 右下角左下角组合按键触发注册 注册成功:右上角绿灯变红灯,并显示信号强度的数值 ​ 仓储20代注册 右下角左下角组合按键触发注册 注册成功:右上角绿灯变红灯,并显示信号强度的数值 ​ 查询电子标签信息…

dinput8.dll导致游戏打不开的解决方法,快速修复dinput8.dll文件

当你尝试启动某个游戏时,如果遇到dinput8.dll文件缺失或损坏的错误提示,可能会导致游戏无法正常运行。dinput8.dll是DirectInput API的一部分,它提供了游戏手柄、键盘和鼠标等输入设备的支持。本文将详细介绍dinput8.dll的作用、导致游戏无法…

核心板如何选择合适的封装?

▍引言 核心板如何选择合适的封装? 核心板是一种集成了CPU、内存、存储、网络等功能的微型计算机模块,可以作为嵌入式系统的核心部件,或者作为开发板的扩展模块。核心板的封装方式决定了它与底板或者开发板的连接方式,影响着核心…

PP-ChatOCR:基于文心大模型的通用图像关键信息抽取利器,开发提效50%!

在日常生活中,大家经常会遇到图像关键信息自动抽取的场景,比如身份证拍照上传自动识别、发票拍照上传自动报销等。 在这个领域,现有的AI技术方案已经能解决一部分需求,但是依然存在一些痛点,比如发票的种类样式极其繁多…