Skip to content

GaussDB 集群管理命令

集群状态管理命令

1. gs_ctl

gs_ctl 是 GaussDB 集群状态管理的核心工具,用于启动、停止、重启数据库实例,以及查看数据库状态等。

  • 启动数据库实例

    bash
    # 启动单个数据库实例
    gs_ctl start -D /data/gaussdb
    
    # 启动所有数据库实例(在主节点执行)
    gs_ctl start -D /data/gaussdb -a
  • 停止数据库实例

    bash
    # 正常停止数据库实例
    gs_ctl stop -D /data/gaussdb
    
    # 强制停止数据库实例
    gs_ctl stop -D /data/gaussdb -m fast
    
    # 立即停止数据库实例
    gs_ctl stop -D /data/gaussdb -m immediate
  • 重启数据库实例

    bash
    # 重启数据库实例
    gs_ctl restart -D /data/gaussdb
  • 查看数据库状态

    bash
    # 查看数据库状态
    gs_ctl status -D /data/gaussdb
    
    # 查看详细状态信息
    gs_ctl status -D /data/gaussdb -v

2. gs_om

gs_om 是 GaussDB 集群管理工具,用于管理集群节点、查看集群状态、执行集群级操作等。

  • 查看集群状态

    bash
    # 查看集群状态
    gs_om -t status
    
    # 查看详细集群状态
    gs_om -t status --detail
    
    # 查看集群静态配置
    gs_om -t config
  • 集群节点管理

    bash
    # 查看节点信息
    gs_om -t view
    
    # 添加节点
    gs_om -t add_node -h new_node_ip
    
    # 删除节点
    gs_om -t delete_node -n node_name
  • 集群服务管理

    bash
    # 启动集群所有服务
    gs_om -t start
    
    # 停止集群所有服务
    gs_om -t stop
    
    # 重启集群所有服务
    gs_om -t restart

集群健康检查命令

1. gs_check

gs_check 是 GaussDB 集群健康检查工具,用于检查集群的健康状态、配置一致性、性能状况等。

  • 执行完整健康检查

    bash
    # 执行所有检查项
    gs_check -i all
    
    # 执行特定检查项
    gs_check -i cpu,memory,disk
    
    # 在指定节点执行检查
    gs_check -i all -h host1,host2
  • 生成检查报告

    bash
    # 生成 HTML 格式报告
    gs_check -i all --html
    
    # 生成报告并保存到指定目录
    gs_check -i all --output=/tmp/check_report

2. gs_collector

gs_collector 是 GaussDB 集群诊断信息收集工具,用于收集集群的诊断信息,包括日志、配置文件、系统信息等。

  • 收集诊断信息
    bash
    # 收集所有节点的诊断信息
    gs_collector --output=/tmp/gaussdb_diagnostic
    
    # 收集指定节点的诊断信息
    gs_collector --output=/tmp/gaussdb_diagnostic -h host1,host2
    
    # 收集特定类型的诊断信息
    gs_collector --output=/tmp/gaussdb_diagnostic --collect-type=log,config

集群配置管理命令

1. gs_guc

gs_guc 是 GaussDB 配置管理工具,用于修改数据库配置参数、查看配置参数等。

  • 查看配置参数

    bash
    # 查看所有配置参数
    gs_guc show -D /data/gaussdb
    
    # 查看特定配置参数
    gs_guc show -D /data/gaussdb -c "shared_buffers"
    
    # 查看配置文件中的参数
    gs_guc check -D /data/gaussdb -c "shared_buffers"
  • 修改配置参数

    bash
    # 修改配置文件中的参数
    gs_guc set -D /data/gaussdb -c "shared_buffers=128GB"
    
    # 在线修改参数(无需重启)
    gs_guc reload -D /data/gaussdb -c "max_connections=2000"
    
    # 在所有节点上修改参数
    gs_guc set -I all -c "shared_buffers=128GB"

2. gs_profile

gs_profile 是 GaussDB 性能配置工具,用于生成性能优化建议、查看性能配置等。

  • 生成性能优化建议
    bash
    # 生成性能优化建议
    gs_profile --profile-type=performance
    
    # 生成内存优化建议
    gs_profile --profile-type=memory
    
    # 生成 IO 优化建议
    gs_profile --profile-type=io

集群备份恢复命令

1. gs_probackup

gs_probackup 是 GaussDB 备份恢复工具,用于备份和恢复数据库实例。

  • 创建备份

    bash
    # 创建完整备份
    gs_probackup backup -B /data/backup -D /data/gaussdb -b full
    
    # 创建增量备份
    gs_probackup backup -B /data/backup -D /data/gaussdb -b incremental
    
    # 创建差异备份
    gs_probackup backup -B /data/backup -D /data/gaussdb -b differential
  • 查看备份列表

    bash
    # 查看备份列表
    gs_probackup show -B /data/backup
    
    # 查看备份详细信息
    gs_probackup show -B /data/backup -i backup_id
  • 恢复数据库

    bash
    # 恢复数据库到指定备份
    gs_probackup restore -B /data/backup -D /data/gaussdb -i backup_id
    
    # 恢复数据库到指定时间点
    gs_probackup restore -B /data/backup -D /data/gaussdb -i backup_id --recovery-target-time="2023-10-01 14:30:00"

