自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

数据源的港湾

要么健身,要么读书,身体和灵魂,必须有一个在路上

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

原创 Greenplum-最佳实践小结

注:本文翻译自。

2023-08-31 16:14:35 526

原创 Greenplum-segment镜像分布策略

除了组镜像分布策略和散列镜像分布策略之外,用户还可以自定义镜像分布策略。有些基于Greenplum的数据库自己定义了额外的镜像分布策略,比如 YMatrix默认的镜像分布策略叫 环状镜像分布策略(Ring Mirroring):即在至少有两台主机的情况下,将一个主机中的 Primary 序号序列看作一个一维纸带,从中间对折,然后在另外的主机上从对折的中间序号为起点,顺时针均匀排列 Mirror 到其他主机。扩容增加新的 Primary 不会影响之前已分布完成的镜像闭环,而是开启一个新的镜像环。

2023-08-31 10:54:17 257

原创 QianBase MPP配置资源组报错cgroup is not properly configured

根据报错提示查看/sys/fs/cgroup/cpu/qbdb/发现此目录并不存在,因此说明cgroup并未配置。在QianBase MPP中希望从默认的资源队列模式修改为资源组模式,通过以下命令设置为资源组模式,通过以上输出已经能够找到/sys/fs/cgroup/cpu/gpdb/目录,说明配置成功。注:初次在执行这条命令时遇到以下报错信息,最后发现原因是因为qbadmin用户名写错导致。后续就可以继续尝试配置资源组并使用资源组功能了,我们在后续的文章中继续介绍。注:本文相关知识点可访问官方网站。

2023-08-29 15:36:56 190

原创 Greenplum实用技巧

gp_segment_id是表中的隐藏列,用来标记该行属于哪个segment节点。因此可以基于该隐藏列进行分组查询,获取每个segment的记录数,从而判断表数据的分布是否均匀或有倾斜。gp_segment_configuration是一张系统表,它维护包括master、standby在内的所有节点信息。查看表的大小有两种方式,一种是\d+,一种是pg_size_pretty。如果想查看某一张表的size,可以使用pg_size_pretty,如下。可以在命令行使用show xxx来显示某个参数的值。

2023-08-24 10:31:11 1284

原创 硬盘的分类

目前常见的硬盘种类主要有以下2种:机械硬盘(HDD)机械硬盘(HDD)是一种利用来存储和访问数据的存储设备。它由磁盘、读写头、电机和控制电路等组成,磁盘通常是一种铝合金或玻璃材质的圆盘,表面涂有磁性材料,读写头则可以在磁盘上读写数据。当电机旋转磁盘时,读写头可以在磁盘的不同位置读取和写入数据。固态硬盘(SSD)固态硬盘(Solid State Drive,SSD)是一种使用(通常是NAND芯片)来存储数据的高速、低功耗、无噪音、可靠性高的存储设备。

2023-08-02 18:34:49 412

原创 TimescaleDB多节点功能概述

如果您有更大的pb级工作负载,则可能需要多个TimescaleDB实例。TimescaleDB多节点允许您运行和管理数据库集群,这可以为您提供更快的数据摄取,以及对大型工作负载响应更快、更高效的查询。

2023-07-27 10:34:04 315

原创 TimescaleDB压缩功能

注:本文翻译自从1.5版本开始,TimescaleDB支持本地压缩数据的能力。此功能不需要使用任何特定的文件系统或外部软件,并且正如您将看到的,用户可以很容易地设置和配置它。在使用本指南之前,我们建议查看一下我们的体系结构部分,以了解有关压缩如何工作的更多信息。在高层次上,TimescaleDB的内置作业调度器框架将跨多个TimescaleDB超级表块异步地将最近的数据从未压缩的基于行的形式转换为压缩的列形式。本节将介绍这些概念,并帮助您了解本机压缩的一些优点和局限性。

2023-07-27 08:43:29 461

原创 TimescaleDB时序数据库初识

时间序列数据是总体上表示系统、流程或行为如何随时间变化的数据。以时间为中心:数据记录总是有一个时间戳。仅追加:数据几乎完全是仅追加的(insert)。最近的:新数据通常是关于最近的时间间隔,我们很少更新或回填关于旧时间间隔的缺失数据。然而,数据的频率或规律性并不那么重要;它可以每毫秒或每小时收集一次。它也可以定期或不定期收集(例如,当某些事件发生时,而不是在预定义的时间)。与其他数据(如标准关系“业务”数据)相比,时间序列数据(以及支持它们的数据库)之间的一个关键区别是,

2023-07-26 13:58:39 589

原创 从Oracle迁移到PostgreSQL的10个原因

