1. 首页 > 国产数据库教程 > GoldenDB教程 > 正文

GoldenDB教程FG029-GoldenDB生产运维规范-日常巡检与高危操作指南

本文主要介绍GoldenDB数据库的生产运维规范,包括日常巡检和高危操作指南。风哥教程参考GoldenDB官方文档GoldenDB8系统管理员手册、GoldenDB8运维指南等相关文档。

通过本文的学习,您将掌握GoldenDB的日常巡检方法,了解高危操作的风险和应对措施,确保数据库系统的稳定运行。

本教程适用于GoldenDB数据库管理员和运维人员,帮助您建立规范的运维流程,提高运维效率和系统可靠性。

目录大纲

Part01-基础概念与理论知识

Part02-生产环境规划与建议

Part03-生产环境项目实施方案

Part04-生产案例与实战讲解

Part05-风哥经验总结与分享

Part01-基础概念与理论知识

1.1 运维规范概述

GoldenDB的运维规范是确保数据库系统稳定运行的重要保障,主要包括:

  • 日常巡检:定期检查数据库系统的运行状态,及时发现和解决问题
  • 高危操作管理:对可能影响系统稳定的操作进行严格管理
  • 应急响应:建立应急响应机制,及时处理系统故障
  • 变更管理:对系统变更进行规范管理,确保变更安全
  • 文档管理:建立完善的运维文档,记录系统配置和操作历史

运维规范的目标是提高系统的可靠性、可用性和安全性,减少故障发生的概率,确保业务的正常运行。

更多视频教程www.fgedu.net.cn

1.2 日常巡检基础

日常巡检是运维工作的重要组成部分,主要包括:

  • 系统状态检查:检查数据库进程、内存、CPU、磁盘等系统资源的使用情况
  • 数据库状态检查:检查数据库连接、会话、锁等状态
  • 性能检查:检查数据库的性能指标,如响应时间、吞吐量等
  • 日志检查:检查数据库日志,发现异常情况
  • 备份检查:检查备份是否正常完成

日常巡检的频率通常为每日、每周和每月,具体根据系统的重要性和稳定性确定。

学习交流加群风哥微信: itpux-com

1.3 高危操作定义与风险

高危操作是指可能对系统稳定运行造成严重影响的操作,主要包括:

  • 数据库升级:升级数据库版本可能导致兼容性问题
  • 参数修改:修改数据库参数可能影响系统性能
  • 结构变更:修改表结构可能影响应用运行
  • 数据迁移:数据迁移可能导致数据丢失或不一致
  • 集群操作:集群扩容、缩容等操作可能影响系统可用性

高危操作的风险包括:

  • 系统宕机
  • 数据丢失
  • 性能下降
  • 业务中断

学习交流加群风哥QQ113257174

Part02-生产环境规划与建议

2.1 运维体系建设

运维体系建设的主要内容:

  • 组织架构:建立专门的运维团队,明确职责分工
  • 制度流程:建立完善的运维制度和流程
  • 工具平台:建设运维工具平台,提高运维效率
  • 监控体系:建立完善的监控体系,及时发现问题
  • 培训体系:加强运维人员培训,提高技术水平

风哥提示:运维体系建设是一个长期的过程,需要不断完善和优化。

2.2 日常巡检计划

制定日常巡检计划,包括:

  • 每日巡检:检查系统状态、数据库状态、日志等
  • 每周巡检:检查备份情况、性能指标、安全状况等
  • 每月巡检:检查系统配置、存储空间、硬件状态等
  • 季度巡检:进行全面的系统检查和优化

巡检计划应根据系统的重要性和稳定性进行调整,确保巡检的有效性。

更多学习教程公众号风哥教程itpux_com

2.3 高危操作管理

高危操作管理的主要内容:

  • 操作审批:建立高危操作审批机制,确保操作的必要性和安全性
  • 操作计划:制定详细的操作计划,包括操作步骤、风险评估和回滚方案
  • 操作执行:由经验丰富的运维人员执行操作,确保操作的正确性
  • 操作监控:在操作过程中进行实时监控,及时发现和处理问题
  • 操作记录:记录操作过程和结果,便于后续分析和参考

from GoldenDB视频:www.itpux.com

Part03-生产环境项目实施方案

3.1 日常巡检实施

日常巡检的实施步骤:

# 检查系统状态
$ top

