数据库运维
记录DBA学习成长历程

第2章:GBase 8c V5 分布式集群版安装

文章目录

1 介绍

—1.1 安装流程

GBase 8c 是 GBASE公司(天津南大通用数据技术股份有限公司)自主研发的一款多模多态的企业级分布式数据库:支持行存、列存、内存等多种存储模式;支持单机、主备式、分布式等多种部署形态。
GBase 8c 具备高性能、高可用、弹性伸缩、高安全性等特性,可以部署在物理机、虚拟机、容器、私有云和公有云,为关键行业核心系统、互联网业务系统和政企业务系统提供安全、稳定、可靠的数据存储和管理服务。
本文讲解集群版安装部署步骤、卸载、连接测试。属于入门级别的实操课程。

—1.2 配置要求

—1.3 集群规划

2 环境准备

—2.1 节点软硬件配置

☆ 针对内存 4G 的节点,需要增加 8G SWAP 才能安装成功。具体步骤:

① 创建 8G 的 Swap 文件
# dd if=/dev/zero of=/etc/swapfile bs=1024 count=8192000
② 制作为 Swap 文件
# mkswap /etc/swapfile
③ 令 Swap 文件生效
# swapon /etc/swapfile
④ 查看当前SWAP
# swapon -s
文件名				类型		大小	已用	权限
/dev/dm-1                              	partition	1048572	59840	-2
/etc/swapfile                          	file	8191996	3148	-3
⑤ 自动挂载
编辑/etc/fstab,将以下行追加到文件末尾
/etc/swapfile swap swap defaults 0 0
⑥ 查看创建好的 SWAP,已经增长了 8G
# free -m
              total        used        free      shared  buff/cache   available
Mem:           3770        1660         117        1740        1992         138
Swap:          9023          61        8962

⑦提前检查下端口,避免安装的时候冲突。
------- 常用的默认端口 20001、2379、6666、5432、15432、20010等
netstat -ntlp

—2.2 集群服务配置(三个节点)

node1(10.0.0.15)  GHA Server(高可用服务)、DCS(分布式配置存储)、GTM主(全局事务管理),DN2备 
node2(10.0.0.16)  DCS、GTM备、CN1(协调器)、DN1主  
node3(10.0.0.17) DCS、CN2、DN2主

—2.3 确保集群每个节点的防火墙关闭

(1) 检查每个节点的防火墙状态
# systemctl status firewalld.service
如果系统提示以下信息说明防火墙已被禁用
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset:enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
(2) 如果防火墙没有关闭,则执行
# systemctl stop firewalld.service
# systemctl disable firewalld.service
以上两条命令关闭防火墙并禁止防火墙开机自启动。

—2.4 确保每个节点的 SELINUX 关闭

(1) 检查每个节点的 SELINUX 状态
# sestatus
如果系统提示以下信息说明 selinux 已被禁用
SELinux status: disabled
(2) 如果 SELINUX 没有关闭,需要编辑当前节点的 selinux 配置文件
# vi /etc/selinux/config
SELINUX=enforcing
将 SELINUX 关键字的值修改为 disabled,存盘退出,执行
# shutdown -r
重启操作系统。

—2.5 三个节点重新设置主机名

[root@gbase05 ~]# hostnamectl set-hostname gbase8c_1
[root@gbase06 ~]# hostnamectl set-hostname gbase8c_2
[root@gbase07 ~]# hostnamectl set-hostname gbase8c_3

—2.6 配置三个节点的 IP 主机名映射

编辑三个节点的 hosts 文件
# vi /etc/hosts
将以下三行信息追加到 hosts 文件中
10.0.0.15 gbase8c_1
10.0.0.16 gbase8c_2
10.0.0.17 gbase8c_3

—2.7 检查软件依赖

检查每个节点bison、flex、patch、bzip2 依赖是否安装:rpm -q bison flex patch bzip2

— 2.8 检查是否支持 rdtscp指令集

cat /proc/cpuinfo | grep rdtscp
• 显示以下信息,表示支持rdtscp指令集。

• 若不支持,请参考对应CPU型号官网资料,安装rdtscp指令集。

3 集群安装

—3.1 每个节点都要创建 DBA 用户

# useradd gbase
# passwd gbase

—3.2  添加gbase 用户至sudoer 列表

三个节点都要执行如下操作——
# visudo
打开 sudoer 配置文件,找到 “root ALL=(ALL) ALL” 行,在下方增加
“gbase ALL=(ALL) NOPASSWD:ALL”

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
gbase ALL=(ALL) NOPASSWD:ALL