注:本文翻译自Oracle关系数据库管理系统(RDBMS)已被大型组织广泛使用,被认为是迄今为止市场上最先进的数据库技术。通常将RDBMS与作为产品应该提供的标准“事实”的其他数据库产品进行比较。它被db- enginees.com评为当今市场上可用的头号RDBMS。PostgreSQL被列为排名第四的RDBMS,但这并不意味着迁移到PostgreSQL没有任何优势。PostgreSQL自1989年以来一直存在,1996年开源。

2023-06-21 17:13:50 1894

原创 初识MYSQL组复制MGR

注:本文翻译自。

2023-06-06 16:27:57 480

原创 openGauss对比PostgreSQL

注:本文引用自。

2023-04-19 10:36:41 3740 1

原创 为什么Uber从PostgreSQL换成了MySQL

在Uber的早期,Postgres为我们提供了很好的服务,但随着我们的增长,我们在扩展Postgres方面遇到了重大问题。今天,我们有一些遗留的Postgres实例,但我们的大部分数据库要么构建在MySQL之上(通常使用我们的Schemaless层),要么在某些特殊情况下,构建在Cassandra这样的NoSQL数据库之上。总的来说,我们对MySQL非常满意,将来我们可能会有更多的博客文章来解释它在Uber的一些更高级的用法。

2023-04-15 11:13:37 611

原创 PostgreSQL之WAL段文件管理

在前面我们了解了PG数据库的故障恢复依赖于在启动时通过回放WAL段文件中的XLOG记录来完成,这篇我们学习一下PG数据库中WAL段文件是怎么管理的。首先,我们需要知道WAL段文件是保存在pxg_xlog(PG V10版本以前,在PG V10版本以后变成 pg_wal)子目录下,如果一个WAL段文件写满后就会切换到一个新的段文件。总的WAL段文件个数由几个配置参数决定的。此外,对于WAL段文件的管理机制在PG 9.5版本得到了提升。

2023-04-03 13:09:22 1150

原创 PostgreSQL之数据库恢复

前面我们了解到PostgreSQL的故障恢复与checkpoint、WAL密切有关。当数据库异常宕机,通过顺序的重放WAL段文件中从重做点(REDO point)开始的XLOG记录来进行数据库的恢复操作。

2023-04-03 10:18:00 2329

原创 PostgreSQL之Checkpoint检查点进程

在文章中我们学习了PG数据库中有好几个background后台进程,其中一个后台进程是checkpointer检查点进程。这里我们学习一下什么是checkpointer检查点进程以及它的用处。当然,由超级用户手工触发CHECKPOINT命令也可以调度checkpoint工作。下面再了解一下checkpoint过程都包含哪些内容。

2023-03-30 17:50:12 953

原创 PostgreSQL之Commit Log

PostgreSQL数据库把事务的状态信息保存在Commit Log(简称clog)中,clog被分配在共享内存shared memory,记录事务的所有状态变化。下面我们先了解一下事务状态都有哪些。

2023-03-30 14:16:08 338

原创 PostgreSQL之整体架构

PostgreSQL作为一个单机的关系型数据库,与单机Oracle的架构是比较相似的,与MySQL的InnoDB引擎也比较像。据我目前的了解,单机数据库的整体架构都差不太多,都是包含一个主的进程,一些辅助进程,以及一个大的共享内存池。下面我们具体学习一下PG架构里面的这些部分。

2023-03-29 12:26:34 654

原创 PostgreSQL之Full VACUUM

前面我们介绍了PG中的Concurrent VACUUM,详细请参考,这篇我们继续来了解一下PG中的Full VACUUM。我们了解Concurrent VACUUM允许在执行的时候仍然允许对正在VACUUM的表进行读取操作,因此这个操作对业务的影响也比较小。但是Full VACUUM在执行期间是不允许对相关表进行任何操作的,所以它对业务的影响也比较大,那么为什么还需要Full VACUUM呢?我们假如以下一种场景,一个表有三个Page,每个Page里面有6条Tuple,如下图所示。

2023-03-29 09:54:06 759

原创 PostgreSQL之Concurrent VACUUM

在前面一文中我们初步了解到PG中是采用了MVCC多版本机制,数据在删除时并不会直接从页面中删除掉而是通过修改t_xmax将其标记为delete,更新数据也是通过把原数据标记为delete并插入一条新记录的形式。既然老的数据不会立马删除,那数据库一定就得一些其他的机制可以进行异步的清理,否则数据库长久肯定会有数据膨胀的问题存在。PG中为了清理老的无用数据,引入了VACUMM机制。。

2023-03-28 18:23:10 406

原创 PostgreSQL之tuple结构