top – 10:00:00 up 10 days, 2:30, 1 user, load average: 0.50, 0.45, 0.40
Tasks: 200 total, 1 running, 199 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.0 us, 2.0 sy, 0.0 ni, 92.0 id, 1.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 32768000 total, 16384000 free, 8192000 used, 8192000 buff/cache
KiB Swap: 16384000 total, 16384000 free, 0 used. 22528000 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12345 goldendb 20 0 10.0g 2.0g 1.0g S 5.0 6.2 0:10.00 mysqld
12346 goldendb 20 0 10.0g 2.0g 1.0g S 5.0 6.2 0:10.00 mysqld
12347 goldendb 20 0 10.0g 2.0g 1.0g S 5.0 6.2 0:10.00 mysqld

# 检查数据库状态
$ gcluster –status

Cluster status: OK

CN nodes:
cn1: 192.168.1.10:3306 (MASTER)
cn2: 192.168.1.11:3306 (SLAVE)

DN nodes:
dn1: 192.168.1.12:3307 (MASTER)
dn2: 192.168.1.13:3307 (SLAVE)
dn3: 192.168.1.14:3307 (MASTER)
dn4: 192.168.1.15:3307 (SLAVE)

GTM nodes:
gtm1: 192.168.1.16:2379 (MASTER)
gtm2: 192.168.1.17:2379 (SLAVE)

MDS nodes:
mds1: 192.168.1.18:2380 (MASTER)
mds2: 192.168.1.19:2380 (SLAVE)

# 检查数据库连接
$ mysql -h 192.168.1.10 -P 3306 -u fgedu -p -e “SHOW PROCESSLIST;”

Enter password:
+—–+——+—————–+———+———+——+———-+——————+
| Id | User | Host | db | Command | Time | State | Info |
+—–+——+—————–+———+———+——+———-+——————+
| 100 | fgedu| 192.168.1.20:12345 | fgedudb | Sleep | 5 | | NULL |
| 101 | fgedu| 192.168.1.20:12346 | fgedudb | Query | 0 | executing | SELECT * FROM fgedu_user |
+—–+——+—————–+———+———+——+———-+——————+

3.2 高危操作流程

高危操作的流程:

  1. 操作申请:提交高危操作申请,包括操作内容、目的、风险评估等
  2. 操作审批:由相关负责人审批操作申请
  3. 操作准备:准备操作环境,备份数据,制定回滚方案
  4. 操作执行:按照操作计划执行操作
  5. 操作监控:在操作过程中进行实时监控
  6. 操作验证:验证操作结果是否符合预期
  7. 操作记录:记录操作过程和结果

3.3 应急响应机制

应急响应机制的主要内容:

  • 应急小组:成立应急响应小组,明确职责分工
  • 应急流程:制定详细的应急响应流程
  • 应急演练:定期进行应急演练,提高应急处理能力
  • 应急工具:准备必要的应急工具和资源
  • 恢复方案:制定系统恢复方案,确保在故障发生后能够快速恢复

Part04-生产案例与实战讲解

4.1 日常巡检实战

案例:日常巡检脚本

#!/bin/bash
# daily_check.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`

# 检查系统状态
echo “=== 检查系统状态 ===”
top -b -n 1 | head -n 20

# 检查磁盘空间
echo “=== 检查磁盘空间 ===”
df -h

# 检查内存使用
echo “=== 检查内存使用 ===”
free -h

# 检查数据库状态
echo “=== 检查数据库状态 ===”
gcluster –status

# 检查数据库连接
echo “=== 检查数据库连接 ===”
mysql -h 192.168.1.10 -P 3306 -u fgedu -p fgedu123 -e “SHOW PROCESSLIST;”

# 检查慢查询
echo “=== 检查慢查询 ===”
tail -n 10 /goldendb/fgdata/slow.log

# 检查错误日志
echo “=== 检查错误日志 ===”
tail -n 10 /goldendb/fgdata/error.log

# 检查备份状态
echo “=== 检查备份状态 ===”
ls -la /goldendb/backup/

# 输出检查时间
echo “=== 检查完成于 $(date) ===”

# 执行日常巡检脚本
$ chmod +x daily_check.sh
$ ./daily_check.sh

=== 检查系统状态 ===
top – 10:00:00 up 10 days, 2:30, 1 user, load average: 0.50, 0.45, 0.40
Tasks: 200 total, 1 running, 199 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.0 us, 2.0 sy, 0.0 ni, 92.0 id, 1.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 32768000 total, 16384000 free, 8192000 used, 8192000 buff/cache
KiB Swap: 16384000 total, 16384000 free, 0 used. 22528000 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12345 goldendb 20 0 10.0g 2.0g 1.0g S 5.0 6.2 0:10.00 mysqld
12346 goldendb 20 0 10.0g 2.0g 1.0g S 5.0 6.2 0:10.00 mysqld
12347 goldendb 20 0 10.0g 2.0g 1.0g S 5.0 6.2 0:10.00 mysqld

