自定义博客皮肤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)
  • 收藏
  • 关注

原创 CockroachDB-备份与恢复(1)备份架构

验证BACKUP语句的参数,然后将它们写入描述备份的作业系统中的作业。根据作业中记录的参数,以及在存储位置中找到的任何以前的备份,确定需要备份存储层中数据的哪个键跨度和时间范围。指示集群中的各个节点分别读取这些键并将行数据写入备份存储位置。记录关于备份到备份存储位置的任何附加元数据。

2022-11-29 10:28:07 982

原创 CRDB-多区域部署

多区域部署允许cockachdb数据库跨越多个地理区域。多区域部署的配置对集群的容错和区域性能有影响。这两个目标并非完全不兼容,但两者之间存在一些权衡。

2022-11-23 09:28:38 594

原创 CRDB-事务层知识点

事务层负责维护事务的原子性,确保事务中的所有操作都被提交或中止。此外,事务层在事务之间维护可序列化的隔离—这意味着事务与其他事务的影响完全隔离。尽管多个事务可能同时进行,但每个事务的体验就像每次只运行一个事务—可序列化的隔离级别。事务层处理SQL层生成的KV操作。事务由多个KV操作组成,其中一些操作可能是单个SQL语句的结果。除了更新表项外,还必须更新索引项。在所有情况下保持完美的一致性涉及多种复杂的算法,并不是所有的算法都可以在本章中介绍。

2022-11-21 18:36:29 811

原创 CockroachDB-读和写

本文知识点来源于官网地址。

2022-11-21 10:21:11 317

原创 CockroachDB-哈希分片索引

本文知识点来源于官网地址如果您正在处理一个必须按顺序键建立索引的表,则应该使用哈希分片索引。哈希分片索引将顺序流量均匀分布在不同的范围内,消除了单一范围的热点,并以较小的读性能代价提高了顺序键索引上的写性能。

2022-11-10 18:19:02 717

原创 CockroachDB索引

CRDB使用CREATE INDEX创建索引,索引用来帮助SQL查询数据而不用进行全表扫描,从而提高性能。表的字段如果被定义为PRIMARY KEY或UNIQUE,会自动创建索引。如果想在JSONB或ARRAY上面创建索引,可以创建GIN索引。

2022-10-25 10:29:21 689

原创 主流开源OLAP对比分析

数据库按照应用场景划分可以分为OLTP和OLAP,OLTP是针对交易型的场景比如像银行的存取款、转账类业务,OLAP是针对分析型的场景比如用于企业决策支持的BI、报表类业务。而在OLAP领域,又可以根据具体技术实现分为MOLAP及ROLAP。是基于多维分析的OLAP系统,一般。是更偏向传统关系型的OLAP系统,ROLAP又分为两类:一类是,另一类是。

2022-10-20 12:01:41 3550

原创 CockroachDB架构-存储层

本文知识点来源于官网地址。

2022-10-18 09:50:40 1190

原创 CockroachDB架构-SQL层

本文知识点来源于官网地址CRDB的SQL层向开发人员公开SQL API,将高级SQL语句转换为底层键值存储的低级读写请求,并传递给事务层。

2022-10-08 13:50:10 1281

原创 CockroachDB架构-事务层

本文知识点来源于官网地址。

2022-09-30 16:43:25 677

原创 CockroachDB架构-复制层

本文知识点来源于官网地址。

2022-09-26 11:11:48 1115

原创 CockroachDB架构-分布式层

本文知识点来源于官网地址。

2022-09-21 18:05:13 1473

原创 分布式一致性协议之Gossip

Gossip协议也叫 Epidemic协议(流行病协议),是基于流行病传播方式的节点或者进程之间信息交换的协议。如果把两个节点数据同步一次定义为一个周期,则在一个周期内,Push 需通信 1 次,Pull 需 2 次,Push/Pull 则需 3 次。Paxos、Raft、ZAB 等分布式算法经常会被称作是“强一致性”的分布式共识协议,因为从整体上对系统外部看来是不会有不一致的情况的。Gossip协议通常以**随机的“对等选择”**形式实现:以给定的频率,每台计算机随机选择另一台计算机,并共享任何消息。

2022-09-21 12:02:04 496

原创 Greenplum-数据导入导出

通过 URI 来。

2022-09-16 18:10:45 2314

原创 Greenplum-备份与恢复

恢复采用pg_restore命令,pg_restore命令只能恢复由pg_dump或pg_dumpall命令备份出来的压缩格式。串行备份是继承Postgresql的原生COPY命令,所有数据都经过Master处理。另外,gpbackup还支持增量备份,通过参数**–incremental**指定。–redirect-db代表恢复到不同的数据库名称。–backup-dir指定备份的目录。–jobs指定恢复表数据的并行连接数。–dbname代表备份的数据库名称。–jobs指定备份表的并行任务数。

