GaussDB入门

  • GaussDB简介
  • 1. 主备集群 == 集中式
  • 2. 分片集群:
  • gsql连接
  • 组件介绍


GaussDB简介

GaussDB是华为开发的一种分布式关系型数据库管理系统。GaussDB支持主备集群和分片集群两种部署模式,它们在功能和架构上有一些区别。

gaussdb支持plpython3u_数据库

gaussdb支持plpython3u_gaussdb支持plpython3u_02

gaussdb支持plpython3u_nosql_03

gaussdb支持plpython3u_数据库_04

华为GaussDB相比PostgreSQL做了哪些内核优化?

1. 主备集群 == 集中式

主备集群是传统的数据库高可用架构,包括一个主节点和一个或多个备节点。主节点处理所有的写操作和大部分的读操作,而备节点用于冗余和故障恢复。主备集群的特点包括:

  • 数据一致性:主节点上的写操作会同步到备节点,确保数据一致性。
  • 故障恢复:当主节点发生故障时,备节点可以接管并继续提供服务,实现高可用性。
  • 数据冗余:备节点保存主节点上的数据副本,提供数据冗余和备份。

gaussdb支持plpython3u_nosql_05

cm_ctl query -Cvipd

gs_om -t status --detail > a.txt
[omm@gaussdb-b0e95ed4-cm-0 ~]$ cat a.txt
[  CMServer State   ]

node           node_ip         instance                             state
---------------------------------------------------------------------------
1  245.0.1.49  245.0.1.49      1    /data/cluster/data/cm/cm_server Primary
2  245.0.0.104 245.0.0.104     2    /data/cluster/data/cm/cm_server Standby
3  245.0.1.52  245.0.1.52      3    /data/cluster/data/cm/cm_server Standby

[    ETCD State     ]

node           node_ip         instance                     state
-------------------------------------------------------------------------
1  245.0.1.49  245.0.1.49      7001 /data/cluster/data/etcd StateFollower
2  245.0.0.104 245.0.0.104     7002 /data/cluster/data/etcd StateLeader
3  245.0.1.52  245.0.1.52      7003 /data/cluster/data/etcd StateFollower

[   Cluster State   ]

cluster_state   : Normal
redistributing  : No
balanced        : No
current_az      : AZ_ALL

[  Datanode State   ]

node           node_ip         instance                                          state            | node           node_ip         instance                                          state            |                                                                                                                        node           node_ip         instance                                          state
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                                                                                                                       -----------------------------------------------------------------------------------------------------
4  245.0.0.2   245.0.0.2       6001 /data/cluster/data/dn/gaussdb-b0e95ed4-dn0-0 P Standby Normal | 5  245.0.1.135 245.0.1.135     6002 /data/cluster/data/dn/gaussdb-b0e95ed4-dn0-1 S Primary Normal |                                                                                                                        6  245.0.1.61  245.0.1.61      6003 /data/cluster/data/dn/gaussdb-b0e95ed4-dn0-2 S Standby Normal
su - omm
gsql -d postgres -p 42000 -r

\x
select * from pg_stat_replication;

select * from pg_replication_slots;

gaussdb支持plpython3u_gaussdb支持plpython3u_06


gaussdb支持plpython3u_gaussdb支持plpython3u_07


gaussdb支持plpython3u_gaussdb_08


同步模式

两地三中心跨region容灾

2. 分片集群:

分片集群是为了应对大规模数据和高并发负载而设计的解决方案。它将数据分散存储在多个节点上,每个节点称为一个分片,每个分片都是一个独立的数据库实例。分片集群的特点包括:

  • 水平扩展:数据分片存储在多个节点上,可以通过增加节点来实现水平扩展,提高数据库的处理能力和吞吐量。
  • 数据分片:数据被划分为多个分片,每个分片只包含部分数据,减轻了单个节点的负载压力。
  • 查询路由:查询会根据分片规则被路由到相应的分片节点上进行处理,从而实现分布式查询。

GaussDB数据分布策略设计

GaussDB(for openGauss)是分布式架构,数据分布在各个DN上,设计好的数据分布策略是分布式数据库设计中最关键的环节。