完成 sudoer 配置后,数据库安装就可以用 gbase 用户了。本文使用的安装包是不能在 root 账户下安装的。

个别操作系统,经过以上的设置后,gbase 用户执行 sudo 命令时,第一次还是有密码提示。需要有以下补救措施:

(1) root 账户下进入 /etc/sudoers.d/ 目录
# cd /etc/sudoers.d/
(2) 生成新文件 gbase:
# vi gbase
添加如下信息后,存盘即可:
gbase ALL=(ALL) NOPASSWD:ALL

—3.3  配置gbase用户ssh互信

每个节点都要执行以下命令——
(1) 切换到 gbase 用户下
# su - gbase
(2) 创建秘钥目录和必要的授权
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
(3) 生成秘钥文件(连续回车即可)
$ ssh-keygen -t rsa
(4) 将公钥文件上传至其他节点即可实现免密登录:
此操作需输入 gbase 的密码,所有节点都要执行——
$ ssh-copy-id gbase@10.0.0.15
$ ssh-copy-id gbase@10.0.0.16
$ ssh-copy-id gbase@10.0.0.17
$ echo 'StrictHostKeyChecking no' >> ~/.ssh/config;
$ echo 'UserKnownHostsFile ~/.ssh/known_hosts' >> ~/.ssh/config;
$ chmod 644 ~/.ssh/config
不需要输入密码即可登录,表明配置互信成功。

—3.4 配置系统时间同步

(1) 检查所有服务器上 NTP 服务的状态:sudo systemctl status ntpd.service

(2) 主安装节点(10.0.0.15)作为 server执行# vim /etc/ntp.conf

打开 NTP 服务配置文件,修改如下:

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 10.0.0.15 nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

# Hosts on local network are less restricted.
restrict 10.0.0.255 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 127.127.1.0
Fudge 127.127.1.0 stratum 10

ntp.conf 文件存盘退出后,执行
$ sudo service ntpd start # 启动NTP服务
$ sudo chkconfig ntpd on # 设置 NTP 服务开机自启

(3) 修改数据节点一(10.0.0.16)NTP 配置
执行
# vi /etc/ntp.conf
打开 NTP 服务配置文件,修改如下:

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 10.0.0.16 nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

# Hosts on local network are less restricted.
restrict 10.0.0.255 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 10.0.0.15
Fudge 10.0.0.15 stratum 10

ntp.conf 文件存盘退出后,执行
$ sudo service ntpd start # 启动NTP服务
$ sudo chkconfig ntpd on # 设置 NTP 服务开机自启

(4) 修改数据节点二(10.0.0.17)NTP 配置
执行
# vi /etc/ntp.conf
打开 NTP 服务配置文件,修改如下:

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 10.0.0.17 nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

# Hosts on local network are less restricted.
restrict 10.0.0.255 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 10.0.0.15
Fudge 10.0.0.15 stratum 10

ntp.conf 文件存盘退出后,执行
$ sudo service ntpd start # 启动NTP服务
$ sudo chkconfig ntpd on # 设置 NTP 服务开机自启

—3.5 使用 SSH 工具上传安装包

(GBase8cV5_S3.0.0B78_centos7.8_x86_64.tar.gz)到主安装节点(10.0.0.15) /home/gbase/gbase_package 下

—3.6 解压安装包

$ cd /home/gbase/gbase_package
$ sudo tar xvf GBase8cV5_S3.0.0B78_centos7.8_x86_64.tar.gz
解压成功新增五个文件

GBase8cV5_S3.0.0B78_CentOS_x86_64_om.sha256
GBase8cV5_S3.0.0B78_CentOS_x86_64_om.tar.gz
GBase8cV5_S3.0.0B78_CentOS_x86_64_pgpool.tar.gz
GBase8cV5_S3.0.0B78_CentOS_x86_64.sha256
GBase8cV5_S3.0.0B78_CentOS_x86_64.tar.bz2

再次解压
$ sudo tar xvf GBase8cV5_S3.0.0B78_CentOS_x86_64_om.tar.gz

—3.7 开始安装

——3.7.1 编辑集群部署文件 gbase8c.yml

[root@gbase8c_1 ~]#chown -R gbase:gbase /home/gbase
[root@gbase8c_1 gbase_package]# chown -R gbase.gbase /tmp/gha_ctl/
[10.0.0.15]$ vim /home/gbase/gbase_package/gbase.yml

