自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

赵渝强老师CSDN博客主页

将赵老师多年的实践教学经验进行分享!为大家提供一个大数据、数据库、NoSQL、云计算等领域的创新思维,知识分享和案例分析的知识分享平台。

  • 博客(261)
  • 收藏
  • 关注

原创 【赵渝强老师】国产金仓数据库的物理存储结构

数据库实例初始化的时候会创建一个目录,通常都会在系统配置相关的环境变量$KINGBASE_DATA来表示。当数据库初始化完成后,会在这个目录生成相关的子目录以及一些文件。【赵渝强老师】国产金仓数据库的物理存储结构下表说明了其中的每个目录的功能与作用。金仓数据库的物理存储结构主要是指硬盘上存储的文件,包括:数据文件、日志文件、参数文件、控制文件、WAL预写日志文件等等。下面分别进行介绍。

2026-02-04 20:53:01 822 1

原创 【赵渝强老师】基于Hudi的大数据湖仓一体架构

Apache Hudi(Hadoop Upserts Delete and Incremental)是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取服务、数据集群/压缩优化和并发,同时保持数据的开源文件格式。Apache Hudi不仅非常适合于流工作负载,而且还允许创建高效的增量批处理管道。Apache Hudi可以轻松地在任何云存储平台上使用。

2026-01-27 11:28:08 639

原创 【赵渝强老师】国产金仓数据库的数据库对象

金仓数据库中包含各种数据库对象,常见的KingBase对象有:数据库、模式、表、索引、视图、存储过程、存储函数和触发器等等。这里将介绍金仓数据库中常见的数据库对象以及如何使用它们。【赵渝强老师】国产金仓数据库的数据库对象。

2026-01-22 19:17:12 466

原创 【赵渝强老师】Oracle多租户容器数据库

它指的是可以容纳一个或者多个可插拔数据库(Pluggable Database,简称PDB)的数据库,这个特性允许在CDB容器数据库中的体系架构创建并且维护多个数据库。当创建的数据库比较多的时候,就需要更多的数据库服务器。从Oracle数据库 12c R2版本开始,Oracle对多租户容器数据库的功能进行了增强,在CDB root容器中可以创建一个叫做Application Root的容器,可在其内创建多个依赖于Application root的Application PDB。

2026-01-20 13:31:55 570

原创 【赵渝强老师】国产金仓数据库的段、区、块

KingBaseES的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相关的系统目录表中,比如数据库的oid和表的oid分别存放在sys_database,sys_class表中。下面重点讨论一下金仓数据库的段、区和块。【赵渝强老师】国产金仓数据库的段、区、块。

2026-01-17 11:01:55 300

原创 【赵渝强老师】达梦数据库的数据迁移工具DTS

达梦数据迁移工具DTS(Data Transformation Service)提供了主流大型数据库迁移到DM、DM到DM、文件迁移到DM以及DM迁移到文件等功能。得益于DM数据库对目前主流大型关系型数据库系统有着业界领先的兼容性,在存储层面、语法层面、接口层面和它们保持高度兼容,借助于DM图形界面且采用向导方式引导各个迁移步骤的DTS工具,移植工作可以变得非常的简单。(6)在“选择迁移方式”中,选中“Oracle ==> DM”(11)在“选择迁移对象”中,选中要迁移的表。

2026-01-13 09:38:45 408

原创 【赵渝强老师】国产金仓数据库的模式

金仓数据库的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相关的系统目录表中,比如数据库的oid和表的oid分别存放在sys_database,sys_class表中。Schema是数据库中的命名空间,在数据库中创建的所有对象都是在Schema中创建。可以通过下面的方式来查看当前数据库的Schema。(5)创建一个新的模式。

2026-01-09 17:03:17 398

原创 【赵渝强老师】OceanBase的配置文件与配置项

在OceanBase集群中,OBServer节点工作目录下通常有audit、bin、etc、etc2、etc3、log、run、store等目录,但这些目录并非都是安装必须的。这三个目录里的内容是完全一致的,区别是后两个目录是OBServer节点创建的,第一个目录是启动前需要准备的。OBServer节点会将所有的配置项序列化后保存到工作目录下的配置文件etc/observer.config.bin中,之后在这个工作目录下启动OBServer节点都会读取这个配置文件。

2026-01-06 21:57:50 324

原创 【赵渝强老师】国产金仓数据库的表空间

