GaussDB入门
- GaussDB简介
- 1. 主备集群 == 集中式
- 2. 分片集群:
- gsql连接
- 组件介绍
GaussDB简介
GaussDB是华为开发的一种分布式关系型数据库管理系统。GaussDB支持主备集群和分片集群两种部署模式,它们在功能和架构上有一些区别。
华为GaussDB相比PostgreSQL做了哪些内核优化?
1. 主备集群 == 集中式
主备集群是传统的数据库高可用架构,包括一个主节点和一个或多个备节点。主节点处理所有的写操作和大部分的读操作,而备节点用于冗余和故障恢复。主备集群的特点包括:
- 数据一致性:主节点上的写操作会同步到备节点,确保数据一致性。
- 故障恢复:当主节点发生故障时,备节点可以接管并继续提供服务,实现高可用性。
- 数据冗余:备节点保存主节点上的数据副本,提供数据冗余和备份。
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;
同步模式
2. 分片集群:
分片集群是为了应对大规模数据和高并发负载而设计的解决方案。它将数据分散存储在多个节点上,每个节点称为一个分片,每个分片都是一个独立的数据库实例。分片集群的特点包括:
- 水平扩展:数据分片存储在多个节点上,可以通过增加节点来实现水平扩展,提高数据库的处理能力和吞吐量。
- 数据分片:数据被划分为多个分片,每个分片只包含部分数据,减轻了单个节点的负载压力。
- 查询路由:查询会根据分片规则被路由到相应的分片节点上进行处理,从而实现分布式查询。
GaussDB(for openGauss)是分布式架构,数据分布在各个DN上,设计好的数据分布策略是分布式数据库设计中最关键的环节。
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集中式数据库后台登录
通过终端登录集中式主库
su omm
gsql -d postgres -p 42000
##GaussDB分布式数据库后台登录
通过终端登录CN
su omm
gsql -d postgres -p 42050
组件介绍
- CMServer State(CM服务器状态):
- CMServer(Configuration Management Server)是GaussDB中的配置管理服务器,负责管理数据库集群的配置信息和节点状态。,包括节点的角色(主节点、备节点)、数据库的参数设置等。CMServer状态的正常运行对于集群的配置管理非常重要,如果CMServer状态不正常,可能会导致配置信息无法正确同步和管理。
- 在提供的输出中,列出了每个CMServer实例的节点、IP地址、实例号、存储路径和状态。例如,AZ1 1节点的CMServer实例1位于/data/cluster/data/cm/cm_server,并且状态为Down。
- ETCD State(ETCD状态):
- ETCD是GaussDB集群中的分布式键值存储系统,用于存储数据库集群的元数据和配置信息。ETCD状态的正常运行对于集群的正常运作至关重要,如果ETCD状态不正常,可能会导致集群无法正确启动、配置信息丢失或不一致。
- 在提供的输出中,列出了每个ETCD实例的节点、IP地址、实例号、存储路径和状态。例如,AZ1 1节点的ETCD实例7001位于/data/cluster/data/etcd,并且状态为Down。
- Cluster State(集群状态):
- cluster_state:表示集群的整体状态。在提供的输出中,集群状态为Degraded,表示集群处于降级状态。
- redistributing:表示是否正在进行数据重新分配。在提供的输出中,redistributing状态为No,表示当前没有进行数据重新分配。
- balanced:表示是否已经实现负载均衡。在提供的输出中,balanced状态为No,表示集群还未实现负载均衡。
- current_az:表示当前可用区(Availability Zone)的配置。在提供的输出中,current_az为AZ_ALL,表示所有可用区都被配置为当前可用区。
- Coordinator State(协调器状态):
- 协调器(Coordinator)是GaussDB集群中的组件,负责协调数据库操作和查询的执行。Coordinator State提供了关于各个协调器实例的状态信息。
- 在提供的输出中,列出了每个协调器实例的节点、IP地址、实例号、存储路径和状态。例如,AZ1 7节点的协调器实例5001位于/data/cluster/data/cn/gaussdb_cadcaebf_cn_0,并且状态为Normal。
- Central Coordinator State(中心协调器状态):
- 中心协调器(Central Coordinator)是GaussDB集群中的主要协调器实例,负责全局协调和管理。Central Coordinator State提供了关于中心协调器实例的状态信息。
- 在提供的输出中,列出了中心协调器实例的节点、IP地址、实例号、存储路径和状态。例如,AZ1 7节点的中心协调器实例5001位于/data/cluster/data/cn/gaussdb_cadcaebf_cn_0,并且状态为Normal。
- 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实例的状态信息。这些状态信息对于了解集群的运行状况和各个组件的状态非常重要。