自定义博客皮肤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、云计算等领域的创新思维,知识分享和案例分析的知识分享平台。

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

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

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

2025-12-17 12:05:03 132

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

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

2025-12-15 09:57:32 666

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

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

2025-12-11 09:31:52 992

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

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

2025-12-08 17:06:23 978

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

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

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

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

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

2025-12-01 14:05:31 749

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

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

2025-11-29 12:01:37 895

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

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

2025-11-24 12:22:08 343

原创 【赵渝强老师】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 361

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

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

2025-11-17 18:37:15 450

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

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

2025-11-14 13:57:15 981

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

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

2025-11-11 21:54:05 918

原创 【赵渝强老师】使用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 1136

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

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

2025-11-06 22:07:49 487

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

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

2025-10-30 09:48:44 966

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

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

2025-10-27 15:53:28 493

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

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

2025-10-23 11:35:09 914

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

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

2025-10-20 10:16:46 863

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

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

2025-10-16 09:32:13 571

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

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

2025-10-13 14:22:25 369

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

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

2025-10-10 11:47:26 425

原创 【赵渝强老师】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 981

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

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

2025-10-02 10:57:22 1093

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

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

2025-09-29 10:50:25 890

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

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

2025-09-18 18:39:18 670

原创 【赵渝强老师】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 665

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

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

2025-09-11 09:40:19 402

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

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

2025-09-08 20:58:05 357

原创 【赵渝强老师】阿里云大数据MaxCompute的体系架构

阿里云提供的大数据计算服务MaxCompute(原名ODPS,Open Data Processing Service的简称)是一种快速、完全托管的EB级数据仓库解决方案,主要用于实时性要求不高的离线计算分布式处理场景。因此,大数据计算服务MaxCompute不能用于数据的实时处理场景中。

2025-09-01 18:11:06 1244

原创 【赵渝强老师】MySQL数据库的多实例环境

多实例就是一台服务器上开启多个不同的服务端口(默认3306),运行多个MySQL的服务进程,这此服务进程通过不同的socket监听不同的服务端口来提供各在的服务。所有实例之间共同使用一套MYSQL的安装程序,但各自使用不同的配置文件、启动程序、数据文件,在逻辑上是相对独立的。多实例主要作用是:充分利用现有的服务器硬件资源,为不同的服务提供数据服务,但是如果某个实例并发比较高的,同样是会影响到其它实例的性能。视频讲解如下【赵渝强老师】MySQL的多实例环境。

2025-08-28 11:16:36 881

原创 【赵渝强老师】Docker的私有镜像仓库:Harbor

Harbor是由VMware公司开发并开源的企业级的Docker镜像仓库的管理项目,它包括镜像的权限管理(RBAC)、目录访问(LDAP)、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。【赵渝强老师】Docker的私有镜像仓库Harbor为了更好地演示Harbor的安装和部署的过程,这里单独准备一台虚拟机作为运行Harbor的主机。下图展示了Harbor主机的网络配置和主机名信息。

2025-08-25 10:27:22 1133

原创 【赵渝强老师】Redis Cluster分布式集群

日常在对于Redis的使用中经常会遇到一些问题,例如:如何保证Redis的持续高可用性?如何实现单实例Redis扩充?如何提升高并发时的性能问题?针对这些问题,在Redis 3.0版本中推出了Redis Cluster。它是Redis的分布式解决方案,并有效解决了Redis分布式方面的需求。当遇到单机的内存、并发和流量等瓶颈时,可以采用Redis Cluster架构达到负载均衡的目的。官方推荐,毋庸置疑。去中心化,集群最大可增加1000个节点,性能随节点增加而线性扩展。

2025-08-21 09:03:24 703

原创 【赵渝强老师】Hadoop HDFS的快照

Hadoop HDFS的快照(Snapshot)是一个全部文件系统、或者某个目录在某一时刻的镜像。这里其实可以把HDFS的快照理解成是HDFS提供的一种备份机制。由于HDFS的快照功能是针对的目录,因此需要首先使用HDFS的管理员命令开启目录的快照功能,再使用HDFS的操作命令创建目录的快照。(6)通过HDFS的Web Console也可以查看快照的相关信息,如下图所示。下面通过具体的步骤来演示如何使用HDFS的快照。(1)开启/input目录的快照功能。(5)对比/input目录的两个快照。