在上一篇文章中我们了解了PostgreSQL中堆表的存储结构,以及对于堆表的tuple是如何写入和读取的,不过我们只涉及到如何把想要的tuple从表对应的页面读取出来或者把tuple如何写到页面去,但是关于tuple内部的细节并没有说明。本文我们将着重学习一下tuple的内部结构以及对于增删改操作tuple是如何变化的。

2023-03-28 16:37:00 1074

原创 PostgreSQL之堆表存储(Heap Table)

SQL Server关于堆表的描述如下,没有聚集索引的表堆表在sys.partitions里有1条index_id = 0 的记录数据存储没有任何的顺序,插入数据也没顺序由于数据没有任何顺序,查询数据会非常慢数据页之间没有相互链接从数据页读取数据,需要从IAM(Index Allocation Map)页里找页号。

2023-03-28 13:16:12 1871 1

原创 SMP&NUMA&MPP三大体系结构及区别

之前一直听到MPP架构,也知道share nothing及share everything、share disk的区别,但说实话对于MPP的理解一直停留于表面,只知道MPP是海量并行计算,大体思路就是每个计算单元是独立的,各自处理的计算资源,然后通过并行计算以达到更高的计算能力,原则上通过扩展节点就能线性扩展计算性能。今天看到网上其他人写的关于SMP、NUMA及MPP的不同算是进一步了解了这几个概念的含义。

2023-03-27 15:23:24 1067

原创 InnoDB关键特性

上一篇中我们简单了解了InnoDB的体系结构,了解它主要包含一个内存池以及一些后台进程。内存池主要包括缓冲池、日志缓冲池以及额外缓冲池三大块,其中缓冲池中又包含数据和索引页的缓存、插入缓冲、自适应哈希索引缓冲、锁信息缓存以及数据字典缓存等。后台进程中最主要的就是master thread进程,它基本包含了大部分的功能,其中包含几大循环,重点是主循环,主要分为每秒的操作和每10秒的操作。详细内容可回顾这篇文章。

2023-03-22 18:23:43 240

原创 InnoDB体系结构

MySQL区别于其他数据库最重要的特点是其插件式的表存储引擎。MySQL存储引擎支持很多种类,最为出名的就是InnoDB。InnoDB由Innobase Oy公司开发,创始人芬兰赫尔辛基的Heikki Tuuri,InnoDB存储引擎支持事务,主要面向OLTP应用。其特点有行锁设计、支持外键,支持类似Oracle的非锁定读,即默认情况下读操作不会产生锁。InnoDB将数据放在一个逻辑的表空间中,从MySQL 4.1版本开始,它可以将每个InnoDB的表单独存放到一个独立的ibd文件中。

2023-03-22 13:49:41 341

原创 Greenplum-MVCC与数据可见性判断

众所周知,Greenplum内部支持MVCC多版本并发控制,通过MVCC技术,可以支持同一行数据的读写并发问题,从而大大提升并发访问控制的能力。

2023-03-06 11:43:20 491 1

原创 Greenplum-主备同步机制

我们在学习Greenplum的架构时知道,Greenplum中主要有Master管理层和Segment计算层。在高可用方面,Master通过配置一个Standby来实现主备,Segment则通过对实例设置镜像的方式也实现主备高可用(其中主实例称为Primary,备实例称为Mirror)。Master作为管理层,主要负责元数据的管理及执行计划的分发。为了存储元数据,Master节点上面有一个PG数据库实例,Standby节点上也同样有一个PG数据库实例,

2023-03-05 00:20:10 708

原创 Greenplum的两阶段提交

注:本文章引自在前面的文章中,我们了解了单机库中的事务一致性实现以及分布式事务中的两阶段提交协议。大多数分布式系统都是采用了两阶段提交塄来保证事务的原子性,Greenplum也是采用了两阶段提交,Greenplum的两阶段提交是基于PostgreSQL的基础上实现的。

2023-02-16 18:19:08 512

原创 分布式事务实现机制及二阶段提交

注:本文章引自。

2023-02-16 17:06:44 522

原创 单机数据库事务实现机制

注:本文章引自。

2023-02-16 13:06:43 407

原创 RDS&DRDS&PolarDB&PolarDB-X的区别

基于阿里云分布式文件系统和高性能存储,RDS支持MySQL、SQL Server、PostgreSQL和PPAS(Postgre Plus Advanced Server,一种高度兼容Oracle的数据库)引擎,并且提供容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。而PolarDB-X是使用云原生技术的分布式数据库,具有一体化的数据库体验,存储节点是经过高度定制的MySQL,从而提供了大量中间件无法提供的如分布式事务等能力。PolarDB是云原生数据库,

