江中散人
在移动前端、微服务后端均有多年研发实施与团队管理经验,当选全球云原生技术基金会CNCF、信通院、华为云牵头组织的全球性云原生专业交流组织创原会2022年度与2023年度年度云原生MVP、2023年度云原生最佳创作奖。2023年新一代集中交易系统与国产集中式DB的软硬件联合调优方案,先后获得创原会2023年第三届“云原生技术先锋实践”奖,以及CNBPA的“最佳云原生行业实践奖”。相关技术博客积累超10年,技术领域涵盖云原生(容器/计算/存储/网络/PaaS/微服务/DevOps)、产品设计、IOS开发、Android开发、Hybrid混合开发等领域
展开
-
【云原生进阶之数据库技术】第四章-GaussDB-关键技术-2.4.2.5-Ustore最佳实践方案
存储引擎会对数据库整体效率和性能具有巨大影响,请根据实际需求选择适当的存储引擎。用户可使用WITH ( [ORIENTATION | STORAGE_TYPE] [= value] [, ... ] )为表或索引指定一个可选的存储参数。原创 2024-11-04 18:00:00 · 216 阅读 · 0 评论 -
【云原生进阶之数据库技术】第四章-GaussDB-关键技术-2.1-架构概览
GaussDB在架构设计上,采用组件化原则,分为GaussDB Kernel内核和GaussDB Kernel OM两部分。在产品形态上,提供面向云数据库服务GaussDB(for openGauss)的分布式安装包和集中式安装包,提供面向本地化安装的小型化安装包。根据华为云提供的调查报告,当前全球数据库市场增长超预期,云是数据库增长最重要驱动力。原创 2024-10-27 20:30:49 · 156 阅读 · 0 评论 -
【云原生进阶之数据库技术】第四章-GaussDB-关键技术-2.4.2.3-Ustore引擎
Ustore属于In-place Update更新模式,中文意思为:原地更新,是openGauss内核新增的一种存储模式。openGauss内核当前使用的行引擎采用的是Append Update(追加更新)模式,该模式在INSERT、DELETE、HOT UPDATE(页面内更新)的场景下有较好的表现。但对于非HOT UPDATE场景,垃圾回收不够高效。In-place Update存储模式提供“原地更新”能力,主要思路是将最新版本的“有效数据”和历史版本的“垃圾数据”分离存储。原创 2024-10-31 18:00:00 · 74 阅读 · 0 评论 -
【云原生进阶之数据库技术】第四章-GaussDB-关键技术-2.4.2.1-openGauss存储引擎层关键技术方案
从整个数据库服务的组成构架来看,存储引擎向上对接SQL引擎,为SQL引擎提供或接收标准化的数据格式(元组或向量数组);向下对接存储介质,按照特定的数据组织方式,以页面、列存储单元(CU,compression unit)或其他形式为单位,通过存储介质提供的特定接口,对存储介质中的数据完成读、写操作。在此基础之上,存储引擎通过日志系统提供数据的持久化和可靠性能力;通过并发控制(事务)系统保证同时执行的、多个读写操作之间的原子性、一致性和隔离性;通过索引系统提供对特定数据的加速寻址和查询能力;原创 2024-10-30 18:00:00 · 77 阅读 · 0 评论 -
【云原生进阶之数据库技术】第四章-GaussDB-关键技术-2.4.1-GaussDB存储引擎层关键技术方案
GaussDB整个系统设计是可插拔、自组装的,支持多个存储引擎以满足不同场景的业务诉求。当前Gauss存储行存储列存储内存引擎,主要面向极致性能场景设计,例如银行风控场景。创建表的时候可以指定为行存储引擎表、列存储引擎表、内存引擎表,支持一个事务中包含对三种引擎表的 DML操作,可以保证事务的 ACID性质。从整个数据库服务的组成构架来看,存储引擎向上对接SQL引擎,为SQL引擎提供或接收标准化的数据格式(元组或向量数组);原创 2024-10-30 08:30:00 · 87 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-原理-4.6.3.7-闪回事务查询技术
闪回事务查询是通过数据字典视图flashback_transaction_query来查询历史事务相关元数据,并且可以通过该视图的undo_sql字段会给出相应的SQL从逻辑层面撤销事务。闪回事务查询实际上是闪回版本查询的一个扩充,通过它可以审计某个事务甚至 撤销 一个已经提交的事务。flashback_transaction_query包含对数据库执行的所有更改,包括DDL操作。由于undo表空间有限,因此flashback_transaction_query中只包含一部分事物。原创 2024-06-10 15:00:00 · 204 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-原理-4.6.3.5-闪回表技术
闪回表就是对表的数据做回退,回退到之前的某个时间点,其利用的是undo的历史数据,与undo_retention设置有关,默认是14400分钟(1天)。同样,sys用户表空间不支持闪回表,要想表闪回,需要允许表启动行迁移(row movement)。原创 2024-06-09 15:00:00 · 158 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-原理-4.6.2-Oracle集群心跳机制
Oracle集群如何维护集群的一致性,所谓的集群一致性就是指集群中每个成员能够了解其他成员的状态,而且每个成员获得的集群中其他节点的状态和集群中节点成员列表信息是一致的,这也是集群最基本的要求。原创 2024-06-07 11:15:00 · 142 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-原理-4.6.1-Oracle长连接
在 Oracle 数据库应用中,长连接是一个重要的概念。正确使用长连接可以提高应用的性能,同时也可以提升数据库连接的可靠性和可伸缩性。在本文中,我们介绍了长连接的概念,并且讨论了如何在 Oracle 数据库中实现长连接的持久性、可靠性和可伸缩性。通过正确使用长连接,我们可以提升数据库应用程序的性能和可靠性,并且减少额外的开销。原创 2024-06-06 11:15:00 · 129 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-原理-4.4.1-内存架构综述
Oracle Instance是Oracle RDBMS的核心之一,负责RDBMS的管理功能。Oracle Instance主要由内存结构和后台进程组成。数据库实例启动后,Oracle数据库会为其分配一块内存区域并启动相关后台进程。1.1 基本内存结构下图展示了以上内存结构之间的关系。图1 Oracle数据库内存结构1.2 Oracle内存管理内存管理(memory management)涉及到在对数据库的需求发生变化时,维护Oracle实例内存结构的最佳大小。原创 2024-06-05 08:30:00 · 84 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-原理-4.3.5-数据块(Data Blocks)结构剖析
数据块是Oracle最小的存储单位,Oracle数据存放在“块”中。一个块占用一定的磁盘空间。Oracle数据库中的数据块又被称为Oracle块(Oracle block)或者页(page)。数据块是数据块 I/O 的最小单位。特别注意的是,这里的“块”是Oracle的“数据块”,不是操作系统的“块”。Oracle每次请求数据的时候,都是以块为单位。也就是说,Oracle每次请求的数据是块的整数倍。如果Oracle请求的数据量不到一块,Oracle也会读取整个块。原创 2024-06-04 19:00:00 · 121 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-原理-4.3.4-数据区(Extent)结构剖析
数据区表示一系列连续的数据块集合。当一个表、回滚段或临时段创建或需要附加空间时,系统总是为之分配一个新的数据区。一个数据区不能跨越多个文件,因为它包含连续的数据块。使用区的目的是用来保存特定数据类型的数据,也是表中数据增长的基本单位。一个Oracle对象包含至少一个数据区。设置一个表或索引的存储参数包含设置它的数据区大小。在进行存储数据信息的时候,Oracle将分配数据块进行存储,但是不能保证所有分配的数据块都是连续的结构。原创 2024-06-04 11:30:00 · 114 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-原理-4.3.1-逻辑结构综述
Oracle的逻辑结构是一种层次结构。主要由:表空间、段、区和数据块等概念组成。逻辑结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑结构。数据库存储层次结构及其构成关系,结构对象也从数据块到表空间形成了不同层次的粒度关系。oracle数据库在逻辑上是由多个表间组成的,表空间中存储的对象叫段,比如数据段,索引段,和回退段。段由区组成,区是磁盘分配的最小单位。段的增大是通过增加区的个数来实现的。每个区的大小是数据块大小的整数倍,区的大小可以不相同;数据块是数据库中最小的I/O单位.原创 2024-06-03 08:30:00 · 281 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-原理-4.3.2-表空间结构剖析
表空间是数据库的逻辑划分。任何数据库对象在存储时都必须存储在某个表空间中。表空间对应于若干个磁盘文件,即表空间是由一个或多个磁盘文件构成的。表空间相当于操作系统中的文件夹,也是数据库逻辑结构与物理文件之间的一个映射。每个数据库至少有一个表空间,表空间的大小等于所有从属于它的数据文件大小的总和。在面上,表空间将数据存储在一个或多个数据文件(data files)或临时文件(temp files)中。数据库必须有 SYSTEM 和 SYSAUX 表空间。原创 2024-06-03 11:30:00 · 137 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-使用-3.2.1-Oracle ogg原理剖析
OGG(Oracle GoldenGate)属于Oracle Fusion Middleware产品线,2009年被Oracle收购,它是Oracle Stream的替代者。OGG软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库的同步。原创 2024-05-26 21:30:00 · 711 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-使用-3.2.2-Oracle ogg安装部署
在目标端,主要做了4个操作,共包括2个进程,分别是MANAGER和REPLICAT。在目标端,主要做了4个操作,共包括2个进程,分别是MANAGER和REPLICAT。原创 2024-05-27 09:00:00 · 973 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-使用-3.3.1-Oracle Data Guard综述
Oracle DG,即Oracle Data Guard,是一种数据库容灾和数据保护解决方案,旨在提供高可用性和灾难恢复能力。它通过在主数据库和备用数据库之间实时复制数据来实现这一点。Data Guard的核心功能在于它能够保持主节点和备用节点之间的数据一致性,即使发生故障也能保证业务的连续性。Oracle Data Guard是Oracle MAA(Maximum Availability Architecture)中的成员之一,也是MAA中技术要求最简单的方案之一。原创 2024-05-27 12:00:00 · 1139 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-使用-3.3.2-Oracle Data Guard原理
DG 的工作原理是通过网络将主数据库的重做数据传输到备用数据库,然后在备用数据库上应用这些重做数据,以确保数据的一致性。DataGuard数据同步过程分为三个阶段:日志传输、日志接收、日志应用。主库在运行过程中会不断地产生redo日志,这些日志需要发送到备库,这个发送动作有两种传输方式:ARCH进程(传归档日志)、LGWR进程(传重做日志)原创 2024-05-28 09:00:00 · 713 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-使用-3.4.1-Oracle Active Data Guard综述
Oracle ADG全称为Oracle Active Data Guard,它是Oracle Data Guard功能集中的一个高级选项。Active Data Guard是Oracle数据库提供的一种高级高可用性和灾难恢复解决方案,它在Oracle Data Guard的基础上进一步增强了备用数据库(Standby Database)的功能和利用率。在Oracle 11g之前,物理备库(physical Standby)在应用redo的时候,是不可以打开的,只可以mount。原创 2024-05-28 12:00:00 · 743 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-使用-3.4.2-Oracle Active Data Guard调优
Oracle Active Data Guard(ADG)调优涉及多个层面,旨在确保备用数据库在提供实时查询服务的同时,维持高效的数据同步与良好的系统性能。为了确保ADG环境的高性能和可靠性,需要进行适当的调优。以下是一些关键的调优领域和建议:调优是一项持续的过程,需要根据实际业务需求、系统负载变化以及新版本特性的引入进行适时调整。在进行任何调优操作之前,务必做好备份、制定回滚计划,并在非业务高峰期进行测试验证。原创 2024-05-29 09:00:00 · 1734 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-使用-3.5-Oracle中hint使用
Hint实际上是一种特殊的注释,它以一种固定的格式和位置出现在SQL语句的SQL文本中,可以影响优化器对于执行计划的选择,但这种影响不是强制性的,优化器在某些情况下也可能忽略目标SQL中的Hint,即使这个Hint在语法和语义上是有效的。如果目标SQL的SQL文本中出现了Hint,优化器在选择最终执行计划时会把Hint一并考虑进来,如果优化器判断这个Hint给出的建议是合适的,就会直接遵循这个Hint给出的建议,并据此选定执行计划。反之,则会忽略该Hint仍然采用原先的判断标准来选定执行计划。原创 2024-05-29 12:00:00 · 906 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-原理-4.2.7-跟踪与告警文件解析
跟踪日志文件又叫做跟踪文件,每个服务器进程和后台进程都会写跟踪文件,当后台进程检测到错误时,Oracle会将错误信息写到跟踪文件中。Oracle跟踪文件中包含了大量而详细的诊断和调试信息,因此通过对跟踪文件的解读和分析,我们可以定位问题、分析问题和解决问题,可分析后台进程是否发生错误。跟踪文件又可以分为两类:一类是数据库的操作人员有意生成的;另一类则是由于出现了异常错误,由数据库自动生成的。对于后一类,只对Oracle内部的技术支持人员是有用的,但对于我们,则多半看不懂。原创 2024-06-02 11:45:00 · 107 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-原理-4.2.6-归档日志文件解析
Oracle将填满的联机日志文件复制到一个或多个路径进行存储的过程称为归档,这样生成的文件也叫做归档日志文件。存放归档文件的路径叫归档路径,只有数据库是运行在归档模式的场景下才能进行归档,归档的过程通常情况下由归档进程自动完成。一个数据库可以有一个或多个归档进程,归档进程的数量有初始化参数LOG_ARCHIVE_MAX_PROCESSES进行控制归档日志文件是历史联机重做日志文件的集合,是联机重做日志文件被覆盖之前备份的副本。原创 2024-06-02 08:45:00 · 221 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-使用-3.1-SQL操作
SQL语句可以对Oracle进行对象创建、删除,数据的插入、删除、更新,以及数据库的管理等操作,SQL是一个结构化的的查询语言(Structured Query Language),不仅仅适用于Oracle数据库,再其它的数据也适用。在Oracle开发中,客户端把SQL语句发送给服务器,服务器对SQL语句进行编译、执行,把执行的结果返回给客户端。原创 2024-05-26 17:15:15 · 129 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-2.3-数据库用户管理
用户权限管理是指通过合理的配置和管理,为每个用户分配适当的数据库权限,确保他们只能访问和操作其所需的数据对象。用户权限管理包括用户的认证、授权和审计等方面,旨在保护数据库的机密性、完整性和可用性。原创 2024-03-22 11:00:00 · 247 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-运维-2.2-数据库卸载
本文主要介绍Oracle的卸载相关操作步骤。原创 2024-03-22 09:00:00 · 91 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-运维-2.1-数据库安装
本文主要介绍Oracle数据库的安装与配置原创 2024-03-21 11:00:00 · 110 阅读 · 0 评论 -
【云原生进阶之数据库技术】第二章-Oracle-1-简介
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。原创 2024-03-21 09:00:00 · 479 阅读 · 0 评论 -
【云原生进阶之数据库技术】第三章-PostgreSQL-架构-3.3-逻辑架构
PostgreSQL的逻辑存储架构是其核心组成部分之一,负责管理和维护数据的组织和访问方式。在逻辑层面上,PostgreSQL将数据以特定的结构进行组织,以便能够高效地处理和检索数据。这种逻辑结构对于数据库的性能和可靠性至关重要。在逻辑存储架构中,所有的数据库对象都被赋予唯一的标识符,即OID(Object Identifier)。OID是一个无符号的四字节整数,用于在系统的系统目录表中唯一标识不同的数据库对象。原创 2024-03-20 09:00:00 · 123 阅读 · 0 评论 -
【云原生进阶之数据库技术】第三章-PostgreSQL-架构-3.4-物理结构
base目录存储用户创建的数据库文件,及隶属于用户数据库的所有关系,比如表、索引等存储pg_control及数据库集群维度的数据库及其关系,非客户维度的数据。(1 row)pg_wal是WAL机制中的wal日志存储目录。事务提交日志存储目录,默认256KB。原创 2024-03-20 11:00:00 · 177 阅读 · 0 评论 -
【云原生进阶之数据库技术】第三章-PostgreSQL-架构-3.2-进程结构
PostgreSQL是一个多进程架构的客户端/服务器模式的关系型数据库管理系统。PG数据库中的一系列进程组合进来就是PostgreSQL服务端。PG数据库中有一个主的postgres server进程,针对每个客户端有一个backend postgres进程,另外有一系列的background后台进程(针对不同的功能模块)。所以这些进程都对应一个共享内存shared memory。原创 2024-03-19 11:00:00 · 408 阅读 · 0 评论 -
【云原生进阶之数据库技术】第三章-PostgreSQL-架构-3.1-整体结构
PostgreSQL 是一个开源对象关系型数据库管理系统,并侧重于可扩展性和标准的符合性。PostgreSQL 面向企业复杂 SQL 处理的 OLTP 在线事务处理场景,支持 NoSQL 数据类型(JSON/XML/hstore),支持 GIS(Geographic Information System 或 Geo-Information system)地理信息处理,在可靠性、数据完整性方面有良好声誉,适用于互联网网站、位置应用系统、复杂数据对象处理等应用场景。原创 2024-03-19 09:00:00 · 331 阅读 · 0 评论 -
PostgreSQL-管理-2.3-Spring项目开发对接
在安装好了PostgreSQL之后,下面我们尝试一下在Spring Boot中使用PostgreSQL数据库。原创 2024-03-18 11:00:00 · 504 阅读 · 0 评论 -
【云原生进阶之数据库技术】第三章-PostgreSQL-管理-2.1-安装部署
本篇主要介绍PostgreSQL的安装部署原创 2024-03-17 11:00:00 · 101 阅读 · 0 评论 -
【云原生进阶之数据库技术】第三章-PostgreSQL-1-综述
PostgreSQL 是一个功能强大的开源数据库系统。经过长达15年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSQL可以运行在所有主流操作系统上,包括Linux、Unix和Windows。原创 2024-03-17 09:00:00 · 215 阅读 · 0 评论 -
【云原生进阶之数据库技术】第一章MySQL-架构原理-3.2.6 binlog工作原理
MySQL 在完成一条更新操作后,Server 层还会生成一条 binlog,等之后事务提交的时候,会将该事物执行过程中产生的所有 binlog 统一写 入 binlog 文件。binlog 文件是记录了所有数据库表结构变更和表数据修改的日志,不会记录查询类的操作,比如 SELECT 和 SHOW 操作。原创 2024-03-08 11:00:00 · 150 阅读 · 0 评论 -
【云原生进阶之数据库技术】第一章MySQL-架构原理-3.2.5 Redo Log工作原理
redo log 是物理日志,记录了某个数据页做了什么修改,对 XXX 表空间中的 YYY 数据页 ZZZ 偏移量的地方做了AAA 更新,每当执行一个事务就会产生这样的一条物理日志。在事务提交时,只要先将 redo log 持久化到磁盘即可,可以不需要将缓存在 Buffer Pool 里的脏页数据持久化到磁盘。当系统崩溃时,虽然脏页数据没有持久化,但是 redo log 已经持久化,接着 MySQL 重启后,可以根据 redo log 的内容,将所有数据恢复到最新的状态。原创 2024-03-08 08:45:00 · 203 阅读 · 0 评论 -
【云原生进阶之数据库技术】第一章MySQL-架构原理-3.2.4 UndoLog工作原理
undo log(回滚日志) 是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。原创 2024-03-08 11:00:00 · 103 阅读 · 0 评论 -
【云原生进阶之数据库技术】第一章MySQL-架构原理-3.2.3内存结构
InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理,因此可将其视为基于磁盘的数据库系统(Disk-base Database)。在数据库中CPU速度与磁盘速度是有很大差距的,基于磁盘的数据库系统通常使用缓冲池技术来提高数据库的整体性能。结构如下图所示:内存结构部分主要分为四个部分,Buffer Pool(缓冲池)、Change Buffer(变更缓冲)、Adaptive Hash Index(自适应哈希索引)、Log Buffer(日志缓冲)。原创 2024-03-08 08:45:00 · 90 阅读 · 0 评论 -
【云原生进阶之数据库技术】第一章MySQL-架构原理-3.2.2 Innodb磁盘结构
磁盘架构(On-Disk structures)的组成:1、System Tablespace:系统表空问是更改缓冲区的存储区域。如果表是在系统表空间而不是每个文件或通用表空间中创建的,它也可能包含表和索引数据。(在MySQL5.x版本中还包含InnoDB据字典、undolog等) 参数:innodb_data_file_path。2、File-Per-Table Tablespaces:每个表的文件表空间包含单个InnoDB表的数据和索引,并存储在文件系统上的单个数据文件中。原创 2024-03-07 11:00:00 · 84 阅读 · 0 评论
分享