2022-09-16 14:30:41 1405

原创 Greenplum-表分区

在前面文章中,我们学习了Greenplum的几种表分布的策略,包括HASH分布、随机分布、复制表三种分布策略。表的分布策略可以实现表的数据能否均匀的分布在不同的Segment实例中。除了表的分布策略以外,Greenplum还支持对表进行分区。分区是在每个Segment内部的行为,将表创建为分区表后,表会拆分为ROOT表和子分区表,数据都存放在子分区表中,ROOT表不存储数据。Greenplum中的分区有两种方式:list(列表)分区及range(范围)分区。这两个分区方式可以随意组合形成多级分区。

2022-09-15 16:52:09 1381

原创 Greenplum-表的分布策略

Greenplum中所有的表都是必须分布存放的,这样可以充分利用MPP的并发特性。在创建表时可以指定不同的分布策略,包括三种分布策略:HASH分布、随机分布和复制表。概念:选择一个列或多个列作为数据表的分布键,通过hash计算,将插入的数据路由到特定的segment上。HASH分布是默认的分布策略。也可通过指定DISTRIBUTED BY语法来指定使用HASH分布。注:当建表时未定义分布键时,如果表有主键,使用主键字段作为默认的分布键;如果表上没有主键,默认按照第一个字段来分布。示例:随机分布概念

2022-09-15 11:53:47 1191

原创 Greenplum-表的存储模式

在学习Greenplum的过程中,了解到Greenplum中表有多种不同的存储模式,包括堆表、AO表、行存、列表、压缩、加密这些特性,这些不同的存储模式分别适用什么样的场景,我们在真正使用的时候又该怎么合理的选择哪一种表呢?本文就GP中的这几种表的存储模式加以说明。

2022-09-14 18:01:23 1610 1

原创 Greenplum、Kylin、SparkSQL对比

greenplum、kylin、sparkSQL对比

2022-09-14 16:15:37 495

原创 记一次HBase启动异常的恢复历程

我去hdfs这个表对应的目录下面查看发现.regioninfo文件是存在的,但meta表中确实没有相关信息,既然是这样情况,那理论上通过-fixMeta应该就可以修复Meta数据,但是实际上执行-fixMeta后并没有实际的效果。至些,这个HBase启动的问题算是彻底修复了,虽然,但是,关于最后的.regioninfo为什么会有问题以及是什么问题,为什么不删除.regioninfo后再-repair就可以修复,这里面的一些细节问题我还没有研究清楚。不管怎样,先记录下来这次的恢复历程吧,后面有时间再来细究。

2022-09-08 11:25:36 2461 2

原创 分布式数据库理论知识之CAP理论、ACID原则及分布式事务一致性算法

一阶段提交不需要“协调者”角色,各结点之间不存在协调操作,因此其事务执行时间比两阶段提交要短,但是提交的“危险期”是每一个事务的实际提交时间,相比于两阶段提交,一阶段提交出现在“不一致”的概率就变大了。一旦协调者出现问题,那么整个二阶段提交流程将无法运转,更为严重的是,如果协调者是在阶段二中出现问题的话,那么其他参与者将会一直处于锁定事务资源的状态中,而无法继续完成事务操作。当且仅当所有的参与者同意提交事务协调者才通知所有的参与者提交事务,否则协调者将通知所有的参与者取消事务。

2022-08-24 17:00:10 1967

原创 EsgynDB Troubleshooting - ERROR[2012] Server process tdm_arkesp could not becreated

monitor启动的进程数超过这个值时,就会报2012错误,同时,monitor日志中会打印 [CExtNewProcReq::performRequest], Unsuccessful, MAX_PROCESSES limit!esp是由monitor启动的,而monitor启动的进程总数是有限制的,是由内部的宏。由于代码中对进程个数有硬性限制,需要考虑kill部分进程,如ESP进程。限制的,这个值是2048,目前这个值在代码中是硬编码的,外部无法修改。......

2022-08-09 14:23:29 181

原创 EsgynDB Troubleshooting - 网卡MTU导致跨网段访问数据库失败

大部分网络设备的MTU都是1500,如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。查询发现客户端的MTU值和集群服务器的MTU值设置为9000,而网关的MTU值为1500,导致网络传输丢包严重。设置:echo “1500” > /sys/class/net/eth0/mtu。查看:cat /sys/class/net/eth0/mtu。查看当前MTU值:ifconfig eth0。.

2022-08-04 10:00:28 305

原创 HBase 在线删除oldWAL释放磁盘空间

