业界云原生数据库通常和云深度绑定,限制了云原生数据库的使用场景,尤其不方便开放人员本地调试。
百度 GaiaDB 因为天然的轻量架构,是全球第一个能支持多云的云原生数据库。
普惠版本是 GaiaDB 本地部署版本,本文是实操体验,希望大家喜欢!
背景
GaiaDB 普惠版是云数据库 GaiaDB 的本地部署版本,您可以在自己的服务器、笔记本上快速部署并体验 GaiaDB。如下介绍 GaiaDB 普惠版的部署方式。
注意事项
GaiaDB 普惠版目前仅支持 Linux(CentOS、Ubuntu)_x86_64版本,需要在 root 的权限下执行。
GaiaDB 普惠版仅用于体验集群的 SQL 兼容性、基本架构以及各个组件的运行,请勿用在生产环境。
部署 GaiaDB 普惠版需要的资源,CPU >= 4C 、内存 >= 16GB、系统盘 >= 100GB,部署过程中会通过公网下载安装依赖包。
下载并安装
执行以下命令,在指定的安装目录下载并部署 GaiaDB 普惠版
cd <install_path>
bash -c "$( curl -s -L -k https://gaiadb-deploy.bj.bcebos.com/install-1.0.8.sh )"
安装完成后会提示如下信息:
Detected shell: bash
Shell profile: root/.bash_profile
/root/.bash_profile has been modified to add gaiadb-deploy to PATH
******************************************************************
open a new terminal or source root/.bash_profile to use it
******************************************************************
***********************************************
GaidDB Deployer is installed.
***********************************************
work dir is root/.gaiadb-deploy
***********************************************
Have a try: gaiadb tryout
***********************************************
安装后的文件可以在 ~/.gaiadb-deploy 路径下查看。
声明全局环境变量,便于在任何路径下执行
gaiadb命令
source root/.bash_profile
单机模式创建 GaiaDB 集群,运行如下命令
gaiadb tryout
创建成功后提示如下信息:
Gaiadb Cluster create successfully!
Connect Gaiadb using the following command:
gaiadb connect -n gdc-tryout
or mysql -hIP -PPORT -uroot -pPASSWORD
连接 GaiaDB 集群
方式一:通过集群名称快速连接
gaiadb connect -n gdc-tryout
使用 MySQL 客户端连接 GaiaDB
mysql -hIP -PPORT -uroot -pPASSWORD
提示:IP、PORT、PASSWORD会替换成真实值
查看GaiaDB集群拓扑和状态信息
执行以下命令查看集群信息
gaiadb check -n gdc-tryout -t
输出集群拓扑信息,如下:
Cluster Status:
+--------+
| health |
+--------+
| good |
+--------+
Each module Status:
Gaiadb-Manager Status:
+--------------------------------------------+
| addr | status | isLeader |
+--------------------------------------------+
| IP:PORT| NODE_ACTIVE | False |
| IP:PORT | NODE_ACTIVE | False |
| IP:PORT | NODE_ACTIVE | True |
+--------------------------------------------+
Compute-Node Status:
+----------------------------------------------------------------------------+
| addr | applyLsn | status | isPrimary |
+----------------------------------------------------------------------------+
| IP:PORT | 28293379 | NODE_ACTIVE | False |
| IP:PORT | 28293379 | NODE_INACTIVE | True |
+----------------------------------------------------------------------------+
Log-Service Status:
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| addr | writeLsn | vdl | parseLsn | dispatchLsn | archiveLsn | gcLsn | psLwm | cmpLwm | inGossip | status | isLeader |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| IP:PORT | 28293379 | 28293379 | 28293379 | 28293379 | 28293379 | 28293379(0) | 28293379 | 28293379 | False | NODE_ACTIVE | False |
| IP:PORT | 28293379 | 28293379 | 28293379 | 28293379 | 28293379 | 28293379(0) | 28293379 | 28293379 | False | NODE_ACTIVE | False |
| IP:PORT | 28293379 | 28293379 | 28293379 | 28293379 | 28293379 | 28293379(0) | 28293379 | 28293379 | False | NODE_ACTIVE | True |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
LogService Water Level:
+-------------------------------------------------------------------------------------------------+
| writeLsn | vdl | parseLsn | dispatchLsn | archiveLsn | gcLsn | psLwm | cmpLwm |
+-------------------------------------------------------------------------------------------------+
| 28293379 | 28293379 | 28293379 | 28293379 | 28293379 | 28293379 | 28293379 | 28293379 |
| diff writeLsn | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| | diff vdl | 0 | 0 | 0 | 0 | 0 | 0 |
+-------------------------------------------------------------------------------------------------+
Page-Server Status:
+-------------------------------------------------------------------------------------------+
| segmentId | replicaId | addr | applyLsn | checkpointLsn | status |
+-------------------------------------------------------------------------------------------+
| 1 | 0 | IP:PORT | 28293379 | 28293379(0) | NODE_ACTIVE |
| 1 | 1 | IP:PORT | 28293379 | 28293379(0) | NODE_ACTIVE |
+-------------------------------------------------------------------------------------------+
集群清理
测试完成之后,可以通过以下命令清理集群
gaiadb clean -a
如需重新创建集群,可以执行以下命令。
gaiadb tryout
更多操作
您可以查看更多命令帮助
gaiadb -h
执行信息如下:
usage: gaiadb [-h] {check,clean,create,list,docker,tryout,connect} ...
GaiaDB cluster managerment tool.
positional arguments:
{check,clean,create,list,docker,tryout,connect}
Available commands
check Check cluster leader.
clean Clean all GaiaDB clusters.
create Create a full GaiaDB cluster.
list List GaiaDB clusters.
docker Docker command.
tryout Create a minimum GaiaDB cluster on local machine for
tryout.
connect Connect to specific GaiaDB cluster.
optional arguments:
-h, --help show this help message and exit
附录:产品架构简介
GaiaDB采用全新的云原生分布式架构,使其具备大容量、高可用、高性能的商业级特性,本章介绍产品的架构和关键特性。

一写多读
GaiaDB采用分布式集群架构,一个集群包含一个主节点和最多15个从节点(至少一个节点,用于保障高可用)。主节点处理读写请求、从节点仅处理读请求,可实现分钟级增减节点和计算节点规格变配。
计算存储分离,灵活扩展
计算存储分离,摆脱了计算节点CPU、内存和存储节点磁盘互相制约的困扰,GaiaDB对计算层关注CPU与内存性能的优化,对存储层关注低成本的存储实现,各自进行了针对性优化,提升资源利用率与性能。与传统MySQL在购买的时候需要指定购买的磁盘大小不同,GaiaDB 实现计算存储分离后,存储单独购买。新增只读实例仅需要付出计算的成本,不需要单独增加存储成本。
共享存储,降低数据存储成本
与传统MySQL一个实例一份数据拷贝不同,GaiaDB同一个集群的所有节点(包括主节点和从节点)都访问存储节点上的同一份数据,由于从节点的扩展不需要拷贝数据,创建新的从节点不但速度快,而且很便宜,您仅需要支付相应计算节点的成本。
数据多副本,数据零丢失
数据库存储节点的数据采用多副本形式,确保数据的可靠性。