node1(10.0.0.15)  GHA Server(高可用服务)、DCS(分布式配置存储)、GTM主(全局事务管理),DN2备 
node2(10.0.0.16)  DCS、GTM备、CN1(协调器)、DN1主  
node3(10.0.0.17) DCS、CN2、DN2主  
=========================================================
gha_server:
  - gha_server1:
      host: 10.0.0.15
      port: 20001
dcs:
  - host: 10.0.0.15
    port: 2379
  - host: 10.0.0.16
    port: 2379
  - host: 10.0.0.17
    port: 2379
gtm:
  - gtm1:
      host: 10.0.0.15
      agent_host: 10.0.0.15
      role: primary
      port: 6666
      agent_port: 8001
      work_dir: /home/gbase/data/gtm/gtm1
  - gtm2:
      host: 100.0.0.16
      agent_host: 10.0.0.16
      role: standby
      port: 6666
      agent_port: 8002
      work_dir: /home/gbase/data/gtm/gtm2
coordinator:
  - cn1:
      host: 10.0.0.16
      agent_host: 10.0.0.16
      role: primary
      port: 5432
      agent_port: 8003
      work_dir: /home/gbase/data/coord/cn1
  - cn2:
      host: 100.0.0.17
      agent_host: 10.0.0.17
      role: primary
      port: 5432
      agent_port: 8004
      work_dir: /home/gbase/data/coord/cn2
datanode:
  - dn1:
      - dn1_1:
          host: 10.0.0.16
          agent_host: 10.0.0.16
          role: primary
          port: 15432
          agent_port: 8005
          work_dir: /home/gbase/data/dn1/dn1_1
#      - dn1_2:
#          host: 100.0.1.18
#          agent_host: 10.0.1.18
#          role: standby
#          port: 15433
#          agent_port: 8006
#          work_dir: /home/gbase/data/dn1/dn1_2
#      - dn1_3:
#          host: 100.0.1.16
#          agent_host: 10.0.1.16
#          role: standby
#          port: 15433
#          agent_port: 8006
#          work_dir: /home/gbase/data/dn1/dn1_3
  - dn2:
      - dn2_1:
          host: 10.0.0.17
          agent_host: 10.0.0.17
          role: primary
          port: 20010
          agent_port: 8007
          work_dir: /home/gbase/data/dn2/dn2_1
          # numa:
          #   cpu_node_bind: 0,1
          #   mem_node_bind: 0,1
      - dn2_2:
          host: 10.0.0.15
          agent_host: 10.0.0.15
          role: standby
          port: 20010
          agent_port: 8008
          work_dir: /home/gbase/data/dn2/dn2_2
          # numa:
          #   cpu_node_bind: 2
          #   mem_node_bind: 2
#      - dn2_3:
#          host: 100.0.1.17
#          agent_host: 10.0.1.17
#          role: standby
#          port: 20010
#          agent_port: 8009
#          work_dir: /home/gbase/data/dn2/dn2_3
          # numa:
          #   cpu_node_bind: 3
          #   mem_node_bind: 3
env:
  # cluster_type allowed values: multiple-nodes, single-inst, default is multiple-nodes
  cluster_type: multiple-nodes
  pkg_path: /home/gbase/gbase_package
  prefix: /home/gbase/gbase_db
  version: V5_S3.0.0B78
  user: gbase
  port: 22
# constant:
#   virtual_ip: 100.0.1.254/24

——3.7.2 执行安装脚本

[10.0.0.15]$ cd /home/gbase/gbase_package/script
[10.0.0.15]$ ./gha_ctl install -c gbase -p /home/gbase/gbase_package
首次安装时,环境变量尚未配置,需进入 script 目录执行 gha_ctl 命令。

A. -c 参数:数据库名称,缺省 gbase;
B. -p 参数:配置文件路径,缺省 /home/gbase。

执行时间 3+ 分钟,安装结束后,脚本会提示

{
    "ret":0,
    "msg":"Success"
}

集群安装成功!

 异常处理
在没有安装开发组件的操作系统上,执行安装脚本可能出现以下现象:

{
    "ret":-1,
    "msg":"Host localhost install or upgrade dependency {'libaio': None} failed!  Host 172.168.10.227 install or upgrade dependency {'libaio': None} failed!  Host 172.168.10.108 install or upgrade dependency {'libaio': None} failed!  "
}

——解决:
在集群所有节点安装 libaio 组件
[10.0.0.15]# yum -y install libaio
[10.0.0.16]# yum -y install libaio
[10.0.0.17]# yum -y install libaio