HBase的WAL日志会从WAL转移到oldWAL目录,oldWAL可以通过参数来设置保留时效,如以下截图是将oldWAL设置为7天,通过配置hbase.master.logcleaner.ttl指定,这可能会导致磁盘空间占用较大。如果在线上环境碰到磁盘空间占用很大的情况时,可以考虑根据日期条件来删除部分oldWAL日志。(如果是直接删除oldWAL目录下面的所有文件,可能会因为当前正在有WAL移动的动作而导致RegioniServer宕机)......

2022-08-03 16:51:38 2765

原创 QianBase 运维实用命令

QianBase 运维实用命令

2022-08-03 16:36:43 596

原创 Linux awk 命令

awk命令是一种处理文本的语言,是一个强大的文本分析工具,比较适用于文本的格式化。awk命令结构为:awk工作流程可以分为三个部分:创建测试文件,内容如下:内置变量变量描述$n当前记录的第n个字段,字段间由FS分隔$0完整的输入记录ARGC命令行参数的数目ARGIND命令行中当前文件的位置(从0开始算)ARGV包含命令行参数的数组CONVFMT数字转换格式(默认值为%.6g)ENVIRON环境变量关联数组ERRNO最后一个系统错

2022-07-14 17:40:27 148

原创 Linux shell获取文件第一行或最后一行

Linux shell获取文件的最后一行,方法有:Linux shell获取文件的最后一行,方法有:其中tail -n 1用于当文件较大时使用。

2022-07-12 09:56:19 20733

原创 HBase之异步Replication机制

HBase 提供了一种群集复制机制,允许使用源群集的预写日志(WAL)来传播更改,从而使一个群集的状态与另一个群集的状态保持同步。集群复制的一些用例包括:HBase中的Replication是基于WAL的,其在主集群的每一个RegionServer进程内部起了一个叫作ReplicationSource的线程来负责Replication,同时在备集群的每一个RegionServer内部起了一个ReplicationSink的线程来负责接收Replication数据。ReplicationSource记录须要同

2022-06-27 14:16:41 2105

原创 PostgreSQL DBA快速入门-通过源码编译安装

本文介绍通过PostgreSQL官方源码安装包编译安装的方式来快速上手PostgreSQL数据库。目的是为了不需要指定可执行文件(如psql、pg_ctl等)的绝对路径在/data/postgres/13.2/data/pg_hba.conf中,添加下面行:host all all 0.0.0.0/0 md5以上表示对于所有使用IPV4的客户端机器,允许通过任意IP,通过任意用户可以发起对数据库的访问,但必须要提供数据库用户密码,认证方式为通过MD5加密认证。在/data/postgres/13.2/d

2022-06-21 17:59:24 471

原创 YugabyteDB对比CockroachDB-第一部分

注:本文翻译自YugabyteDB官网文章 https://blog.yugabyte.com/yugabytedb-vs-cockroachdb-bringing-truth-to-performance-benchmark-claims-part-1/介绍在Yugabyte,我们欢迎竞争和批评。我们相信这些方面对于广泛采用像YugabyteDB这样的业务关键、完全开源的项目是至关重要的。具体来说,建设性的批评有助于我们改进项目,使我们的大型用户社区受益。蟑螂实验室的工程师几个月前发布了他们对蟑螂数据

2022-05-24 11:55:42 855

原创 YugabyteDB对比CockroachDB-第二部分

注:本文翻译自YugabyteDB官网文章 yugabytedb-vs-cockroachdb-bringing-truth-to-performance-benchmark-claims-part-2概要Yugabyte SQL是基于对PostgreSQL原生查询层的重用。这种重用保留了PostgreSQL中许多最先进的RDBMS特性,因此应用程序的开发速度不会受到影响。另一方面,CockroachDB还远没有成为今天PostgreSQL那样完整的RDBMS。尝试与PostgreSQL v9.6兼容是

2022-05-23 17:52:31 1008

原创 分布式一致性问题之混合逻辑时钟

物理时钟存在的问题计算机的系统时钟是一个频率精确和稳定的脉冲信号发生器,也称为物理时钟。对于传统的单机数据库系统,时间戳值可依据本机器的物理时钟获取。但在分布式系统中,各个节点分布在不同的物理位置,每个节点都有自己的物理时钟,而这些节点的物理时钟无法保正完全精确一致。所以物理时钟不能作为分布式系统内在不同节点上并发执行的事务的排序依据。逻辑时钟Lamport Logicla Clocks(LC) 算法定义的偏序关系能正确的排列出具有因果关系的事件的次序,但是不能保正并发事件的真实顺序,使得分布式系

2022-05-04 16:08:32 1665 2

原创 主流数据库对比分析