2023-02-13 17:05:43 3104

原创 MySQL vs MariaDB

MySQL的一个分支,由开源社区维护,采用PGL授权许可。开发这个分支的原因是因为Oracle收购MySQL有MySQL闭源的风险,因此社区采用这个分支来避开这个风险。它完全兼容MySQL。MariaDB5.5及以前版本均依照MySQL的版本,从10.0.x版本开始不再依照MySQL的版本号。关系型数据库系统,目前被Oracle收购。最初由瑞典公司MYSQL AB于1994年创立。存储引擎上,MariaDB在10.0.9版本使用XtraDB代替MySQL的InnoDB。

2023-02-11 22:44:17 96

原创 Oracle/MySQL/PostgreSQL的MVCC实现及redo/undo/binlog相关概念

最近好像突然有点回归到传统的关系型/集中式数据库原理上面来了,也可能是之前一直对这些概念印象不太深刻。今天再总结一下,好让记忆深刻一些。本文主要的目的是把Oracle、MySQL、PostgreSQL三大主流的关系型数据库中关于MVCC实现及redo log、undo log及binlog的关系描述清楚。

2023-01-19 18:16:47 3782

原创 SGA与PGA的区别

前几天有被别人问到什么是SGA和PGA,说实在的,之前一直搞分布式,已经基本把单机里面的这两个概念忘记的差不多了,不过当时还是根据自己的一点数据库经验说了点七七八八,后来网上查了一下相关说明,发现自己的理解也大概能对的上,只不过没有那么详细。下图是一张Oracle的体系结构图,

2023-01-18 11:32:41 1433

原创 从DTCC2022盘点各大厂商如何看待数据库发展趋势

DTCC 2022 已落下帷幕有些时日,回顾大会上的一些分享,尤其是头一天上午几大数据库厂商均在演讲一开始纷纷表达了对数据库发展趋势的看法。下面我们来具体回顾一下达梦、腾讯、华为、阿里这几家对数据库未来的看法。

2022-12-28 14:32:23 1201

原创 CockroachDB-备份与恢复(6)RESTORE命令

RESTORE语句从存储在AWS S3、谷歌云存储或NFS等服务上的备份中恢复集群的模式和数据。因为cockachdb设计了高容错性,恢复主要是为灾难恢复设计的,也就是说,如果集群丢失了大部分节点,则重新启动集群。孤立的问题(如小规模节点中断)不需要任何干预。

2022-12-01 10:48:11 393

原创 分布式事务排序与时钟方案

租户级别的全局时钟服务每个租户启动一个全局时间戳服务(Global Timestamp Service,即GTS),事务提交时通过本租户的时间戳服务获取事务版本号,保证全局的事务顺序。基于Paxos的高可用GTS默认三副本(基于Paxos),使用租户级别内部表的leader作为GTS服务提供者,时间来源于该leader的本地时钟。时钟获取优化。

2022-12-01 09:33:29 528

原创 CockroachDB-备份与恢复(5)BACKUP命令

CRDB的BACKUP语句允许您创建集群模式和数据的完整或增量备份,这些备份与给定的时间戳一致。BACKUP只备份整个表;它不支持备份表的子集。因为cockachdb设计了高容错性,所以这些备份主要用于通过RESTORE进行灾难恢复(即,如果您的集群失去了大部分节点)。孤立的问题(如小规模节点中断)不需要任何干预。要查看使用backup语句创建的备份的内容,请使用SHOW backup。

2022-11-30 10:04:14 734

原创 CockroachDB-备份与恢复(4)管理备份计划

您可以在cockachdb中为定期备份创建时间表。

2022-11-29 13:30:49 311

原创 CockroachDB-备份与恢复(3)修订历史备份及时间点恢复

可以使用ttlseconds复制区域设置配置垃圾收集周期。使用带有修订历史的备份允许在修订历史中进行时间点恢复。

2022-11-29 13:28:06 147

原创 CockroachDB-备份与恢复(2)全量备份与增量备份

因为cockachdb设计了高容错性,所以备份主要用于灾难恢复(也就是说,如果您的集群失去了大部分节点)。孤立的问题(如小规模节点中断)不需要任何干预。然而,作为一项操作上的最佳实践,我们建议对数据进行定期备份。您可以使用BACKUP语句将集群的模式和数据高效地备份到流行的云服务(如AWS S3、谷歌云存储或NFS),还可以使用RESTORE语句在必要时高效地恢复模式和数据。有关更多信息,请参见使用云存储进行批量操作。

2022-11-29 13:20:42 808

空空如也

空空如也

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

TA关注的人

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