本教程详细介绍GaussDB数据库的启动、关闭和状态检查操作,包括单机和集群环境下的各种操作方法和状态检查命令。风哥教程参考GaussDB官方文档,结合生产实战经验,为读者提供全面的操作指导。
目录大纲
Part01-基础概念与理论知识
1.1 启动关闭概述
GaussDB数据库的启动和关闭是日常运维中的基本操作,正确的操作方法可以确保数据库的安全和稳定运行。启动和关闭操作需要注意以下几点:
- 启动前确保环境配置正确
- 关闭前确保所有事务已提交
- 使用合适的启动和关闭模式
- 定期检查数据库状态
1.2 启动关闭模式
启动模式:
- 正常启动:默认启动模式,加载所有配置和数据
- 快速启动:跳过某些检查,加快启动速度
- 仅启动实例:不启动数据库,仅启动实例
关闭模式:
- 正常关闭(smart):等待所有事务完成后关闭
- 快速关闭(fast):回滚未完成的事务后关闭
- 立即关闭(immediate):立即终止所有进程,可能导致数据不一致
Part02-单机环境操作
2.1 单机启动
启动数据库前,确保数据目录权限正确,并且没有其他进程占用数据库端口。
正常启动:
# 切换到GaussDB用户
su – gauss
# 启动数据库
cd /gauss/app/bin
./pg_ctl start -D /gauss/fgdata
# 输出日志
waiting for server to start…. done
server started
指定端口启动:
# 指定端口启动
./pg_ctl start -D /gauss/fgdata -p 8000
# 输出日志
waiting for server to start…. done
server started
后台启动:
# 后台启动
./pg_ctl start -D /gauss/fgdata -l /gauss/log/gaussdb.log
# 输出日志
server starting
2.2 单机关闭
正常关闭:
# 正常关闭
./pg_ctl stop -D /gauss/fgdata
# 输出日志
waiting for server to shut down…. done
server stopped
快速关闭:
# 快速关闭
./pg_ctl stop -D /gauss/fgdata -m fast
# 输出日志
waiting for server to shut down…. done
server stopped
立即关闭:
# 立即关闭
./pg_ctl stop -D /gauss/fgdata -m immediate
# 输出日志
waiting for server to shut down…. done
server stopped
2.3 单机状态检查
检查数据库状态:
# 检查数据库状态
./pg_ctl status -D /gauss/fgdata
# 输出日志(运行中)
pg_ctl: server is running (PID: 12345)
/gauss/app/bin/postgres “-D” “/gauss/fgdata”
# 输出日志(未运行)
pg_ctl: server is not running
检查数据库进程:
# 检查数据库进程
ps -ef | grep postgres
# 输出日志
gauss 12345 1 0 10:00 ? 00:00:00 /gauss/app/bin/postgres -D /gauss/fgdata
gauss 12346 12345 0 10:00 ? 00:00:00 postgres: logger process
gauss 12347 12345 0 10:00 ? 00:00:00 postgres: checkpointer process
gauss 12348 12345 0 10:00 ? 00:00:00 postgres: writer process
gauss 12349 12345 0 10:00 ? 00:00:00 postgres: wal writer process
gauss 12350 12345 0 10:00 ? 00:00:00 postgres: autovacuum launcher process
gauss 12351 12345 0 10:00 ? 00:00:00 postgres: stats collector process
gauss 12352 12345 0 10:00 ? 00:00:00 postgres: bgworker: logical replication launcher
检查端口:
# 检查端口
netstat -tuln | grep 8000
# 输出日志
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN
tcp6 0 0 :::8000 :::* LISTEN
Part03-集群环境操作
3.1 集群启动
风哥提示:
启动集群:
# 在主节点启动集群
su – gauss
cd /gauss/app/bin
./pg_ctl start -D /gauss/fgdata
# 在备节点启动
su – gauss
cd /gauss/app/bin
学习交流加群风哥微信: itpux-com
./pg_ctl start -D /gauss/fgdata
使用集群管理工具启动:
# 使用集群管理工具启动
su – gauss
cd /gauss/app/bin
./gs_ctl start -D /gauss/fgdata -t all
3.2 集群关闭
关闭集群:
# 在备节点关闭
su – gauss
cd /gauss/app/bin
./pg_ctl stop -D /gauss/fgdata -m fast
# 在主节点关闭
su – gauss
cd /gauss/app/bin
./pg_ctl stop -D /gauss/fgdata -m fast
使用集群管理工具关闭:
# 使用集群管理工具关闭
su – gauss
cd /gauss/app/bin
./gs_ctl stop -D /gauss/fgdata -t all -m fast
3.3 集群状态检查
学习交流加群风哥QQ113257174
检查集群状态:
# 检查主节点状态
su – gauss
cd /gauss/app/bin
./psql -U fgedu -d postgres -p 8000 -c “SELECT * FROM pg_stat_replication;”
# 输出日志
pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend_xmin | state | sent_lsn | write_lsn | flush_lsn | replay_lsn | write_lag | flush_lag | replay_lag | sync_priority | sync_state
—–+———-+———+——————+————-+—————–+————-+—————+————–+——-+———-+———–+———–+————+———–+———–+————+—————+————
1234 | 16384 | fgedu | walreceiver | 192.168.1.102 | | 54321 | 2023-07-01 10:00:00 | | streaming | 0/123456 | 0/123456 | 0/123456 | 0/123456 | | | | 1 | sync
检查备节点状态:
# 检查备节点状态
su – gauss
cd /gauss/app/bin
./psql -U fgedu -d postgres -p 8000 -c “SELECT pg_is_in_recovery();”
# 输出日志
pg_is_in_recovery
——————-
t
Part04-系统服务管理
4.1 系统服务配置
创建系统服务文件:
更多视频教程www.fgedu.net.cn
# 创建系统服务文件
cat > /etc/systemd/system/gaussdb.service << EOF
[Unit]
Description=GaussDB Database Service
After=network.target
[Service]
Type=forking
User=gauss
Group=gauss
WorkingDirectory=/gauss/app/bin
ExecStart=/gauss/app/bin/pg_ctl start -D /gauss/fgdata
ExecStop=/gauss/app/bin/pg_ctl stop -D /gauss/fgdata -m fast
ExecReload=/gauss/app/bin/pg_ctl reload -D /gauss/fgdata
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
重载系统服务:
# 重载系统服务
systemctl daemon-reload
4.2 开机自启设置
启用开机自启:
# 启用开机自启
systemctl enable gaussdb.service
# 输出日志
Created symlink /etc/systemd/system/multi-user.target.wants/gaussdb.service → /etc/systemd/system/gaussdb.service.
使用系统服务管理:
# 启动服务
systemctl start gaussdb.service
# 停止服务
systemctl stop gaussdb.service
# 重启服务
systemctl restart gaussdb.service
# 查看服务状态
systemctl status gaussdb.service
# 输出日志
● gaussdb.service – GaussDB Database Service
Loaded: loaded (/etc/systemd/system/gaussdb.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2023-07-01 10:00:00 CST; 10min ago
Process: 12345 ExecStart=/gauss/app/bin/pg_ctl start -D /gauss/fgdata (code=exited, status=0/SUCCESS)
Main PID: 12346 (postgres)
CGroup: /system.slice/gaussdb.service
├─12346 /gauss/app/bin/postgres -D /gauss/fgdata
├─12347 postgres: logger process
├─12348 postgres: checkpointer process
├─12349 postgres: writer process
├─12350 postgres: wal writer process
├─12351 postgres: autovacuum launcher process
├─12352 postgres: stats collector process
└─12353 postgres: bgworker: logical replication launcher
from DB视频:www.itpux.com
Part05-风哥经验总结与分享
5.1 操作最佳实践
- 启动前检查:启动前检查数据目录权限、端口占用情况
- 关闭前准备:关闭前确保所有事务已提交,避免数据丢失
- 使用合适的关闭模式:生产环境建议使用fast模式,平衡速度和安全性
- 定期检查状态:定期检查数据库状态,及时发现问题
- 使用系统服务:配置系统服务,实现开机自启和统一管理
- 集群操作顺序:启动时先启动主节点,再启动备节点;关闭时先关闭备节点,再关闭主节点
5.2 常见问题与解决方案
问题1:启动失败
解决方案:
- 检查数据目录权限是否正确
- 检查端口是否被占用
- 查看数据库日志,定位具体错误原因
- 检查参数配置是否正确
问题2:关闭失败
解决方案:
- 检查是否有长时间运行的事务
- 使用fast或immediate模式强制关闭
- 检查进程状态,必要时使用kill命令终止进程
问题3:集群状态异常
解决方案:
- 检查网络连接是否正常
- 检查主备复制配置是否正确
- 查看备节点的recovery.log,定位错误原因
- 重新配置主备复制
问题4:系统服务启动失败
解决方案:
- 检查服务文件配置是否正确
- 检查权限是否正确
- 查看系统日志,定位错误原因
- 手动启动数据库,检查是否正常
from GaussDB视频:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
