数据库管理-第169期 震惊,ACE装国产数据库花了两周(20240409)

2024-04-09 12:36

本文主要是介绍数据库管理-第169期 震惊,ACE装国产数据库花了两周(20240409),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据库管理169期 2024-04-09

  • 数据库管理-第169期 震惊,ACE装国产数据库花了两周(20240409)
    • 1 硬件兼容性
    • 2 组件的割裂
    • 3 操作的放大
    • 总结

数据库管理-第169期 震惊,ACE装国产数据库花了两周(20240409)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Associate: Database(Oracle与MySQL)
国内某科技公司 DBA总监
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家、年度墨力之星,ITPUB认证专家,OCM讲师
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭。

首先终于从泰国清迈回来了,那边挺热的,白天都是40℃左右,而且还没到雨季,纯纯干热。加上同行人的特种兵旅游风格,这算是第一次外出旅游想早点回来。在旅游期间还发现成都多了一个“6A级景区”其实本期述说的事情是清明节前发生的,发生在我们ACE小群的吐槽,某个ACE安装以单机方式安装某国产分布式数据库的时候花了差不多两周的时间。当然在这段时间还了解到了一些其他关于国产数据库的吐槽(包括但不限于安装),本期一一呈现,让大家在踏入国产数据库之前能够至少做好一些心理建设。
手动保命一下:本期内容不涉及任何具体厂商和具体产品,你可以把本期展现的内容当成愚人节的延续,如有巧合,纯属不幸。

1 硬件兼容性

还是先说说安装这件事情,其实最主要的问题是来自于硬件的兼容性问题,对于数据库软件来说,其实主要是CPU(当然不排除以后数据库的AI功能加强了,还得考虑GPU适配的问题)。这次的安装趣闻就是发生在多个型号的同构CPU上,即使是相同的架构的CPU,CPU的flag内容不一样,都会造成安装失败,需要对安装涉及的很多文件进行调整。
306979f046c447eebe73e2161f5cd073.jpg

2 组件的割裂

其实把一个软件设计成多个组件无可厚非,可以减小每个组件(或者说叫功能)的开发难度,但是还是回到以前说过很多次的一个内容:数据库是一个系统工程,每个部分都是协同工作的,任何改动、调整都是牵一发而动全身。但是在很多国产数据库的安装、使用过程中,会发现各个组件之间感觉来自于不同地方,一点协同性都没有。经常是为了解决A组件的问题,导致B组件出现异常,AB组件调和好之后,C组件又出问题,C组件处理好了,A又双叒出问题了。要让所有组件平稳的运行起来需要达到一个极其精准的平衡点(这个平衡点在不同的软硬件环境下还常常是不一样的)。有时候就给人一种汽车的四个轮子对着不同的方向,做四轮定位又非常困难。而且一旦涉及到数据库的升级操作,经常需要重新去寻找那个平衡点。
53572b30f7734b0ca1223990ac5afee5.jpg

3 操作的放大

这个举几个栗子:

  • 需要对表进行修改字段类型DDL操作,Offline DDL直接跑不动,Online DDL要好几个小时
  • 某分布式数据库迁移,评估了一大堆方案,最后发现还是用移动硬盘最快,然后花了8个月
  • 某OA替换国产数据库,操作时间平均为原来的30倍以上
  • 由于版本升级需要导数据,用原厂的工具。20G的数据持续不停地导了30-40个小时
  • 某重点系统迁移完成后,系统中的人没了,后续得靠人工去比对补录
    57699d417c4c4d999790a606079f75a2.jpg

总结

还是那句话,国产数据库在产品化上面还做得非常差,道阻且长,仍需努力。
老规矩,不知道写了些啥。
最后的最后,宣传一下:
44db54c892f66684a6caa0dbfeca620.jpg

这篇关于数据库管理-第169期 震惊,ACE装国产数据库花了两周(20240409)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888167

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作