gaussdb支持plpython3u_nosql_09

cm_ctl query -Cvipd

[  CMServer State   ]

node               node_ip         instance                             state
-------------------------------------------------------------------------------
AZ1 1  245.0.1.46  245.0.1.46      1    /data/cluster/data/cm/cm_server Standby
AZ1 2  245.0.0.120 245.0.0.120     2    /data/cluster/data/cm/cm_server Standby
AZ1 3  245.0.3.43  245.0.3.43      3    /data/cluster/data/cm/cm_server Primary

[    ETCD State     ]

node               node_ip         instance                     state
-----------------------------------------------------------------------------
AZ1 1  245.0.1.46  245.0.1.46      7001 /data/cluster/data/etcd StateFollower
AZ1 2  245.0.0.120 245.0.0.120     7002 /data/cluster/data/etcd StateFollower
AZ1 3  245.0.3.43  245.0.3.43      7003 /data/cluster/data/etcd StateLeader

[   Cluster State   ]

cluster_state   : Normal
redistributing  : No
balanced        : No
current_az      : AZ_ALL

[ Coordinator State ]

node               node_ip         instance                                         state
-------------------------------------------------------------------------------------------
AZ1 7  245.0.0.57  245.0.0.57      5001 /data/cluster/data/cn/gaussdb_cadcaebf_cn_0 Normal
AZ1 8  245.0.1.6   245.0.1.6       5002 /data/cluster/data/cn/gaussdb_cadcaebf_cn_1 Normal
AZ1 9  245.0.3.67  245.0.3.67      5003 /data/cluster/data/cn/gaussdb_cadcaebf_cn_2 Normal

[ Central Coordinator State ]

node               node_ip         instance                                         state
-------------------------------------------------------------------------------------------
AZ1 7  245.0.0.57  245.0.0.57      5001 /data/cluster/data/cn/gaussdb_cadcaebf_cn_0 Normal

[     GTM State     ]

node               node_ip         instance                                           state                    sync_state
-----------------------------------------------------------------------------------------------------------------------------
AZ1 4  245.0.1.83  245.0.1.83      1001 /data/cluster/data/gtm/gaussdb_cadcaebf_gtm_0 P Standby Connection ok  Sync
AZ1 5  245.0.0.102 245.0.0.102     1002 /data/cluster/data/gtm/gaussdb-cadcaebf-gtm-1 S Standby Connection ok  Sync
AZ1 6  245.0.3.112 245.0.3.112     1003 /data/cluster/data/gtm/gaussdb-cadcaebf-gtm-2 S Primary Connection ok  Sync

[  Datanode State   ]

node               node_ip         instance                                          state            | node               node_ip         instance                                          state            | node               node_ip         instance                                          state
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AZ1 10 245.0.1.56  245.0.1.56      6001 /data/cluster/data/dn/gaussdb-cadcaebf-dn0-0 P Standby Normal | AZ1 11 245.0.0.118 245.0.0.118     6002 /data/cluster/data/dn/gaussdb-cadcaebf-dn0-1 S Standby Normal | AZ1 12 245.0.3.90  245.0.3.90      6003 /data/cluster/data/dn/gaussdb-cadcaebf-dn0-2 S Primary Normal
AZ1 13 245.0.1.138 245.0.1.138     6004 /data/cluster/data/dn/gaussdb-cadcaebf-dn1-0 P Standby Normal | AZ1 14 245.0.0.59  245.0.0.59      6005 /data/cluster/data/dn/gaussdb-cadcaebf-dn1-1 S Primary Normal | AZ1 15 245.0.3.10  245.0.3.10      6006 /data/cluster/data/dn/gaussdb-cadcaebf-dn1-2 S Standby Normal
~

总结来说,主备集群适用于常规的高可用需求,提供数据冗余和故障恢复能力,而分片集群则适用于大规模数据和高并发负载的场景,提供水平扩展和分布式查询的能力。选择适合的架构取决于你的应用需求和规模。

gsql连接

gsql -d postgres -p 42000 --集中式是登录主dn