2025-08-18 10:44:54 338

原创 【赵渝强老师】TiDB表数据与键值对的映射关系

TiDB实例将表中的每一行数据映射成RocksDB中的键值对,则需要考虑如何构造Key和Value。因此,对应的Key最好有一个唯一ID(显示或隐式的ID),以方便快速定位。首先每行数据都会映射为一个(Key,Value)键值对,同时该表有一个int类型的主键,所以RowID的值即为该主键的值。而对于不存在主键或者唯一约束的表,TiDB将会表自动生成_tidb_rowid。下面是一个简单的示例。(2)当表不存在主键时,TiDB会自动创建_tidb_rowid且该列初始值是1,递增也是1。

2025-08-14 11:24:22 450

原创 【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程

PostgreSQL中的WAL是Write Ahead Logging的缩写,即预写日志,它是保证数据完整性的一种标准方法。简单来说就是在PostgreSQL数据库中要对数据文件进行修改时必须先写入WAL日志信息,即当WAL日志记录完成了持久化,刷新到永久储存之后才能更改数据文件。在默认的情况下,单个WAL预写日志文件的大小是16M,通过参数wal_segment_size决定。当一个WAL预写日志文件写满时会自动切换到下一个WAL预写日志文件,而WAL切换的方式也可以是手动切换。

2025-08-12 11:16:04 732

原创 【赵渝强老师】Oracle客户端与服务器端连接建立的过程

监听程序在Oracle网络服务的作用是非常重要的。下图展示了Oracle客户端是如何通过监听器程序与数据库服务器端建立连接的。Oracle数据库采用的客户端-服务器的Client-Server的架构。Oracle的客户端需要通过使用Oracle数据库提供的网络环境来建立与服务器端通信,从而实现正常的数据库访问。从图中可以看出,当客户端与数据库服务器端建立连接后,客户端执行的所有SQL语句将直接由Oracle数据库的服务器进程执行。因此,Oracle的监听器只在建立连接时会用到。(2)查看监听的状态。

2025-08-07 20:34:55 436

原创 【赵渝强老师】达梦数据库的DMSQL

存储过程和存储函数在功能上相当于客户端的一段SQL批处理程序,但是在许多方面有着后者无法比拟的优点,它为用户提供了一种高效率的编程手段,成为现代数据库系统的重要特征。可以认为这种技术是执行DMSQL程序的一种机器,它可以接受任何有效的DMSQL程序,按照语言本身所规定的语义执行,并将结果返回给客户。DMSQL程序可以分为存储模块和客户端DMSQL程序两类。在DMSQL程序中,包括一整套数据类型、条件结构、循环结构和异常处理结构等,DMSQL程序中可以执行SQL语句,SQL语句中也可以使用DMSQL函数。

2025-08-04 15:56:22 566

原创 【赵渝强老师】OceanBase租户的资源管理

OceanBase数据库是多租户的数据库系统,一个集群内可包含多个相互独立的租户,每个租户提供独立的数据库服务。在OceanBase数据库中,使用资源配置(Unit Config)、资源单元(Unit)和资源池(Resource Pool)三个概念,对各租户的可用资源进行管理。【赵渝强老师】OceanBase租户的资源管理。

2025-07-31 21:29:46 538

原创 【赵渝强老师】阿里云大数据存储计算服务:MaxCompute

随着数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行业无法承载的海量数据(TB、PB、EB)级别。MaxCompute致力于批量结构化数据的存储和计算,提供海量数据仓库的解决方案及分析建模服务。云原生大数据计算服务(MaxCompute)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。下图展示了MaxCompute的项目空间。

2025-07-28 08:04:19 1039

原创 【赵渝强老师】MySQL中的数据库对象

MySQL数据库中包含各自数据库对象,常见的数据库对象有:表、索引、视图、事件、存储过程和存储函数等等。【赵渝强老师】MySQL中的数据库对象。

2025-07-25 11:10:33 646

空空如也

空空如也

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

TA关注的人

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