——3.7.3 节点状态检查

在主安装节点上执行
[10.0.0.15]$ exit
[10.0.0.15]# su - gbase
以上两个命令是保证环境变量生效

gha_ctl monitor all/datanode/coordinator/gtm/dcs [-H] -l dcslist
-H 表示输出以表格形式显示。
-l 指定管理该集群的dcs信息。
dcslist 格式为http://host:2379

[10.0.0.15]$ gha_ctl monitor -l http://10.0.0.15:2379
结果如下,说明集群安装正常,数据服务启动中

[gbase@gbase8c_1 script]$ gha_ctl monitor -l http://10.0.0.15:2379
{
    "cluster": "gbase",
    "version": "V5_S3.0.0B78",
    "server": [
        {
            "name": "gha_server1",
            "host": "10.0.0.15",
            "port": "20001",
            "state": "running",
            "isLeader": true
        }
    ],
    "gtm": [
        {
            "name": "gtm1",
            "host": "10.0.0.15",
            "port": "6666",
            "workDir": "/home/gbase/data/gtm/gtm1",
            "agentPort": "8001",
            "state": "running",
            "role": "primary",
            "agentHost": "10.0.0.15"
        },
        {
            "name": "gtm2",
            "host": "10.0.0.16",
            "port": "6666",
            "workDir": "/home/gbase/data/gtm/gtm2",
            "agentPort": "8002",
            "state": "running",
            "role": "standby",
            "agentHost": "10.0.0.16"
        }
    ],
    "coordinator": [
        {
            "name": "cn1",
            "host": "10.0.0.16",
            "port": "5432",
            "workDir": "/home/gbase/data/coord/cn1",
            "agentPort": "8003",
            "state": "running",
            "role": "primary",
            "agentHost": "10.0.0.16"
        },
        {
            "name": "cn2",
            "host": "10.0.0.17",
            "port": "5432",
            "workDir": "/home/gbase/data/coord/cn2",
            "agentPort": "8004",
            "state": "running",
            "role": "primary",
            "agentHost": "10.0.0.17",
            "central": true
        }
    ],
    "datanode": {
        "dn1": [
            {
                "name": "dn1_1",
                "host": "10.0.0.16",
                "port": "15432",
                "workDir": "/home/gbase/data/dn1/dn1_1",
                "agentPort": "8005",
                "state": "running",
                "role": "primary",
                "agentHost": "10.0.0.16"
            }
        ],
        "dn2": [
            {
                "name": "dn2_1",
                "host": "10.0.0.17",
                "port": "20010",
                "workDir": "/home/gbase/data/dn2/dn2_1",
                "agentPort": "8007",
                "state": "running",
                "role": "standby",
                "agentHost": "10.0.0.17"
            },
            {
                "name": "dn2_2",
                "host": "10.0.0.15",
                "port": "20010",
                "workDir": "/home/gbase/data/dn2/dn2_2",
                "agentPort": "8008",
                "state": "running",
                "role": "primary",
                "agentHost": "10.0.0.15"
            }
        ]
    },
    "dcs": {
        "clusterState": "healthy",
        "members": [
            {
                "url": "http://10.0.0.15:2379",
                "id": "4e84a5750f19d6e8",
                "name": "node_2",
                "isLeader": true,
                "state": "healthy"
            },
            {
                "url": "http://10.0.0.17:2379",
                "id": "54f0e7837cf89bc8",
                "name": "node_1",
                "isLeader": false,
                "state": "healthy"
            },
            {
                "url": "http://10.0.0.16:2379",
                "id": "b125d8f9d189f035",
                "name": "node_0",
                "isLeader": false,
                "state": "healthy"
            }
        ]
    }
}

也可以执行
[10.0.0.15]$ gha_ctl monitor -l http://10.0.0.15:2379 -H

4 数据库启停

停止数据库服务
[10.0.0.15]$ gha_ctl stop all -l http://10.0.0.15:2379
启动数据库服务
[10.0.0.15]$ gha_ctl start all -l http://10.0.0.15:2379

5 卸载

(1) 在部署机上(通常为 GTM 主节点10.0.0.15),执行 gha_ctl uninstall 命令卸载集群
语法格式:
gha_ctl uninstall -l dcslist [-c cluster]
-l 指定管理该集群的dcs信息,dcslist 格式为http://host:2379
[-c cluster]表示集群名称,为可选字段,缺省默认值gbase;
$ cd /home/gbase/gbase_package/script/
a 停止所有节点的集群服务
$ gha_ctl stop all -l http://10.0.0.15:2379