在金仓数据库中,数据库在逻辑上分成多个存储单元,该单元称作表空间。在数据库初始化的时候,会自动创建sys_default、sys_global和sysaudit三个表空间。下面通过具体的操作来演示如何查看KingBaseES中已有的表空间和如何创建自己的表空间。(5)再次查看KingBaseES中已有的表空间。(4)在mydemotbs 表空间上创建表。(8)使用\db+命令查看表空间的详细信息。(6)将该表空间设置为默认的表空间。(2)查看已有的表空间。(3)创建自己的表空间。(1)登录金仓数据库。

2026-01-02 13:33:56 412

原创 【赵渝强老师】MySQL的数据约束

在数据库中,“约束”指的是对表中数据的一种限制条件,它能够确保数据库中数据的准确性和有效性。比如有的数据是必填项,就像身份认证的时候,或者填注册信息的时候,手机号身份证这种就不能空着,所以就有了非空约束;又有的数据比如用户的身份证号码不能跟其他人的一样,所以就需要使用唯一约束等等。在MySQL中主要有6种约束:主键约束、外键约束、唯一约束、检查约束、非空约束和默认值约束。【赵渝强老师】MySQL的数据约束。

2025-12-31 11:08:59 562

原创 【赵渝强老师】金仓数据库的数据库

在金仓数据库中,一个数据库是数据库对象的集合。更准确地说,一个数据库是一个模式的集合,而模式包含表、函数等等各种数据库对象。因此数据库的完整层次应该包含如下组成部分:数据库服务器、数据库、模式、表或者某些其他对象类型,如存储过程、存储函数等等。当连接到数据库服务器时,客户端必须在它的连接请求中指定它要连接的数据库名,通过数据库实例来操作数据库中的对象。用户可能是在同一个数据库里,但可能在不同的模式中。执行下面的语句可以查看当前已存在的数据库信息。下面的步骤将查看金仓数据库中的数据库信息。

2025-12-25 09:21:21 633

原创 【赵渝强老师】使用yum方式安装Docker

利用yum方式可以很方便地添加、删除和更新Linux系统的程序包,并且能够自动解决包的依赖性问题。使用yum也能够方便地管理大量的系统更新问题。一般使用yum方式需要连接外部的网络。(1)为验证虚拟机是否可以访问外部的互联网,这里输入以下的命令进行测试。(2)执行以下命令使用yum方式安装Docker。(5)通过执行以下命令确定Docker的版本。【赵渝强老师】使用yum方式安装Docker。(4)执行以下命令启动Docker的服务。下面将使用yum方式安装Docker。(3)安装完成后的信息如下。

2025-12-23 09:36:32 302

原创 【赵渝强老师】国产金仓数据库的数据库集群

金仓数据库的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相关的系统目录表中,比如数据库的oid和表的oid分别存放在sys_database,sys_class表中。一个数据库集群可以包括:多个数据库、多个用户以及数据库中的所有对象。组成数据库集群的这些数据库使用相同的全局配置文件和监听端口、共用数据库的后台进程和内存结构。

2025-12-17 12:05:03 162

原创 【赵渝强老师】MongoDB的数据类型

作为文档型NoSQL数据库的典型代表,MongoDB提供了丰富的数据类型,主要有:ObjectId、String、Boolean、Number、Arrays、Object、Null、Timestamp和Date。下面通过具体的示例来演示其中主要的数据类型以及它们的作用。【赵渝强老师】MongoDB的数据类型。

2025-12-15 09:57:32 687

原创 【赵渝强老师】国产金仓数据库的逻辑存储结构

金仓数据库的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相关的系统目录表中,比如数据库的oid和表的oid分别存放在sys_database,sys_class表中。下图展示了KingBaseES数据库的逻辑存储结构。【赵渝强老师】金仓数据库的逻辑存储结构下面对金仓数据库中的各种数据库对象进行说明。

2025-12-11 09:31:52 1040

原创 【赵渝强老师】TiDB的备份恢复策略

数据库在运行过程中会出现各种故障,因此对数据库进行必要的备份是非常重要的。有了数据库的备份就可以在数据库出现错误时保证数据的安全。因此TiDB数据库提供了强大的数据库备份与恢复机制。基于Raft协议和合理的部署拓扑规划,TiDB实现了集群的高可用,当集群中少数节点挂掉时,集群依然能对外提供服务。

2025-12-08 17:06:23 1006