=== 检查磁盘空间 ===
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 30G 40% /
/dev/sdb1 200G 50G 150G 25% /goldendb

=== 检查内存使用 ===
total used free shared buff/cache available
Mem: 32G 8G 16G 100M 8G 22G
Swap: 16G 0 16G

=== 检查数据库状态 ===
Cluster status: OK

CN nodes:
cn1: 192.168.1.10:3306 (MASTER)
cn2: 192.168.1.11:3306 (SLAVE)

DN nodes:
dn1: 192.168.1.12:3307 (MASTER)
dn2: 192.168.1.13:3307 (SLAVE)
dn3: 192.168.1.14:3307 (MASTER)
dn4: 192.168.1.15:3307 (SLAVE)

GTM nodes:
gtm1: 192.168.1.16:2379 (MASTER)
gtm2: 192.168.1.17:2379 (SLAVE)

MDS nodes:
mds1: 192.168.1.18:2380 (MASTER)
mds2: 192.168.1.19:2380 (SLAVE)

=== 检查数据库连接 ===
+—–+——+—————–+———+———+——+———-+——————+
| Id | User | Host | db | Command | Time | State | Info |
+—–+——+—————–+———+———+——+———-+——————+
| 100 | fgedu| 192.168.1.20:12345 | fgedudb | Sleep | 5 | | NULL |
| 101 | fgedu| 192.168.1.20:12346 | fgedudb | Query | 0 | executing | SELECT * FROM fgedu_user |
+—–+——+—————–+———+———+——+———-+——————+

=== 检查慢查询 ===
# Time: 2024-01-01T10:00:00.000000Z
# User@Host: fgedu[ fgedu] @ 192.168.1.20 [192.168.1.20]
# Query_time: 5.234567 Lock_time: 0.000123 Rows_sent: 100 Rows_examined: 1000000
SELECT * FROM fgedu_order WHERE order_date >= ‘2024-01-01’;

=== 检查错误日志 ===
2024-01-01T10:00:00.000000Z 0 [Note] InnoDB: Buffer pool(s) load completed at 240101 18:00:00
2024-01-01T10:00:01.000000Z 0 [Note] Server socket created on IP: ‘0.0.0.0’.
2024-01-01T10:00:01.000000Z 0 [Note] Listening on TCP port 3306.
2024-01-01T10:00:01.000000Z 0 [Note] MySQL server startup complete.

=== 检查备份状态 ===
total 819200
-rw-r–r– 1 goldendb goldendb 838860800 Jan 1 00:00 fgedudb_backup_20240101.sql

=== 检查完成于 2024年 01月 01日 星期一 10:00:00 CST ===

4.2 高危操作实战

案例:数据库参数修改

# 步骤1:备份当前参数配置
$ mysql -h 192.168.1.10 -P 3306 -u admin -pAdmin123! -e “SHOW VARIABLES;” > variables_backup.txt

Enter password:

# 步骤2:修改参数
$ mysql -h 192.168.1.10 -P 3306 -u admin -pAdmin123! -e “SET GLOBAL innodb_buffer_pool_size = 10737418240;”

Enter password:
Query OK, 0 rows affected (0.00 sec)

# 步骤3:验证参数修改
$ mysql -h 192.168.1.10 -P 3306 -u admin -pAdmin123! -e “SHOW VARIABLES LIKE ‘innodb_buffer_pool_size’;”

Enter password:
+————————-+————+
| Variable_name | Value |
+————————-+————+
| innodb_buffer_pool_size | 10737418240 |
+————————-+————+

4.3 应急响应实战

案例:数据库宕机应急响应

# 步骤1:检查数据库状态
$ gcluster –status

Cluster status: ERROR

CN nodes:
cn1: 192.168.1.10:3306 (DOWN)
cn2: 192.168.1.11:3306 (MASTER)

DN nodes:
dn1: 192.168.1.12:3307 (MASTER)
dn2: 192.168.1.13:3307 (SLAVE)
dn3: 192.168.1.14:3307 (MASTER)
dn4: 192.168.1.15:3307 (SLAVE)

GTM nodes:
gtm1: 192.168.1.16:2379 (MASTER)
gtm2: 192.168.1.17:2379 (SLAVE)

MDS nodes:
mds1: 192.168.1.18:2380 (MASTER)
mds2: 192.168.1.19:2380 (SLAVE)

# 步骤2:检查cn1节点状态
$ ssh 192.168.1.10
$ systemctl status goldendb