(2) 卸载DCS集群,执行 gha_ctl destroy dcs 命令。参数同上。
语法格式:
gha_ctl destroy dcs -l dcslist [-c cluster]

$ gha_ctl uninstall -l http://10.0.0.15:2379
$ cd /home/gbase/gbase_package/script
$ ./gha_ctl destroy dcs -l http://10.0.0.15:2379

6 连接和 SQL 测试

在cn节点执行

$ gsql -d postgres -p 5432 
出现 postgres=# 操作符说明客户端工具 gsql 成功连接 8c 数据库
postgres=# create database testdb;
CREATE DATABASE
postgres=# create table student(ID int, Name varchar(10));
CREATE TABLE
postgres=# insert into student values(1, 'Mike'),(2,'John');
INSERT 0 2
postgres=# select * from student;
id | name
----±-----
1 | Mike
2 | John
(2 rows)

7 常见问题

—7.1 NTP服务未处于正常运行状态

解决方法:

• 若系统可以与外网通信(能ping通),执行命令与NTP服务器同步:sudo ntpdate asia.pool.ntp.org • 如果服务器所在网络无法与外网通信(无法ping通),需要检查是否已安装NTP服务。
# 确认是否已安装ntp:
[gbase@gbase8c ~]$ rpm -qa|grep ntp

#--若已安装ntp应返回如下内容:
ntp-4.2.6p5-29.el7.centos.x86_64
ntpdate-4.2.6p5-29.el7.centos.x86_64
#--若没有ntp显示,则应删除原有ntpdate后重新安装ntp:
[gbase@gbase8c ~]$ sudo yum -y remove ntpdate-4.2.6p5-29.el7.centos.x86_64 [gbase@gbase8c ~]$ sudo yum -y install ntp

—7.2 安装数据库时报错显示错误码:80000201:Run cmd failed:%s

解决方法:

• 配置 gbase 用户权限,将 gbase 用户添加至 sudoer 列表
• 以 gbase 用户身份,配置各节点间互信免密。注意 密码也需上传至本节点。

—7.3 安装过程中,报错显示80000301:Transport endpoint unreach

解决方法:

• 在备机 /etc/resolv.conf 配置文件中注释掉如下内容(红框标注),取消备机 resolv 配置,
恢复主备间时延,重新执行安装

—7.4 缺失依赖文件

安装过程中提示:无法exec:没有那个文件或目录
安装过程中提示:/home/gbase/script/../venv/bin/python3: 没有那个文件或目录 ……

解决方法
根据提示,安装依赖文件。例如:yum -y install bzip2

—7.5 系统参数问题

安装过程中可能报错显示“check install env and os setting On systemwide basis, the maximum number of SEMMNI is not correct. the current SEMMNI value is: 128. Please check it.……”

解决方法:

执行 sudo vim /etc/sysctl.conf,配置系统内核参数(红框标注,根据机器稍作修改),避免信号量 不足无法初始化。

按键“:wq!”保存并退出。并执行 sysctl -p 命令使其生效。

—7.6 安装报错:Failed to start instance. Error: Please check the gs_ctl log for failure details.

【**解决思路**】

1、sysctl kernel.shmmax 配置过小,需要修改
vi /etc/sysctl.conf
添加一行:
kernel.shmmax = 18446744073692774399
sysctl -p 生效

2、没有 lsof 命令(建议添加到软件依赖中)
yum install -y lsof

3、集群卸载后进程还在,端口占用
重启机器解决(不知是否有更好办法)

—7.7 安装:Failed to initialize instance

解决思路】仔细检查 gbase.yml 文件。

注意:一定要注意 yml 文件格式!!两个空格为一个缩进。

YML 在线编辑(校验)器:https://www.bejson.com/validators/yaml_editor/

—7.8 安装:两个节点成功,一个节点失败

解决思路】检查互信操作是否配置成功。

—7.9 安装:端口被占用

解决思路】看看是否已被占用,例如使用命令:lsof -i:端口号

—7.10 安装: "The content of file /home/gbase/version.cfg is not correct

解决思路】删掉再重新解压

—7.11 安装:包的版本号和 gbase.yml 的 version 不一致

解决思路】修改 gbase.yml 中的 version 和版本包的版本号一致

—7.12 80000201 Resource:gbase already in use

【解决思路】有残留信息,没有卸载成功。
在主节点(10.168.10.70)执行以下命令——
1、停止所有节点的集群服务
$ gha_ctl stop all -l http://10.168.10.70:2379

