Skip to content

GaussDB 分布式集群安装

安装前准备

  • 硬件规划
    • 确定节点数量和角色分配
    • 确保所有节点硬件满足要求
    • 配置高速网络连接
  • 操作系统准备
    • 所有节点安装相同版本的Linux操作系统
    • 配置网络、防火墙和SELinux
    • 安装必要的系统依赖
  • 软件包准备
    • 下载GaussDB分布式版本安装包
    • 验证安装包的完整性和合法性
  • 用户准备:在所有节点创建GaussDB运行用户和组
  • 目录准备:在所有节点创建安装目录、数据目录和日志目录
  • 免密登录配置:配置节点间的SSH免密登录

集群规划

  • 节点角色规划
    • 协调节点(CN):2个或更多,实现负载均衡和高可用性
    • 数据节点(DN):3个或更多,建议为奇数,支持数据分片和多副本
    • 全局元数据节点(GTM):1个主节点和1个或多个备节点
    • GTM代理(GTM Proxy):每个协调节点部署一个
  • 网络规划
    • 业务网络:用于客户端访问
    • 内部通信网络:用于节点间通信
    • 管理网络:用于集群管理
  • 存储规划
    • 数据存储:高性能存储设备
    • 日志存储:低延迟存储设备
    • 备份存储:大容量存储设备

安装流程

  • 环境检查:检查所有节点的环境是否满足要求
  • 解压安装包:在所有节点解压GaussDB安装包
  • 配置集群参数:编辑集群配置文件,指定节点角色和参数
  • 执行安装脚本:运行集群安装脚本,自动部署所有节点
  • 初始化集群:初始化分布式集群
  • 启动集群:启动GaussDB分布式集群
  • 验证集群:验证集群是否正常运行

详细安装步骤

  1. 配置免密登录
    bash
    # 在所有节点生成SSH密钥对
    ssh-keygen -t rsa
    # 将公钥分发到所有节点
    for host in node1 node2 node3; do
      ssh-copy-id -i ~/.ssh/id_rsa.pub gaussdb@$host
    done
  2. 创建安装目录和数据目录
    bash
    mkdir -p /opt/gaussdb /data/gaussdb
    chown -R gaussdb:gaussdb /opt/gaussdb /data/gaussdb
  3. 解压安装包
    bash
    tar -zxvf GaussDB-Distributed-xxx.tar.gz -C /opt/gaussdb
  4. 编辑集群配置文件
    yaml
    # cluster_config.xml
    <Cluster>
      <Name>gaussdb-cluster</Name>
      <NodeList>
        <Node Name="node1" HostName="node1" IP="192.168.1.101" DBPort="5432" />  
        <Node Name="node2" HostName="node2" IP="192.168.1.102" DBPort="5432" />  
        <Node Name="node3" HostName="node3" IP="192.168.1.103" DBPort="5432" />  
      </NodeList>
      <CNList>
        <CN Name="cn1" HostName="node1" IP="192.168.1.101" Port="25108" />  
        <CN Name="cn2" HostName="node2" IP="192.168.1.102" Port="25108" />  
      </CNList>
      <DNList>
        <DN Name="dn1" HostName="node1" IP="192.168.1.101" Port="25109" DataDir="/data/gaussdb/dn1" />  
        <DN Name="dn2" HostName="node2" IP="192.168.1.102" Port="25109" DataDir="/data/gaussdb/dn2" />  
        <DN Name="dn3" HostName="node3" IP="192.168.1.103" Port="25109" DataDir="/data/gaussdb/dn3" />  
      </DNList>
      <GTMList>
        <GTM Name="gtm" HostName="node1" IP="192.168.1.101" Port="25107" DataDir="/data/gaussdb/gtm" />  
        <GTM Name="gtm_standby" HostName="node2" IP="192.168.1.102" Port="25107" DataDir="/data/gaussdb/gtm_standby" />  
      </GTMList>
    </Cluster>
  5. 执行安装脚本
    bash
    cd /opt/gaussdb/scripts
    ./install_cluster.sh -c cluster_config.xml -w <数据库密>
  6. 初始化集群
    bash
    ./gs_initcluster -c cluster_config.xml -D /data/gaussdb -w <数据库密>
  7. 启动集群
    bash
    ./gs_ctl start -D /data/gaussdb
  8. 验证集群状态
    bash
    ./gs_om -t status

集群管理

  • 查看集群状态gs_om -t status
  • 启动集群gs_ctl start -D /data/gaussdb
  • 停止集群gs_ctl stop -D /data/gaussdb
  • 重启集群gs_ctl restart -D /data/gaussdb
  • 添加节点gs_expansion -t add_node -c new_node_config.xml
  • 删除节点gs_expansion -t remove_node -n node_name

安装验证

  • 集群状态验证:检查所有节点和服务是否正常运行
  • 连接验证:使用客户端工具连接集群,验证连接是否正常
  • 功能验证:执行分布式查询,验证集群功能是否正常
  • 性能验证:运行性能测试,验证集群性能
  • 故障转移验证:模拟节点故障,验证集群的高可用性

常见问题(FAQ)

Q1: 分布式集群最少需要多少个节点?

A1: 分布式集群最少需要3个节点,包括1个协调节点、1个数据节点和1个GTM节点。但实际生产环境中,建议部署更多节点以实现高可用性和负载均衡,例如2个协调节点、3个数据节点和2个GTM节点(1主1备)。

Q2: 如何配置节点间的SSH免密登录?

A2: 可以通过以下步骤配置SSH免密登录:

  1. 在所有节点生成SSH密钥对:ssh-keygen -t rsa
  2. 将公钥分发到所有节点:ssh-copy-id -i ~/.ssh/id_rsa.pub gaussdb@$host
  3. 验证免密登录:ssh gaussdb@node1

Q3: 安装过程中遇到节点间通信问题怎么办?

A3: 遇到节点间通信问题,可以检查以下几点:

  1. 确保所有节点的网络连接正常
  2. 检查防火墙配置,确保必要的端口开放
  3. 验证SSH免密登录是否配置正确
  4. 检查节点间的hosts文件配置
  5. 查看安装日志,定位具体错误信息

Q4: 如何扩展分布式集群?

A4: 可以使用GaussDB提供的扩展工具添加节点:

  1. 准备新节点,确保环境满足要求
  2. 编辑扩展配置文件,指定新节点的信息
  3. 执行扩展脚本:gs_expansion -t add_node -c expansion_config.xml
  4. 验证新节点是否成功加入集群

Q5: 如何备份和恢复分布式集群?

A5: 分布式集群的备份和恢复可以使用GaussDB提供的备份恢复工具:

  • 全量备份:gs_backup -t backup -p <port> -h <host> -D /data/backup
  • 增量备份:gs_backup -t incremental -p <port> -h <host> -D /data/backup -b /data/backup/full_backup
  • 恢复:gs_restore -t restore -p <port> -h <host> -D /data/gaussdb -b /data/backup/full_backup

分布式集群的备份恢复需要考虑所有节点的数据一致性,建议在集群空闲时执行备份操作。