控制器 MySQL 数据备份

创建时间:2024-04-02 最近修改时间:2024-04-02

#1. 控制器 MySQL 数据备份

每日自动备份数据存在 mntnct 所在节点的 /usr/local/deepflow/mysql 下

控制器数据主要在 MySQL 中,参考 MySQL 标准备份方法即可,备份之前请先查看 MySQL 数据目录大小、并使用 deepflow-deploy -d 卸载所有 DeepFlow 组件:

恢复数据之前也需要使用 deepflow-deploy -d 停止所有 DeepFlow 进程。

备份数据库

# 进入 mntnct 服务对应的 POD 执行 kubectl exec -it -n deepflow pod-xxxxxxxx sh
BACKUP_FILE="/usr/local/deepflow/mysql/manual-backup-deepflow-$(date +%F-%H-%M-%S).sql.gz" && mysqldump -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -P${MYSQL_PORT} deepflow --hex-blob --max_allowed_packet=512M | gzip > ${BACKUP_FILE} && echo "Backup File Path: ${BACKUP_FILE}"
1
2

恢复数据库

# 进入 mntnct 服务对应的 POD 执行 kubectl exec -it -n deepflow pod-xxxxxxxx sh
mysql -hmysql -uroot -p -P30130 deepflow < __FIX_ME_备份的文件名__
1
2

#2. 数据节点指标数据备份

指标数据存储于 InfluxDB 中,进入 Influxdb pod 后可参考如下方法进行备份和恢复。

influxd backup
    [ -database <db_name> ]
    [ -portable ]
    [ -host <host:port> ]
    [ -retention <rp_name> ] | [ -shard <shard_ID> -retention <rp_name> ]
    [ -start <timestamp> [ -end <timestamp> ] | -since <timestamp> ]
    <path-to-backup>
1
2
3
4
5
6
7
influxd restore [ -db <db_name> ]
    -portable | -online
    [ -host <host:port> ]
    [ -newdb <newdb_name> ]
    [ -rp <rp_name> ]
    [ -newrp <newrp_name> ]
    [ -shard <shard_ID> ]
    <path-to-backup-files>
1
2
3
4
5
6
7
8

#3. 数据节点流量日志数据备份

流量日志数据使用 Elasticsearch 存储,可使用快照方式进行备份:

PUT /_snapshot/my_backup
{
  "type": "fs",
  "settings": {
    "location": "my_backup_location"
  }
}
1
2
3
4
5
6
7