gsql -d postgres -p 42050 --分布式登录cn,直接登录dn报错

gaussdb支持plpython3u_数据_10


##GaussDB集中式数据库后台登录

通过终端登录集中式主库
su omm
gsql -d postgres -p 42000

##GaussDB分布式数据库后台登录
通过终端登录CN
su omm
gsql -d postgres -p 42050

组件介绍

GaussDB

  1. CMServer State(CM服务器状态):
  • CMServer(Configuration Management Server)是GaussDB中的配置管理服务器,负责管理数据库集群的配置信息和节点状态。,包括节点的角色(主节点、备节点)、数据库的参数设置等。CMServer状态的正常运行对于集群的配置管理非常重要,如果CMServer状态不正常,可能会导致配置信息无法正确同步和管理。
  • 在提供的输出中,列出了每个CMServer实例的节点、IP地址、实例号、存储路径和状态。例如,AZ1 1节点的CMServer实例1位于/data/cluster/data/cm/cm_server,并且状态为Down。
  1. ETCD State(ETCD状态):
  • ETCD是GaussDB集群中的分布式键值存储系统,用于存储数据库集群的元数据和配置信息。ETCD状态的正常运行对于集群的正常运作至关重要,如果ETCD状态不正常,可能会导致集群无法正确启动、配置信息丢失或不一致。
  • 在提供的输出中,列出了每个ETCD实例的节点、IP地址、实例号、存储路径和状态。例如,AZ1 1节点的ETCD实例7001位于/data/cluster/data/etcd,并且状态为Down。
  1. Cluster State(集群状态):
  • cluster_state:表示集群的整体状态。在提供的输出中,集群状态为Degraded,表示集群处于降级状态。
  • redistributing:表示是否正在进行数据重新分配。在提供的输出中,redistributing状态为No,表示当前没有进行数据重新分配。
  • balanced:表示是否已经实现负载均衡。在提供的输出中,balanced状态为No,表示集群还未实现负载均衡。
  • current_az:表示当前可用区(Availability Zone)的配置。在提供的输出中,current_az为AZ_ALL,表示所有可用区都被配置为当前可用区。
  1. Coordinator State(协调器状态):
  • 协调器(Coordinator)是GaussDB集群中的组件,负责协调数据库操作和查询的执行。Coordinator State提供了关于各个协调器实例的状态信息。
  • 在提供的输出中,列出了每个协调器实例的节点、IP地址、实例号、存储路径和状态。例如,AZ1 7节点的协调器实例5001位于/data/cluster/data/cn/gaussdb_cadcaebf_cn_0,并且状态为Normal。
  1. Central Coordinator State(中心协调器状态):
  • 中心协调器(Central Coordinator)是GaussDB集群中的主要协调器实例,负责全局协调和管理。Central Coordinator State提供了关于中心协调器实例的状态信息。
  • 在提供的输出中,列出了中心协调器实例的节点、IP地址、实例号、存储路径和状态。例如,AZ1 7节点的中心协调器实例5001位于/data/cluster/data/cn/gaussdb_cadcaebf_cn_0,并且状态为Normal。
  1. GTM State(全局事务管理器状态):
  • GTM(Global Transaction Manager)是GaussDB集群中的全局事务管理器,负责处理分布式事务。GTM State提供了关于GTM实例的状态信息。
  • 在提供的输出中,列出了每个GTM实例的节点、IP地址、实例号、存储路径、状态和同步状态。例如,AZ1 4节点的GTM实例1001位于/data/cluster/data/gtm/gaussdb_cadcaebf_gtm_0,状态为P(Primary),同步状态为Unknown。

综上所述,ETCD State提供了ETCD实例的状态信息,CMServer State提供了CMServer实例的状态信息,Cluster State提供了集群的整体状态信息,Coordinator State提供了协调器实例的状态信息,Central Coordinator State提供了中心协调器实例的状态信息,而GTM State提供了GTM实例的状态信息。这些状态信息对于了解集群的运行状况和各个组件的状态非常重要。

gaussdb支持plpython3u_gaussdb_11