原创 【赵渝强老师】国产金仓数据库的体系架构

金仓数据库(KingbaseES)作为国产数据库代表,其体系结构分为逻辑和物理存储两部分。逻辑存储包括数据库对象及其标识符,物理存储涵盖数据文件、日志文件和控制文件等核心组件。数据文件以OID命名并支持自动拆分,日志文件分为运行日志、WAL预写日志、事务日志和服务器日志四类,其中WAL日志采用16MB分段机制保障数据安全。控制文件记录数据库关键运行信息,可通过专用工具查看。该架构基于PostgreSQL开发,兼具开源特性与自主创新,体现了国产数据库在技术实现上的成熟性。

2025-12-06 09:39:04 1289 1

原创 【赵渝强老师】PostgreSQL锁的类型

在并发环境下为了解决并发一致性问题保证事务的隔离性,PostgreSQL采用了锁的机制。当一个事务在进行操作时会对操作的数据进行加锁,从而限制另一个事务的操作。为保证效率和想,加锁的粒度不宜太大。加锁的意义就在于当多个会话同时访问数据库的同一数据时,为所有会话提供高效的数据访问,并同时维护严格的数据一致性,从而实现数据的多版本并发控制。多版本并发控制的英文名称是Multiversion Concurrency Control,简称MVCC。

2025-12-01 14:05:31 769

原创 【赵渝强老师】阿里云大数据集成开发平台DataWorks

DataWorks是阿里云重要的PaaS(Platform as a Service)平台产品,为用户提供数据集成、数据开发、数据地图、数据质量和数据服务等全方位的产品服务,一站式开发管理的界面,帮助企业专注于数据价值的挖掘和探索。DataWorks支持多种计算和存储引擎服务,包括离线计算MaxCompute、开源大数据引擎E-MapReduce、基于Flink的实时计算、机器学习PAI、图计算服务Graph Compute和交互式分析服务等,并且支持用户自定义接入计算和存储服务。

2025-11-29 12:01:37 953

原创 【赵渝强老师】“国产金仓数据库”从零开始

金仓数据库管理系统KingBaseES(简称KES)是中电科金仓(北京)科技股份有限公司(简称电科金仓)研发的、具有自主知识产权的、获得自主原创资质认证的通用数据库产品。KingBaseES数据库作为国产数据库中非常重要的一员,其地位也非常的重要。金仓数据库在运行的过程中,除了会发生故障造成数据丢失的问题以外,还会遇到性能的瓶颈。本章将介绍数据库与数据库实例的关系和区别。客户端需要通过数据库实例来操作数据库中的对象。数据库中包含各种数据库对象,常见的数据库对象有:表、索引、视图、序列等。

2025-11-24 12:22:08 376

原创 【赵渝强老师】Oracle数据库的PL/SQL编程语言

PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。Oracle数据库在SQL的基础上提供了自己的开发语言PL/SQL。通过使用PL/SQL可以开发强大的应用程序,并且能够进一步开发Oracle的存储过程、存储函数和Oracle数据库的触发器。在了解了PL/SQL的基本内容后,下面的步骤将开发第一个Oracle数据库的PL/SQL程序。

2025-11-22 12:52:21 382

原创 【赵渝强老师】达梦数据库的事务隔离级别

而造成问题的根本原因在,客户端B读取到了客户端A还没有提交的事务中的数据。在SQL标准中定义了四种事务的隔离级别,它们分别是:读未提交(READ-UNCOMMITTED)、读已提交(READ-COMMITTED)、可重复读(REPEATABLE-READ)和可序列化读(SERIALIZABLE)。数据库在不同的事务隔离级别下会有不同的行为,从而在并发访问数据的时候会带来不同的问题。由于达梦数据库默认的事务隔离级别是读已提交(READ-COMMITTED),因此在达梦数据库中默认是不存在脏读问题的。

2025-11-17 18:37:15 471

原创 【赵渝强老师】OceanBase的连接与路由管理

OceanBase数据库与传统单机数据库不同,OceanBase数据库是分布式数据库,每个表甚至每个表的不同分区都可能存放在不同的机器上。想要对表进行读写,必须先要定位到数据所属的表或是分区的主副本位置,然后才能执行相应的SQL语句,这在应用层面而言是几乎不可能做到的。ODP作为OceanBase数据库专用的反向代理软件,其核心功能是路由,将客户端发起的数据访问请求转发到正确的OBServer节点上,并将OBServer节点的响应结果转发给客户端。视频讲解如下。