2、集群程序的卸载:
$ gha_ctl uninstall -l http://10.168.10.70:2379

3、移除 dcs 集群:
$ cd /home/gbase/script
$ ./gha_ctl destroy dcs -l http://10.168.10.70:2379

—7.13 安装:80000107 Resource:gbase already in use

解决思路】有残留信息,没有卸载成功。

在主节点(10.168.10.70)执行以下命令——

1、停止所有节点的集群服务

$ gha_ctl stop all -l http://10.168.10.70:2379

2、集群程序的卸载:

$ gha_ctl uninstall -l http://10.168.10.70:2379

3、移除 dcs 集群:

$ cd /home/gbase/script

$ ./gha_ctl destroy dcs -l http://10.168.10.70:2379

—7.14 安装:80000116 Rpc request failed:Coordinator cnl start failed'

解决思路】内存不够,free -m 查看内存可用空间。

查看数据库运行日志,可能是由于存在磁盘不足,导致数据库无法启动。在这种情况下清理磁盘空间后,再次重启解决问题。

建议业务与数据库分盘部署,以防业务盘撑爆导致数据库无法启动。

—7.15 安装:80000116 Rpc request failed:Rpc request failed:Start pg failed

【解决思路】
内存不够,free -m 查看内存可用空间。
查看数据库运行日志,可能是由于存在磁盘不足,导致数据库无法启动。在这种情况下清理磁盘空间后,再次重启解决问题。
建议业务与数据库分盘部署,以防业务盘撑爆导致数据库无法启动

—7.16 安装:80000116 Rpc request failed:Can not find gtm master, prestart all nodes failed

【解决思路】内存不够,free -m 查看内存可用空间。

查看数据库运行日志,可能是由于存在磁盘不足,导致数据库无法启动。在这种情况下清理磁盘空间后,再次重启解决问题。建议业务与数据库分盘部署,以防业务盘撑爆导致数据库无法启动。

—7.17 安装:su - gbase bash: /home/gbase/.bash profile: 权限不够

【解决思路】

用 root 用户执行 chown -R gbase:gbase /home/gbase

—7.18 安装:su gbase 后,home/gbase/.bashrc:权限不够

【解决思路】要用 su - gbase 切换用户。

小贴士:su gbase 和 su - gbase 这两命令的效果:

如果加入了 符号“- ”参数,那么是一种 login-shell 的方式,意思是说切换到另一个用户 <user_name> 之后,当前的 shell 会加载 <user_name> 对应的环境变量和各种设置;相反,如果没有加符号“-”参数,那么是一种 non-login-shell 的方式,意思是说我现在切换到了 <user_name>,但是当前的 shell 还是加载切换之前的那个用户的环境变量以及各种设置。

—7.19 安装:The current 0S rhel is not supported.

【解决思路】 在 package.info 中 修改名字

—7.20 执行 bash: gsql: 未找到命令

解决思路

export GPHOME=/home/gbase/安装目录 >> ~/.bashrc

export PATH=$GPHOME/script:$PATH >> ~/.bashrc

source ~/.bashrc

—7.21 执行:Failed to connect /home/gbase/gbase_db/tmp:5432

问题描述:GTM 主节点上执行 gslq 连接报错。在另外 cn1 和 cn2 上就可以正常连接。

【解决思路】

连接命令格式如下:

gsql -d dbname -p port <-U user_name> <-h hostip>

-d 参数指定要连接到的数据库名称。首次连接可以指定生成的默认数据库 postgres。

-p 参数指定通过节点哪个端口号连接。可查看安装使用的 yml 文件。

-U 参数指定以哪个数据库用户身份连接,权限可能不同。缺省默认为 gbase。

-h 参数指定数据库节点所在的服务器 IP。缺省默认为当前服务器 IP非 cn 节点,要指定 ip

gsql -d postgres -p 5432 -U gbase -h 172.30.2.28

—7.22 执行:ERROR: Installation node group is not defined in current cluster

解决思路

这个我这是因为 visudo 的配置配错了

操作要求:打开 sudoer 配置文件,找到 “

root ALL=(ALL) ALL” 行,在下方增加

“gbase ALL=(ALL) NOPASSWD:ALL”

错误做法:我直接 shift+G 在最后把下面这段复制进去了

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

gbase ALL=(ALL) NOPASSWD:ALL

赞(0)
MySQL学习笔记 » 第2章:GBase 8c V5 分布式集群版安装