一、数据备份
- 物理备份:
- 在管理节点使用
ndb_mgm
客户端工具启动备份:
- 在管理节点使用
[root@管理节点 mysql-cluster]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> start backup
- 备份过程中,可通过
ndb_mgm> show backup;
查看备份进度。备份完成后,数据文件会存储在各数据节点相应目录下,例如在数据节点可能位于/u01/BACKUP/BACKUP-<备份编号>/
目录,包含.Data
(数据文件)、.ctl
(控制文件)、.log
(日志文件)等。 - 对于大数据量备份,为优化性能,可在
config.ini
的[ndbd default]
或[ndbd]
中配置相关参数:BackupDataBufferSize
:指定将数据写入磁盘之前用于缓存数据的内存大小,合理设置可减少磁盘 I/O 次数,加快备份速度。BackupLogBufferSize
:设置将日志记录写入磁盘之前的缓冲内存大小,确保日志备份的高效性。BackupMemory
:为数据库节点中的备份操作分配的总内存,等于数据缓冲内存与日志缓冲内存之和,需根据服务器内存资源合理分配。BackupWriteSize
:每次写入磁盘的块大小,适用于备份数据缓冲和备份日志缓冲,适当增大该值可提升大文件写入性能,但不宜过大以免影响系统稳定性。
二、数据恢复
- 使用
ndb_restore
工具进行数据恢复:
[root@数据节点 ~]# ndb_restore -b <备份 id> -n <节点 id> -c host=<管理节点 IP>:<管理节点端口> -m -r <恢复路径>
- 参数说明:
-b
:指定备份的唯一标识符,用于确定要恢复的备份集。-n
:对应数据节点的节点 ID,确保数据恢复到正确节点。-c
:连接到 Cluster 管理器的连接串,格式为host=<IP>:<端口>
,通常为管理节点的 IP 和ndb_mgm
服务端口(默认 1186)。-m
:恢复表定义,若表结构发生变化或丢失,此参数可确保重新创建正确的表结构。-r
:指向备份文件所在的路径,需准确无误,否则无法找到恢复数据源。
- 示例:
[root@数据节点 ~]# ndb_restore -b 2 -n 2 -c host=10.24.32.180:1186 -m -r /u01/BACKUP/BACKUP-2
- 注意事项:
- 若在恢复过程中遇到
Configuration error: Error: Could not alloc node id at...
类似错误,可在config.ini
中增加一个空节点[mysqld]
,然后重新执行恢复命令。 - 当数据分布在多个数据节点时,可能需要在多个节点上依次执行恢复操作,以确保数据完整性。恢复完成后,可在 SQL 节点查询数据验证恢复效果,如:
- 若在恢复过程中遇到
mysql> select count(1) from t_cluster;
三、日志管理
- 日志类型:
- MySQL NDB Cluster 提供两种日志:
- 集群日志(cluster log):记录所有节点生成的日志,便于集中管理和查看集群整体运行状况,一般推荐使用。通常存储在配置文件
config.ini
所在目录下,文件格式为ndb_<管理节点号>_cluster.log
。 - 节点日志(node log):仅记录数据节点的本地事件,多用于开发调试场景,日常运维较少依赖。
- 集群日志(cluster log):记录所有节点生成的日志,便于集中管理和查看集群整体运行状况,一般推荐使用。通常存储在配置文件
- MySQL NDB Cluster 提供两种日志:
- 日志操作:
- 使用
ndb_mgm
客户端工具管理集群日志:- 查看日志状态:
- 使用
[root@管理节点 mysql-cluster]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> clusterlog info
- 关闭日志:
ndb_mgm> clusterlog off
- 开启日志:
ndb_mgm> clusterlog on
- 日志过滤:
- 可从三个维度对集群日志进行过滤:
- Category(类别):包括
startup
、shutdown
、statistics
、checkpoint
、noderestart
、connection
、error
、info
等,不同类别涵盖各类集群运行相关事件,可参考官方文档了解详情。设置特定类别日志记录的优先级阈值,如:
- Category(类别):包括
- 可从三个维度对集群日志进行过滤:
ndb_mgm> <节点 id> clusterlog <类别>=<阈值>
示例:将节点 10.24.32.181 的 startup
事件只记录级别为 3 以下的日志:
ndb_mgm> 4 clusterlog startup=3
- **Priority(优先级)**:用 1 - 15 的数字表示,1 为最重要,15 为最不重要。每种 Category 有默认优先级阈值,低于阈值的日志才会被记录,通过设置可精细控制日志信息量。
- **Severity Level(严重级别)**:有 `alert`、`critical`、`error`、`warning`、`info`、`debug` 等,可按需打开或关闭某些严重级别日志,如:
ndb_mgm> clusterlog toggle <严重级别>
示例:过滤掉 debug
和 info
信息:
ndb_mgm> clusterlog toggle debug
ndb_mgm> clusterlog toggle info
四、节点管理
- 查看集群状态:
[root@管理节点 mysql-cluster]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
此命令实时展示集群各节点连接、运行状态,是日常运维首要操作,用于及时发现节点故障、连接异常等问题。例如,查看数据节点、SQL 节点是否正常在线,管理节点是否稳定运行。
2. 启动节点:
- 启动管理节点:
[root@管理节点 mysql-cluster]# ndb_mgmd -f./config.ini
若管理节点意外停止,需用此命令结合正确的配置文件重启,确保集群管理服务恢复。
- 启动数据节点:
[root@数据节点 local]# ndbd
数据节点故障、服务器重启或维护后,执行该命令启动数据存储服务。
- 启动 SQL 节点:
[root@SQL 节点 ~]# service mysql.server start
SQL 节点用于应用程序交互,若停止需及时启动以保障业务正常访问数据库。
3. 关闭节点:
- 关闭集群:
[root@管理节点 mysql-cluster]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> shutdown
注意,此命令执行后,SQL 节点不会自动关闭,需手动关闭:
[root@SQL 节点 ~]# service mysql.server stop
- 单独关闭数据节点(特殊维护场景):
[root@数据节点 local]# kill [数据节点进程 ID]
先通过 ps -ef |grep ndbd
查找进程 ID,谨慎操作,避免数据丢失或集群不稳定,一般不建议随意单独关闭数据节点。
欢迎关注公众号《小周的数据库进阶之路》,更多精彩知识和干货尽在其中。
标签:ndb,运维,--,NDB,mgm,Cluster,日志,root,节点 From: https://blog.csdn.net/qq_36936192/article/details/144709070