2. gs_restore

gs_restore 是 GaussDB 数据恢复工具,用于从逻辑备份中恢复数据。

  • 恢复数据库
    bash
    # 从备份文件恢复数据库
    gs_restore -d dbname backup_file.dmp
    
    # 仅恢复特定表
    gs_restore -d dbname backup_file.dmp -t table_name
    
    # 仅恢复特定模式
    gs_restore -d dbname backup_file.dmp -n schema_name

集群扩展命令

1. gs_expansion

gs_expansion 是 GaussDB 集群扩展工具,用于扩展集群节点、扩容存储等。

  • 扩展集群节点

    bash
    # 扩展数据节点
    gs_expansion -t add_node -c expansion_config.xml
    
    # 扩展协调节点
    gs_expansion -t add_coordinator -c expansion_config.xml
  • 扩容存储

    bash
    # 扩容表空间
    gs_expansion -t extend_tablespace -c expansion_config.xml
    
    # 扩容存储池
    gs_expansion -t extend_storage_pool -c expansion_config.xml

集群安全管理命令

1. gs_encrypt

gs_encrypt 是 GaussDB 加密工具,用于加密敏感信息,如密码等。

  • 加密密码
    bash
    # 加密密码
    gs_encrypt --plaintext "password" --key "encryption_key"
    
    # 使用环境变量指定密钥
    export GAUSSDB_ENCRYPT_KEY="encryption_key"
    gs_encrypt --plaintext "password"

2. gs_cryptokey

gs_cryptokey 是 GaussDB 密钥管理工具,用于管理数据库加密密钥。

  • 生成加密密钥

    bash
    # 生成主密钥
    gs_cryptokey --action=generate --type=master
    
    # 生成表空间密钥
    gs_cryptokey --action=generate --type=tablespace --tablespace=tbs_name
  • 备份加密密钥

    bash
    # 备份主密钥
    gs_cryptokey --action=backup --type=master --output=/tmp/master_key.bak
    
    # 恢复主密钥
    gs_cryptokey --action=restore --type=master --input=/tmp/master_key.bak

常见操作示例

1. 集群启动流程

bash
# 1. 检查集群状态
gs_om -t status

# 2. 启动集群
gs_om -t start

# 3. 验证集群状态
gs_om -t status --detail

# 4. 连接数据库验证
gsql -d postgres -p 5432 -U gaussdb

2. 集群备份流程

bash
# 1. 检查备份目录
mkdir -p /data/backup
chown -R gaussdb:gaussdb /data/backup

# 2. 执行完整备份
gs_probackup backup -B /data/backup -D /data/gaussdb -b full

# 3. 验证备份
gs_probackup validate -B /data/backup -i backup_id

# 4. 查看备份列表
gs_probackup show -B /data/backup

3. 集群扩容流程

bash
# 1. 准备扩容配置文件
vim expansion_config.xml

# 2. 执行扩容操作
gs_expansion -t add_node -c expansion_config.xml

# 3. 验证扩容结果
gs_om -t status --detail

# 4. 测试新节点
gsql -d postgres -p 5432 -h new_node_ip -U gaussdb

注意事项

  • 权限要求:大部分集群管理命令需要以 gaussdb 用户或 root 用户执行
  • 路径正确性:确保指定的数据库目录、备份目录等路径正确
  • 备份验证:执行备份操作后,务必验证备份的完整性和可用性
  • 集群一致性:在修改集群配置或执行集群操作时,确保集群处于一致状态
  • 日志检查:执行重要操作后,检查数据库日志,确保操作成功完成

常见问题(FAQ)

Q1: 如何查看 GaussDB 集群的状态?

A1: 可以使用 gs_om -t status 命令查看集群状态,使用 gs_om -t status --detail 查看详细状态信息。

Q2: 如何启动 GaussDB 集群?

A2: 可以使用 gs_om -t start 命令启动整个集群,或使用 gs_ctl start -D /data/gaussdb 命令启动单个数据库实例。

Q3: 如何修改 GaussDB 配置参数?

A3: 可以使用 gs_guc set 命令修改配置文件中的参数,使用 gs_guc reload 命令在线修改参数(无需重启)。

Q4: 如何备份 GaussDB 集群?

A4: 可以使用 gs_probackup 工具进行物理备份,使用 gs_dump 工具进行逻辑备份。

Q5: 如何扩展 GaussDB 集群?

A5: 可以使用 gs_expansion 工具扩展集群节点或扩容存储,具体操作需要准备扩容配置文件,然后执行扩容命令。