GBase 8a MPP Cluster V9安装部署
GBase 8a MPP Cluster V9安装部署
安装环境准备
节点 | 角色 | 操作系统 | 地址 | 配置 | GBASE版本 |
---|---|---|---|---|---|
gbase01.gbase.cn | GCWARE,COOR,DATA | CentOS 7.9 | 192.168.20.142 | 2C4G | GBase 8a MPP Cluster V9 9.5.3.28.12 |
gbase02.gbase.cn | GCWARE,COOR,DATA | CentOS 7.9 | 192.168.20.143 | 2C4G | GBase 8a MPP Cluster V9 9.5.3.28.12 |
gbase03.gbase.cn | GCWARE,COOR,DATA | CentOS 7.9 | 192.168.20.144 | 2C4G | GBase 8a MPP Cluster V9 9.5.3.28.12 |
VMware下载:https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware%20Workstation%20Pro
VirtualBox下载:https://www.virtualbox.org/wiki/Downloads
OS 建议下载 CentOS 7.9 安装包。推荐网址:https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spm=a2c6h.25603864.0.0.5cb3f5adC5fVSC
GBase 8a MPP Cluster V9 9.5.3.28.12下载地址:https://www.gbase.cn/download/gbase-8a?category=INSTALL_PACKAGE
gbase01.gbase.cn 为安装和管理主节点
安装系统时建议在“软件选择”中勾选“带GUI的服务器”中的“开发工具”选项。
各节点IP是同一网段,并互相能连通;开启 SSH 服务;关闭防火墙、关闭seLinux服务、开启时钟同步。
查看版本
# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
设置静态IP
我的CentOS 7 容易自动变换IP,所以需要设置成为静态IP。
修改网卡:/etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=b1620999-32cd-4749-b7ab-a15bc2380161
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.20.142
NETMASK=255.255.255.0
GATEWAY=192.168.20.2
DNS1=101.226.4.6
上面是我以gbase01为例做的修改,其他IPADDR=X.X.X.X按需修改,这些内容为需要修改的,主要就是该静态模式、IP、验码、网关、DNS。
BOOTPROTO=static
IPADDR=192.168.20.142
NETMASK=255.255.255.0
GATEWAY=192.168.20.2
DNS1=101.226.4.6
需要注意网关和DNS要写对。网关获取:ip route | grep default | awk ‘{print $3}’
DNS这里使用的是运营商的。
修改完成后,重启网卡
systemctl restart network
设置主机名
使用root用户设置,或者有sudo权限的用户设置,我这里为了方便使用root设置。
在每一个节点分别设置。注意,是分别设置。
hostnamectl set-hostname gbase01.gbase.cn # gbase01
hostnamectl set-hostname gbase02.gbase.cn # gbase02
hostnamectl set-hostname gbase03.gbase.cn # gbase03
修改hosts
在每一个节点执行修改文件/etc/hosts为下面内容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# gbase 8a mpp cluster
192.168.20.142 gbase01.gbase.cn gbase01
192.168.20.143 gbase02.gbase.cn gbase02
192.168.20.144 gbase03.gbase.cn gbase03
配置 yum 源
在每一个节点执行
1、若可以联通互联网,可以使用远程源,方便直接下载使用
因为CentOS 7 的服务器已过,官方的yum不可用,所以需要配置第三方源,这里配置的是阿里云源
mkdir /etc/yum.repos.d/yum_bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/yum_bak
curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
2、若是内网环境可直接挂载ISO镜像文件下载
mkdir /mnt/iso
mount -o loop /dev/sr0 /mnt/iso
# 若是没有自动挂载ISO介质,则需要上传ISO文件再挂载。
mount -o loop /root/CentOS-7.9-x86_64-Everything-2009.iso /mnt/iso
制作repo文件
mkdir /etc/yum.repos.d/yum_bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/yum_bak
# 创建 local-iso.repo
cat << EOF >> /etc/yum.repos.d/local-iso.repo
[local-iso]
name=Local ISO Repository
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0
EOF
重新制作yum源缓存
yum clean all
yum makecache
配置免密
使用脚本配置互相免密,在安装节点运行脚本就可以了。
ssh-keygen -t rsa -b 2048
ssh-copy-id gbase01
ssh-copy-id base02
ssh-copy-id gbase03
安装集群管理软件
在安装节点上安装 clustershell
yum --enablerepo=extras install epel-release
yum install clustershell
验证,-w 输入需要控制的主机,看能不能正常返回:
[root@gbase01 ~]# clush -w gbase0[1-3] hostname
gbase01: gbase01.gbase.cn
gbase02: gbase02.gbase.cn
gbase03: gbase03.gbase.cn
前提是配置了集群免密。
检查依赖软件
在每一个节点执行检查,最好是使用集群命令统一检查,具体需要哪些依赖,可以在 GBase 8a 安装包内的 dependRpms 文件内查看
yum update -y
rpm -qa | grep psmisc
rpm -qa | grep libcgroup
rpm -qa | grep python2
# ...
yum install -y libcgroup libcgroup-tools psmisc ncurses-libs libdb glibc keyutils-libs libidn libgpg-error libgomp libstdc++ libgcc python-libs libgcrypt nss-softokn-freebl
# 若python不为python2,设置默认版本为python2
# alternatives --set python /usr/bin/python2
python --version # 验证默认版本
磁盘分区为默认分区,分区格式为默认的xfs,swap为默认不改动。
CPU建议关闭超线程、关闭 CPU 自动降频,我这里是测试虚拟机,所以没有操作。
网络要求三个节点可以互通
防火墙设置
测试环境,防火墙关闭,如果是不能关闭则开放所有需要使用的端口,每一个节点都需要检查
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
检查端口
GBase 8a MPP Cluster 各服务使用的默认端口如下
组件名称 | 默认端口号 | 端口协议类型 | 端口含义 |
---|---|---|---|
Gcluster | 5258 | TCP | GCluster 集群节点对外提供服务的端口 |
Gnode | 5050 | TCP | Data 集群节点对外提供服务的端口 |
Gcware | 5918 | TCP/UDP | gcware 节点间通讯端口 |
gcware | 5919 | TCP | 外部连接 gcware 节点端口 |
syncServer | 5288 | TCP | syncServer 服务端 |
GcrecoverMonit | 6268 | TCP | Gcrecover 服务端口 |
数据远程导出端口 | 16066~16166 | TCP | 数据远程导出端口 |
lsof -i:5258 -i:5050 -i:5918 -i:5919 -i:5288 -i:6268
检查sshd服务
在每一个节点执行
systemctl status sshd.service
systemctl enable sshd.service
关闭SELinux
在每一个节点执行
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 查看是否修改成功
grep "^SELINUX=" /etc/selinux/config
setenforce 0 # 临时关闭
# 输入 getenforce 返回 Permissive 则是临时关闭状态,
# 重启后是 Disabled ,完全关闭状态。
getenforce
sestatus
设置虚拟内存为unlimited
在每一个节点执行
cat << EOF >> /etc/security/limits.conf
* soft as unlimited
* hard as unlimited
EOF
设置时钟同步服务chrony
在每一个节点执行
systemctl status chronyd.service
systemctl start chronyd.service
systemctl enable chronyd.service
这里为了方便,是直接启动,若是内网环境,或者大集群,最好是把集群内两台同步远程时钟节点,其他节点,同步这两台的时钟,这样会时钟偏差比较小。
安装 GBase 8a
创建DBA账户
在每一个节点执行创建
useradd gbase
echo "gbase:Gbase@2024" | chpasswd
所有节点DBA账户的用户名、密码、uid、gid要一致,否则安装失败
[root@gbase01 opt]# clush -w gbase0[1-3] id gbase
gbase02: uid=1001(gbase) gid=1001(gbase) groups=1001(gbase)
gbase03: uid=1001(gbase) gid=1001(gbase) groups=1001(gbase)
gbase01: uid=1001(gbase) gid=1001(gbase) groups=1001(gbase)
解压 GBase 8a 安装包
上传软件包gbase01:/opt,gbase01为主节点,并解压。
cd /opt
tar xjf GBase8a_MPP_Cluster-NoLicense-FREE-9.5.3.28.12-redhat7-x86_64.tar.bz2
chown -R gbase:gbase /opt/gcinstall
创建 GBase 8a 目录
在每一个节点执行操作
mkdir -p /opt/gbase
chown -R gbase:gbase /opt/gbase
设置系统环境 SetSysEnv.py
官方提供了一个 python 脚本 SetSysEnv.py 用来一键配置系统参数文件
配置系统参数 /etc/systcl.conf 文件
配置 /etc/security/limits.conf 文件
配置 /etc/pam.d/su 文件
配置 /etc/security/limits.d/*-nproc.conf 文件
配置 /etc/cgconfig.conf 文件
使用 clustershell 工具同步文件到每一个节点的 opt下,并执行
clush -w gbase0[1-3] --copy /opt/gcinstall/SetSysEnv.py --dest /opt/
clush -w gbase0[1-3] "python /opt/SetSysEnv.py --dbaUser=gbase --installPrefix=/opt/gbase --cgroup"
参数 | 描述 |
---|---|
--dbaUser=gbase | dba 用户为 gbase,demo.options中dbaUser与这必须一致 |
--installPrefix=/opt/gbase | 安装目录为 /opt/gbase,demo.options中installPrefix与这必须一致 |
--cgroup | 使用资源管理功能,由 libcgroup-tools 提供 |
修改安装配置 demo.options
在安装节点gbase01上操作
su - gbase
cp /opt/gcinstall/demo.options /opt/gcinstall/demo.options_bak
cat << EOF > /opt/gcinstall/demo.options
installPrefix= /opt/gbase
coordinateHost = 192.168.20.142,192.168.20.143,192.168.20.144
coordinateHostNodeID = 101,102,102
dataHost = 192.168.20.142,192.168.20.143,192.168.20.144
#existCoordinateHost =
#existDataHost =
#existGcwareHost=
gcwareHost = 192.168.20.142,192.168.20.143,192.168.20.144
gcwareHostNodeID = 201,202,203
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'Gbase@2024'
rootPwd = 'Gbase@2024'
#dbRootPwd = ''
#rootPwdFile = rootPwd.json
#characterSet = utf8
#sshPort = 22
EOF
说明:V953 和 V952 版本不同在于,gcware 模块可以单独部署,可以不与 gcluster 节点部署在一起了,demo.options 文件中多了gcware 相关参数(gcwareHost 和 gcwareHostNodeID)。
dbaPwd 是 gbase 账户的密码
rootPwd 是 root 账户的密码
执行安装脚本
在安装节点,需要在dba用户gbase下执行:
su - gbase
/opt/gcinstall
./gcinstall.py --silent=demo.options
cat dependRpms
根据提示,按Y下一步
显示安装完成:InstallCluster Successfully
若安装时显示:
command "lssubsys" not found on host [192.168.20.142]
command "lssubsys" not found on host [192.168.20.144]
command "lssubsys" not found on host [192.168.20.143]
Cgconfig service is not exist on host ['192.168.20.142', '192.168.20.143', '192.168.20.144'], resource manangement can not be used, continue ([Y,y]/[N,n])?
原因是因为系统没有CGroups,可以直接输入 y 继续,或者是安装 libcgroup-tools
查看结果
安装完成环境变了还未加载,需要重新登录一次。
退出登录,再次进入,使用gcadmin查看环境,gcware 和 gcluster 都需要为 OPEN 才是正常。
exit
su - gbase
gcadmin
显示:
[gbase@gbase01 ~]$ gcadmin
CLUSTER STATE: ACTIVE
======================================
| GBASE GCWARE CLUSTER INFORMATION |
======================================
| NodeName | IpAddress | gcware |
--------------------------------------
| gcware1 | 192.168.20.142 | OPEN |
--------------------------------------
| gcware2 | 192.168.20.143 | OPEN |
--------------------------------------
| gcware3 | 192.168.20.144 | OPEN |
--------------------------------------
========================================================
| GBASE COORDINATOR CLUSTER INFORMATION |
========================================================
| NodeName | IpAddress | gcluster | DataState |
--------------------------------------------------------
| coordinator1 | 192.168.20.142 | OPEN | 0 |
--------------------------------------------------------
| coordinator2 | 192.168.20.143 | OPEN | 0 |
--------------------------------------------------------
| coordinator3 | 192.168.20.144 | OPEN | 0 |
--------------------------------------------------------
===============================================================
| GBASE CLUSTER FREE DATA NODE INFORMATION |
===============================================================
| NodeName | IpAddress | gnode | syncserver | DataState |
---------------------------------------------------------------
| FreeNode1 | 192.168.20.143 | OPEN | OPEN | 0 |
---------------------------------------------------------------
| FreeNode2 | 192.168.20.142 | OPEN | OPEN | 0 |
---------------------------------------------------------------
| FreeNode3 | 192.168.20.144 | OPEN | OPEN | 0 |
---------------------------------------------------------------
0 virtual cluster
3 coordinator node
3 free data node
设置分片信息
生成distribution(coordinator节点)
gcadmin distribution <gcChangelnfo.xml> <p number> [d number] [pattern 1 | 2]
gcChangelnfo.xml:是描述集群内节点和rack(机柜)对应关系的文件,默认存放于qcinstall目录
p:每个数据节点存放的主分片数量。注:pattern 1模式下,p的取值范围为:1<=p<rack内节点数。
d:每个主分片的备份数量,取值为0,1或2。默认值为1。
pattern:描述分片备份规则的模板。1为rack高可用,2为节点高可用。默认为 1。
创建数据的分布模式
1、修改在安装目录下 /opt/gcinstall/gcChangeInfo.xml 文件的 node 为一个 rack,修改后内容如下:
<?xml version="1.0" encoding="utf-8"?>
<servers>
<rack>
<node ip="192.168.20.143"/>
<node ip="192.168.20.142"/>
<node ip="192.168.20.144"/>
</rack>
</servers>
2、在安装目录下执行设置
gcadmin distribution gcChangeInfo.xml p 2 d 1 pattern 1
创建分布信息,每个节点存放2个主分片,每个分片有1个备份,rack高可用。
3、再次查看集群
出现了 DistributionId 列
[gbase@gbase01 gcinstall]$ gcadmin
CLUSTER STATE: ACTIVE
VIRTUAL CLUSTER MODE: NORMAL
======================================
| GBASE GCWARE CLUSTER INFORMATION |
======================================
| NodeName | IpAddress | gcware |
--------------------------------------
| gcware1 | 192.168.20.142 | OPEN |
--------------------------------------
| gcware2 | 192.168.20.143 | OPEN |
--------------------------------------
| gcware3 | 192.168.20.144 | OPEN |
--------------------------------------
========================================================
| GBASE COORDINATOR CLUSTER INFORMATION |
========================================================
| NodeName | IpAddress | gcluster | DataState |
--------------------------------------------------------
| coordinator1 | 192.168.20.142 | OPEN | 0 |
--------------------------------------------------------
| coordinator2 | 192.168.20.143 | OPEN | 0 |
--------------------------------------------------------
| coordinator3 | 192.168.20.144 | OPEN | 0 |
--------------------------------------------------------
=========================================================================================================
| GBASE DATA CLUSTER INFORMATION |
=========================================================================================================
| NodeName | IpAddress | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
| node1 | 192.168.20.143 | 1 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
| node2 | 192.168.20.142 | 1 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
| node3 | 192.168.20.144 | 1 | OPEN | OPEN | 0 |
---------------------------------------------------------------------------------------------------------
查看分布信息 gcadmin showdistribution node:
[gbase@gbase01 gcinstall]$ gcadmin showdistribution node
Distribution ID: 1 | State: new | Total segment num: 6
====================================================================================================================================
| nodes | 192.168.20.143 | 192.168.20.142 | 192.168.20.144 |
------------------------------------------------------------------------------------------------------------------------------------
| primary | 1 | 2 | 3 |
| segments | 4 | 5 | 6 |
------------------------------------------------------------------------------------------------------------------------------------
|duplicate | 3 | 1 | 2 |
|segments 1| 5 | 6 | 4 |
====================================================================================================================================
数据库初始化以后可以在库中直接查询
或者是在数据库中查询:
gbase> show nodes;
+------------+----------------+-------+--------------+----------------+--------+-----------+
| Id | ip | name | primary part | duplicate part | status | datastate |
+------------+----------------+-------+--------------+----------------+--------+-----------+
| 2400495808 | 192.168.20.143 | node1 | n1,n4 | n3,n5 | online | 0 |
| 2383718592 | 192.168.20.142 | node2 | n2,n5 | n1,n6 | online | 0 |
| 2417273024 | 192.168.20.144 | node3 | n3,n6 | n2,n4 | online | 0 |
+------------+----------------+-------+--------------+----------------+--------+-----------+
3 rows in set (Elapsed: 00:00:00.00)
或者查询张表:
select * from information_schema.CLUSTER_TABLE_SEGMENTS a where table_schema='mydb' and table_name='t1';
数据库初始化
在管理节点使用 gccli -u root -p 登录数据库,执行初始化命令 initnodedatamap ,root默认密码为空
[gbase@gbase01 gcinstall]$ gccli -u root -p
Enter password:
GBase client Free Edition 9.5.3.28.12509af27. Copyright (c) 2004-2024, GBase. All Rights Reserved.
gbase> initnodedatamap;
Query OK, 1 row affected (Elapsed: 00:00:00.44)
gbase> exit
Bye
数据库安装完成
使用 GBase 8a
连接
gbase -D gbase -h 192.168.20.142 -u root -P 5258
gbase -Dmydb -hgbase01 -umyuser -pMy@2024 -P 5258
创建用户、数据库
create user myuser identified by 'My@2024';
create database mydb;
grant all on mydb.* to myuser;
show grants for myuser;
gbase -Dmydb -hgbase01 -umyuser -pMy@2024 -P 5258
create table t1 (id int(3), name varchar(20));
show create table t1;
增删改查
gbase> create database test;
Query OK, 1 row affected (Elapsed: 00:00:00.06)
gbase> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| performance_schema |
| gbase |
| gctmpdb |
| gclusterdb |
| test |
+--------------------+
6 rows in set (Elapsed: 00:00:00.01)
gbase> use test;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)
gbase> create table t1(id int, name varchar(20));
Query OK, 0 rows affected (Elapsed: 00:00:00.09)
gbase> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1 |
+----------------+
1 row in set (Elapsed: 00:00:00.00)
gbase> show create table t1;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| t1 | CREATE TABLE "t1" (
"id" int(11) DEFAULT NULL,
"name" varchar(20) DEFAULT NULL
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace' |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (Elapsed: 00:00:00.00)
gbase> insert into t1(id,name) values(1,'moshengming');
Query OK, 1 row affected (Elapsed: 00:00:00.09)
gbase> insert into t1(id,name) values(2,'luting');
Query OK, 1 row affected (Elapsed: 00:00:00.08)
gbase> insert into t1(id,name) values(3,'maoxxxxxx');
Query OK, 1 row affected (Elapsed: 00:00:00.09)
gbase> select * from t1;
+------+-------------+
| id | name |
+------+-------------+
| 1 | moshengming |
| 2 | luting |
| 3 | maoxxxxxx |
+------+-------------+
3 rows in set (Elapsed: 00:00:00.05)
gbase> delete from t1 where id = 3;
Query OK, 1 row affected (Elapsed: 00:00:00.09)
gbase> select * from t1;
+------+-------------+
| id | name |
+------+-------------+
| 1 | moshengming |
| 2 | luting |
+------+-------------+
2 rows in set (Elapsed: 00:00:00.03)
gbase> update t1 set name = 'lutinger' where id = 2;
Query OK, 1 row affected (Elapsed: 00:00:00.07)
Rows matched: 1 Changed: 1 Warnings: 0
gbase> select * from t1;
+------+-------------+
| id | name |
+------+-------------+
| 1 | moshengming |
| 2 | lutinger |
+------+-------------+
2 rows in set (Elapsed: 00:00:00.03)
gbase> truncate table t1;
Query OK, 2 rows affected (Elapsed: 00:00:00.09)
gbase> select * from t1;
Empty set (Elapsed: 00:00:00.02)
gbase> drop table t1;
Query OK, 0 rows affected (Elapsed: 00:00:00.07)
gbase> show tables;
Empty set (Elapsed: 00:00:00.00)
gbase>
集群启停
gcluster 和 gcware 都是可以执行启动、停止和查看运行状态的
在系统关闭或者崩溃的时候,需要启动集群。
在安装gcware的节点启动 gcware:gcware_services all start
在所有节点执行启动集群:gcluster_services all start
同理,停止和查看集群可以使用
gcluster_services all stop 和 gcluster_services all info
查看集群状态
#命令
gcluster_services all <start|stop [--force]|restart [--force]|info>
gcware_services all <start|stop [--force]|restart [--force]|info>
gcware_services all start
gcluster_services all start
gcadmin
###########
clush -w gbase0[1-3] "gcware_services all start"
clush -w gbase0[1-3] "gcluster_services all start"
clush -w gbase0[1-3] "gcadmin"
用户修改密码
set password for gbase = password('Gbase12345');
使用DBeaver连接
创建驱动
名称 | 值 |
---|---|
驱动名称 | Gbase8a(自己喜好填写) |
驱动类型 | Generic |
类名 | com.gbase.jdbc.Driver |
URL模板 | jdbc:gbase://{host}:{port}/{database} |
默认端口 | 5258 |
默认数据库 | gbase(根据实际填写) |
默认用户 | gbase(根据实际填写) |
在库文件处添加Gbase 8a的驱动就好了
然后创建连接,使用这个驱动填写相关的地址和数据库,用户密码,就可以使用了。
地址填写Gcluster的其中一个就行,当然,多的话可以做负载均衡。
查询数据库大小
通过元数据查询mydb的大小,和mydb.t1的大小。
select table_schema,table_data_size,table_storage_size from information_schema.cluster_tables a where table_schema='mydb';
select table_name,table_data_size,table_storage_size from information_schema.cluster_tables a where table_schema='mydb' and table_name='t1';
数据导出与加载
导出与加载示例,逗号为分隔符
select * from mydb.test1;
select * from mydb.test1 into outfile '/home/gbase/file/outfile01.txt' FIELDS TERMINATED BY ',' FIELDS ENCLOSED BY '"';
create table mydb.test2 like mydb.test1;
load data infile 'file://192.168.20.142/home/gbase/file/outfile01.txt/outfile01.txt'
into table mydb.test2 FIELDS TERMINATED BY ',' FIELDS ENCLOSED BY '"' lines TERMINATED BY '\n';
select * from mydb.test2;
数据库的备份与恢复
首先查看有没有pexpect
python -c "import pexpect" && echo "pexpect is installed" || echo "pexpect is not installed"
安装 Python pexpect,使用pip或者yum任意一种方式安装即可
# 使用 pip 安装
clush -w gbase0[1-3] "wget https://bootstrap.pypa.io/pip/2.7/get-pip.py"
clush -w gbase0[1-3] "python /root/get-pip.py"
clush -w gbase0[1-3] "pip install pexpect"
# 使用 yum 安装
clush -w gbase0[1-3] yum install pexpect -y
使用备份恢复,输入gcrcman.py -V命令不抛出任何错误则表示可用。
# 查看工具的版本与常用命令
gcrcman.py -V
gcrcman.py --help
# 创建一个备份目录 /home/gbase/backup 在所有管理节点创建
clush -w gbase0[1-3] "mkdir /home/gbase/gbasedatabackup"
gcrcman.py -d /home/gbase/gbasedatabackup -P Gbase@2024 -p Gbase@2024
# 查看备份信息,备份mydb,恢复mydb,恢复的时候数据库不能存在,需要删除。
# backup database vc00001.mydb level 0
show backup
backup database mydb level 0
show backup
recover database mydb
使用gbasedump
gbasedump -h gbase01 -P 5258 -u gbase -p mydb > backup_mydb2.sql
集群卸载
停止所有服务,在所有节点执行停止命令
gcluster_services all stop
停止 gcware 服务,在安装了 gcaware 服务的节点上执行
gcware_services all stop
在主节点上执行卸载命令
cd /opt/gcinstall
./unInstall.py --silent=demo.options