● goldendb.service – GoldenDB Database Service
Loaded: loaded (/etc/systemd/system/goldendb.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Mon 2024-01-01 10:00:00 CST; 5min ago
Process: 12345 ExecStart=/goldendb/app/bin/mysqld_safe –defaults-file=/goldendb/app/etc/my.cnf (code=exited, status=1/FAILURE)
Main PID: 12346 (code=exited, status=1/FAILURE)

# 步骤3:检查错误日志
$ tail -n 100 /goldendb/fgdata/error.log

2024-01-01T10:00:00.000000Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2024-01-01T10:00:00.000000Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2024-01-01T10:00:00.000000Z 0 [ERROR] Failed to initialize built-in plugins.
2024-01-01T10:00:00.000000Z 0 [ERROR] Aborting

# 步骤4:检查内存使用
$ free -h

total used free shared buff/cache available
Mem: 32G 30G 2G 100M 0G 2G
Swap: 16G 0 16G

# 步骤5:调整参数并重启服务
$ vi /goldendb/app/etc/my.cnf
# 修改 innodb_buffer_pool_size = 8G
$ systemctl start goldendb

● goldendb.service – GoldenDB Database Service
Loaded: loaded (/etc/systemd/system/goldendb.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2024-01-01 10:10:00 CST; 1min ago
Process: 12347 ExecStart=/goldendb/app/bin/mysqld_safe –defaults-file=/goldendb/app/etc/my.cnf (code=exited, status=0/SUCCESS)
Main PID: 12348 (mysqld)
CGroup: /system.slice/goldendb.service
├─12348 /goldendb/app/bin/mysqld –defaults-file=/goldendb/app/etc/my.cnf
└─12349 /bin/sh /goldendb/app/bin/mysqld_safe –defaults-file=/goldendb/app/etc/my.cnf

# 步骤6:验证集群状态
$ gcluster –status

Cluster status: OK

CN nodes:
cn1: 192.168.1.10:3306 (SLAVE)
cn2: 192.168.1.11:3306 (MASTER)

DN nodes:
dn1: 192.168.1.12:3307 (MASTER)
dn2: 192.168.1.13:3307 (SLAVE)
dn3: 192.168.1.14:3307 (MASTER)
dn4: 192.168.1.15:3307 (SLAVE)

GTM nodes:
gtm1: 192.168.1.16:2379 (MASTER)
gtm2: 192.168.1.17:2379 (SLAVE)

MDS nodes:
mds1: 192.168.1.18:2380 (MASTER)
mds2: 192.168.1.19:2380 (SLAVE)

Part05-风哥经验总结与分享

5.1 运维最佳实践

  • 建立规范的运维流程:制定详细的运维流程和规范,确保运维工作的标准化
  • 定期进行日常巡检:通过定期巡检,及时发现和解决问题,防患于未然
  • 严格管理高危操作:对高危操作进行严格的审批和管理,确保操作的安全性
  • 建立完善的监控体系:通过监控系统,及时发现系统异常,提高故障响应速度
  • 定期进行备份:定期备份数据,确保数据安全,为故障恢复提供保障
  • 加强人员培训:加强运维人员的技术培训,提高运维水平
  • 建立应急响应机制:建立完善的应急响应机制,提高故障处理能力
  • 持续优化系统:根据系统运行情况,持续优化系统配置和性能

5.2 常见运维问题与解决方案

  • 系统性能下降
    • 原因:SQL语句优化不足,索引设计不合理,系统资源不足等
    • 解决方案:优化SQL语句,调整索引,增加系统资源等
  • 数据库连接失败
    • 原因:网络问题,数据库服务未启动,连接数达到上限等
    • 解决方案:检查网络连接,启动数据库服务,调整连接数参数等
  • 数据备份失败
    • 原因:存储空间不足,权限问题,网络问题等
    • 解决方案:增加存储空间,检查权限,确保网络连接正常等
  • 系统宕机
    • 原因:硬件故障,软件错误,资源耗尽等
    • 解决方案:更换硬件,修复软件错误,优化资源使用等

5.3 运维自动化与工具

  • 自动化脚本:编写自动化脚本,实现日常巡检、备份等操作的自动化
  • 监控工具:使用监控工具,如Prometheus、Grafana等,实现系统状态的实时监控
  • 配置管理工具:使用配置管理工具,如Ansible、Puppet等,实现配置的自动化管理
  • 容器化部署:使用容器化技术,如Docker、Kubernetes等,简化部署和管理
  • 日志分析工具:使用日志分析工具,如ELK Stack等,实现日志的集中管理和分析

风哥提示:运维工作是一项需要细心和耐心的工作,需要不断学习和积累经验。通过建立规范的运维流程,使用自动化工具,可以提高运维效率,减少人为错误,确保系统的稳定运行。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息