1 数据库发展概述芯片、操作系统、数据库是现代信息技术领域的三大核心基础。其中,数据库作为数据存取、管理和应用的核心工具,决定了IT运行处理数据的高效性。自20世纪60年代至今,数据库的发展已相继经历了如下几个阶段: 层次数据库和网状数据库世界上第一个网状数据库系统是1964年诞生于通用电气公司的IDS(Integrated Data Storage,集成数据存储)。世界上第一个层次数据库系统是1968年诞生于IBM公司的IMS(Information Management System,信息管理

2022-04-24 13:43:51 16131

原创 并发访问控制技术之MVCC

MVCC,全称Multi-Version Concurrency Control,是并发访问控制的核心技术之一,是用于防止用户表数据被并发事务访问时出现数据不一致的问题。MVCC有三个主要的核心技术:多版本;快照;可见性判断算法。多版本一般情况下,在数据库基于某个数据进行基于封锁的并发访问控制技术时,读会阻塞写操作,写会阻塞读操作,写也会阻塞写操作,这导致了数据库事务处理的性能会比较差。MVCC技术对数据进行“分身”处理,把数据按照生存状态和阶段生命期进行区分。对于数据来说,意味着数据有多

2022-04-16 21:57:44 905

原创 事务处理的三种策略

经典的事务处理策略主要有三种。乐观并发控制策略(Optimistic Concurrency Control,OCC)从事务开始,每一项操作都允许进行,但在事务提交的时刻,需要进行隔离性和完整性约束检查,如果有违反相关约束的行为则终止事务。单机事务处理模型很少使用乐观并发控制策略。使用这种策略的分布式数据库有Percolator、CockroachDB等。悲观并发控制策略(Pessimistic Concurrency Control,PCC)从事务开始就检查每一项操作是否会违反隔离性和完整性约束

2022-04-15 16:47:53 986

原创 数据库架构设计的三种模式

数据库架构设计当前主要有三种模式,分别为Shared Nothing、Shared Everything、Shared Disk。Share Nothing各个处理单元都有自己私有的CPU/内存/硬盘等,不存在共享资源,类似于MPP(大规模并行处理)模式,各处理单元之间通过协议通信,并行处理和扩展能力更好。典型代表DB2 DPF和Hadoop ,各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。我们常说的 Sharding 其实就是Share Nothing架构,它是把某个

2022-04-13 17:15:22 896

原创 Cloudera Agent启动报错-Failed to connect to previous supervisor

现象某CDH环境由于有节点重启,重启后发现Cloudera Agent服务异常。从Agent日志中查看报错如下截图所示。分析正常Agent启动后df -h看到有一个挂载的/var/run/process进程,但是此时Agent起来的我们找不到这个进程。根据网上相关文章显示,系统异常宕机后导致启动后临时文件不能访问。通过以下命令我们找到for mnt in $(mount|cut -d ' ' -f 3); do stat $mnt 1>/dev/null 2>&1; rc=

2022-04-05 22:11:11 1103

原创 EsgynDB Troubleshooting - python脚本执行备份导出卡住的问题

EsgynDB数据库中使用DBManager可视化工具通过调用python脚本的方式来执行备份导出的任务。在数据库节点的cds目录下有相关备份恢复的执行脚本如edb_br_action.py。此脚本正常情况下均运行正常,但在个别运行很久的环境中,我们偶尔发现脚本会有执行卡住的问题。通过在脚本中关键位置中增加日志,我们定位到脚本卡在了以下语句:p = subprocess.Popen(sqlci_cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, st

2022-03-28 17:02:05 1620

原创 EsgynDB Troubleshooting-ERROR[8837] Internal error occurred.

现象某环境突然发现连接不上数据库,使用JDBC或trafci连接数据库报错如下:*** ERROR[8837] Internal error occurred. User: XXX分析报错ERROR[8837] Internal error occurred.一般是数据库与LDAP连接认证出现问题。所以遇到此报错后,第一点我们可以使用ldapcheck命令检查是否能正常从ldap中查询到数据库用户,命令为:ldapcheck --username=trafodion如果以上命令返回resu

2022-03-16 10:10:35 1244

原创 QianBase-SQL计算当天距生日还有多少天

使用SQL计算当天距生日还有多少天的场景:一开始使用的SQL写法如下datediff(DAY,sysdate,to_date(year(sysdate)||substring('1988-07-10',5),'YYYY-MM-DD'))但后面发现这种写法在遇到闰年的时候存在问题,如下面所示>>select datediff(DAY,sysdate,to_date(year(sysdate)||substring('1988-07-10',5),'YYYY-MM-DD')) from d

2022-03-02 19:41:28 594

空空如也

空空如也

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

TA关注的人

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