2025-11-14 13:57:15 1023

原创 【赵渝强老师】MySQL集群解决方案

在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求。此时数据库集群就很好的解决了这个问题了。采用MySQL分布式集群,能够搭建一个高并发、负载均衡的集群服务器。但是在搭建MySQL集群之前,必须要保证每台MySQL服务器里的数据同步。数据同步可以通过MySQL内部配置就可以轻松完成,主要有主从复制和主主复制。【赵渝强老师】MySQL的主从复制与主主复制。

2025-11-11 21:54:05 934

原创 【赵渝强老师】使用Helm简化Kubernetes(K8s)应用的部署和管理

Helm通过打包的方式动态创建Kubernetes应用的配置信息,然后生成应用程序的YAML清单文件,并最终由kubectl进行调用完成应用的部署。因此从使用方式上看,Helm类似于Linux YUM的包管理。下面展示了Helm的体系架构。从Helm 3开始,Helm将所有的配置信息存储在Kubernetes集群的配置中。Helm中有三个非常重要的概念,它们分别是:Chart、Repository和Release。Chart。

2025-11-08 19:33:10 1156

原创 【赵渝强老师】Redis数据的迁移

通过使用Redis的键迁移功能,可以把数据从一个Redis数据库中迁移到另一个数据库中,例如从生产环境迁移到测试环境。Redis提供了move、dump+restore和migrate三种不同的方式来实现键的迁移。【赵渝强老师】Redis数据的迁移。

2025-11-06 22:07:49 518

原创 【赵渝强老师】TiDB PD集群存储的信息

TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(Hybrid Transactional and Analytical Processing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL协议和MySQL生态等重要特性。

2025-10-30 09:48:44 977

原创 【赵渝强老师】PostgreSQL的内存结构

PostgreSQL的内存结构分为两种不同的类型,它们分别是本地内存和共享内存。

2025-10-27 15:53:28 514

原创 【赵渝强老师】大数据日志采集引擎Flume

Apache Flume支持采集各类数据发送方产生的日志信息,并且可以将采集到的日志信息写到各种数据接收方。其核心是把数据从数据源(Source)收集过来,在将收集到的数据送到指定的目的地(Sink)。为了保证输送的过程一定成功,在送到目的地(Sink)之前,会先缓存数据(Channel),待数据真正到达目的地(Sink)后,Flume再删除自己缓存的数据。

2025-10-23 11:35:09 940

原创 【赵渝强老师】使用NetManager创建Oracle数据库的监听器

Oracle数据库软件安装成功后需要使用NetManager创建监听器,然后才可以创建Oracle数据库并启动数据库的实例。Oracle NetManager是Oracle数据库的网络配置工具,主要用于管理客户端与服务器之间的网络连接配置,支持监听程序配置、服务命名解析及网络命名方法的维护。:NetManager可以创建自定义服务名(如service_orcl),用于客户端连接数据库时标识具体实例,需关联数据库名(如orcl)和端口号(默认1521)。这里配置的监听器监听的地址就是本机的1521端口。

2025-10-20 10:16:46 893

原创 【赵渝强老师】达梦的数据库故障类型

达梦数据库数据库出现的故障有很多,但主要可以划分为几下几种主要的类型:语句错误、用户进程错误、网络故障、用户错误、实例错误和介质故障。下面分别介绍这几种故障类型以及相应的解决方案。【赵渝强老师】达梦数据库的故障类型。

2025-10-16 09:32:13 586

原创 【赵渝强老师】OceanBase的内存管理

OceanBase数据库是多租户设计的数据库,同一个进程会运行着多个租户的请求,从租户资源划分上可以分为三类,500租户内存、系统租户内存、业务租户内存。【赵渝强老师】OceanBase的内存管理OceanBase数据库支持通过参数来设置和管理内存的使用,这里主要关注两个方面的内存参数:OBServer节点总内存和业务租户内存。

2025-10-13 14:22:25 380

原创 【赵渝强老师】MySQL的事务隔离级别

客户端A在时间点2的时候更新了它的值为200,但没有提交事务。在时间点3的时候,客户端B读取到了客户端A还未提交的数值200。而造成问题的根本原因在,客户端B读取到了客户端A还没有提交的事务中的数据。数据库允许多个客户端同时访问。当这些客户端并发访问数据库中同一部分的数据时,如果没有采取必要的隔离措施就容易造成并发一致性问题,从而破坏数据的完整性。MySQL数据库在不同的事务隔离级别下会有不同的行为,从而在并发访问数据的时候会带来不同的问题。下表列举了在不同的事务隔离级别下,MySQL可能存在的不同问题。

2025-10-10 11:47:26 436

原创 【赵渝强老师】Docker容器的资源管理机制

由于Docker是构建在Linux的基础之上,因此从Linux底层看,Docker是利用了Linux Control Group(简称Linux CGroup)实现了对资源使用的控制。因此,要掌握Docker容器的资源管理,有必要先了解一下什么是Linux CGroup。Linux CGroup是Linux下的一些进程,通过这些进程可以限制应用程序对资源的使用。并且,通过Linux CGroup可以对系统资源做精细化控制。例如,可以实现对每个容器使用的CPU比率进行限制。

2025-10-08 16:57:14 998

原创 【赵渝强老师】MongoDB的分布式存储架构

在MongoDB存在另一种集群就是MongoDB的分片技术。通过使用分片可以满足MongoDB数据量大量增长的需求。当MongoDB存储海量的数据时,一台MongoDB服务器可能不能满足存储数据的要求,也可能不足以提供可接受的读写吞吐量。MongoDB为了解决这一系列的问题提出了将数据分割存储在多台服务器上,使得数据库系统能存储和处理更多的数据,以实现数据的分布式存储。这就是MongoDB的分片。提示:单个MongoDB复制集中的节点不能超过12个节点。因此复制集从本质上并不能解决数据海量存储的问题。

2025-10-02 10:57:22 1109

原创 【赵渝强老师】TiDB的底层存储机制

在内核设计上,TiDB分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的TiDB系统。对应的架构图如下:【赵渝强老师】TiDB的底层存储机制。

2025-09-29 10:50:25 910

原创 【赵渝强老师】基于PostgreSQL的MPP集群:Greenplum

Greenplum本质上是一个基于PostgreSQL的关系型数据库集群,实际上是由多个独立的数据库服务组合而成的一个逻辑数据库。与Oracle的RAC不同,这种数据库集群采取的是MPP(Massively Parallel Processing,大规模并行处理)架构。Greenplum最大的特点就是基于低成本的开放平台基础上提供强大的并行数据计算性能和海量数据管理能力。下图展示了Greenplum的体系架构。【赵渝强老师】基于PostgreSQL的MPP集群:Greenplum。

2025-09-18 18:39:18 690

原创 【赵渝强老师】Oracle数据库配置助手:DBCA

(3)在Select Database Creation Mode界面上选择Advanced configuration。(8)在Specify Network Configuration Details界面上,选择之前创建好的监听器。(2)在Select Database Operation界面上选择Create a database。(9)在Select Oracle Data Vault Option界面上保持默认配置。(16)数据库创建完成的界面如下图所示。

2025-09-15 18:34:38 683

原创 【赵渝强老师】达梦数据库实例的状态

对于新初始化的库,首次启动不允许使用mount方式,需要先正常启动并正常退出,然后才允许mount方式启动。一般情况下,数据库为NORMAL模式,如果不指定MOUNT状态启动,则自动启动到OPEN状态;在需要对数据库配置时(如配置数据守护、数据复制),服务器需要指定MOUNT状态启动。当数据库模式为非NORMAL模式(PRIMARY、STANDBY模式),无论是否指定启动状态,服务器启动时自动启动到MOUNT状态。该命令将启动DM数据库服务查看器,利用图形界面启动或停止数据库。下面展示了该命令的帮助信息。

2025-09-11 09:40:19 418

原创 【赵渝强老师】OceanBase的部署模式

为保证单一机器故障时同一分区的多数派副本可用,OceanBase数据库会保证同一个分区的多个副本不调度在同一台机器上。由于同一个分区的副本分布在不同的Zone/Region下,在城市级灾难或者数据中心故障时既保证了数据的可靠性,又保证了数据库服务的可用性,达到可靠性与可用性的平衡。下面将以在多机上部署OceanBase集群社区版为例来演示如何部署OceanBase全分布式集群。OceanBase全分布式集群是真正用于生产环境的集群模式,它是指在多机上部署生产环境的分布式集群。(6)执行命名部署集群。

2025-09-08 20:58:05 371

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除