Skip to content

Commit d8e0345

Browse files
authored
feat(mysql-backup): 增加mysql备份 (#27)
* feat(数据库备份): 增加备份仓库 * feat(cbus备份): 增加备份cbus备份 * feat(mysql备份): 增加cbus和maintain备份 * feat(demo): 默认启用备份 * feat(采用变量): 默认使用变量
1 parent 062f491 commit d8e0345

File tree

5 files changed

+96
-2
lines changed

5 files changed

+96
-2
lines changed

examples/bus-http/compose.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Bus单机部署, 使用http
22
include:
33
- ../docker/mysql8/compose.yml
4+
- ../docker/mysql-backup/compose.cbus.yml
45
- ../docker/rabbitmq/compose.yml
56
- ../docker/redis/compose.yml
67
- ../docker/bus/compose.yml

examples/bus-https/compose.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# 密码/端口/域名等信息在.env文件中配置
33
include:
44
- ../docker/mysql8/compose.yml
5+
- ../docker/mysql-backup/compose.cbus.yml
56
- ../docker/rabbitmq/compose.yml
67
- ../docker/redis/compose.yml
78
- ../docker/bus/compose.yml

mysql-backup/compose.cbus.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
services:
2+
mysql-cron-backup-cbus:
3+
image: fradelg/mysql-cron-backup
4+
container_name: mysql-cron-backup-cbus
5+
volumes:
6+
- "${DATA_DIR:-/data}/mysql8/backup:/backup"
7+
environment:
8+
- MYSQL_HOST=${MYSQL_HOST:-mysql8}
9+
- MYSQL_PORT={MYSQL_PORT:-3306}
10+
- MYSQL_USER=${MYSQL_USERNAME:-root}
11+
- MYSQL_PASS=${MYSQL_PASSWORD:?required}
12+
- MAX_BACKUPS=15
13+
# 是否在容器启动时立即执行一次备份:1 表示立即备份,0 表示等到下一个定时点再执行。
14+
- INIT_BACKUP=0
15+
# 每天凌晨 3 点执行一次备份。cron 表达式格式:分 时 日 月 星期
16+
- CRON_TIME=0 3 * * *
17+
# gzip 压缩等级(1–9),9 表示压缩最小、CPU 占用最高。
18+
- GZIP_LEVEL=9
19+
# 指定数据库
20+
- MYSQL_DATABASE=cbus
21+
# 忽略表(多个以空格分隔)
22+
- |
23+
MYSQLDUMP_OPTS=--no-tablespaces --single-transaction
24+
--ignore-table=cbus.log_attendance
25+
--ignore-table=cbus.log_dispatch
26+
--ignore-table=cbus.log_dsp
27+
--ignore-table=cbus.log_event
28+
--ignore-table=cbus.log_login
29+
--ignore-table=cbus.log_message
30+
--ignore-table=cbus.log_plan_change
31+
--ignore-table=cbus.log_station
32+
--ignore-table=cbus.log_system
33+
--ignore-table=cbus.log_web_socket
34+
--ignore-table=cbus.service_on_time
35+
--ignore-table=cbus.service_over_speed
36+
--ignore-table=cbus.schedule_plan_table
37+
--ignore-table=cbus.device_position
38+
--ignore-table=cbus.device_depart_arrive
39+
restart: unless-stopped

mysql-backup/compose.maintain.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
services:
2+
mysql-cron-backup-maintain:
3+
image: fradelg/mysql-cron-backup
4+
container_name: mysql-cron-backup-maintain
5+
volumes:
6+
- "${DATA_DIR:-/data}/mysql8/backup:/backup"
7+
environment:
8+
- MYSQL_HOST=${MYSQL_HOST:-mysql8}
9+
- MYSQL_PORT={MYSQL_PORT:-3306}
10+
- MYSQL_USER=${MYSQL_USERNAME:-root}
11+
- MYSQL_PASS=${MYSQL_PASSWORD:?required}
12+
- MAX_BACKUPS=15
13+
# 是否在容器启动时立即执行一次备份:1 表示立即备份,0 表示等到下一个定时点再执行。
14+
- INIT_BACKUP=0
15+
# 每天凌晨 3 点执行一次备份。cron 表达式格式:分 时 日 月 星期
16+
- CRON_TIME=0 3 * * *
17+
# gzip 压缩等级(1–9),9 表示压缩最小、CPU 占用最高。
18+
- GZIP_LEVEL=9
19+
# 指定数据库
20+
- MYSQL_DATABASE=maintain
21+
# 忽略表(多个以空格分隔)
22+
- |
23+
MYSQLDUMP_OPTS=--no-tablespaces --single-transaction
24+
--ignore-table=maintain.jtt808_alarm
25+
--ignore-table=maintain.jtt808_alarm_count
26+
--ignore-table=maintain.jtt808_alarm_file
27+
--ignore-table=maintain.jtt808_alarm_safety
28+
--ignore-table=maintain.jtt808_card
29+
--ignore-table=maintain.jtt808_cmd
30+
--ignore-table=maintain.jtt808_cmd_face
31+
--ignore-table=maintain.jtt808_connect
32+
--ignore-table=maintain.jtt808_face
33+
--ignore-table=maintain.jtt808_fence
34+
--ignore-table=maintain.jtt808_file_upload
35+
--ignore-table=maintain.jtt808_health
36+
--ignore-table=maintain.jtt808_io
37+
--ignore-table=maintain.jtt808_media_file
38+
--ignore-table=maintain.jtt808_media_photograph
39+
--ignore-table=maintain.jtt808_obd
40+
--ignore-table=maintain.jtt808_passenger
41+
--ignore-table=maintain.jtt808_position
42+
--ignore-table=maintain.jtt808_position_history
43+
--ignore-table=maintain.jtt808_position_last
44+
--ignore-table=maintain.jtt808_position_migrate_task
45+
--ignore-table=maintain.jtt808_register
46+
--ignore-table=maintain.jtt808_tpms
47+
--ignore-table=maintain.jtt808_video_storage
48+
--ignore-table=maintain.log_error
49+
--ignore-table=maintain.log_geocoder
50+
--ignore-table=maintain.log_login
51+
--ignore-table=maintain.log_mail
52+
--ignore-table=maintain.log_message
53+
--ignore-table=maintain.log_system
54+
--ignore-table=maintain.log_text
55+
restart: unless-stopped

mysql8/compose.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ services:
1515
volumes:
1616
- "${DATA_DIR:-/data}/mysql8/data:/var/lib/mysql"
1717
- "${DATA_DIR:-/data}/mysql8/logs:/var/log/mysql"
18-
- "${DATA_DIR:-/data}/mysql8/backup/database:/mysql/backup/database"
19-
- "${DATA_DIR:-/data}/mysql8/backup/log:/mysql/backup/log"
2018
environment:
2119
# 设置密码
2220
- MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD:?required}

0 commit comments

Comments
 (0)