数据库之MySql的数据库备份

数据库之MySql的数据库备份

一、前言

在生产环境中,数据库是重要的资产,如果数据库丢失或者因为其它原因损毁则导致整个应用无法服务,并且难以恢复。所以,对于线上的数据,必须采用一定的容错的机制,比如全量备份、增量备份、主从同步、开启blog日志等方式。本章则结合MySql数据库的定时全量备份来说明如何在Linux环境下备份数据库,降低数据丢失或者出问题无法找到原因的情况。当然容错机制包含各种方式,目的是保证数据的完整性、一致性、正确性,所以会综合多种方式一起达到该目标。

二、实践

在mysql中,我们通过官方提供的mysqldump工具进行数据库的备份,在Linux中结合crontab定时任务完成指定时间点的全量数据的备份操作。在Linux中可以基于安装包的方式或者容器的方式安装运行mysql数据库服务,所以结合两种方式来讲解如何备份数据。

1.1、在docker容器中备份数据库,定义执行的脚本文件.sh,填写执行的数据库、账号密码、备份参数、备份文件名称等

#!/bin/bash

DATE=$(date +%Y%m%d%H%M%S)

# 数据库用户名

USERNAME=XXX

# 密码

PASSWORD=XXX

# 要备份的数据库

DBMES=gs-XXX

# Docker容器ID

DOCKERID=546d6bbf6be5

#备份路径

docker exec $DOCKERID/usr/bin/mysqldump -u $USERNAME --password=$PASSWORD $DBMES > /home/admin/mysql-data-backup/gs-XXX/gs-mes$DATE.sql

1.2、新增定时任务,定时执行指定备份脚本

10 0 * * * sh /home/admin/mysql-data-backup/gs-xxx.sh

10 12 * * * sh /home/admin/mysql-data-backup/gs-xxx.sh

10 18 * * * sh /home/admin/mysql-data-backup/gs-xxx.sh

2.1、在安装的mysql安装包的环境下执行数据库备份。

#!/bin/bash

NOW=$(date "+%Y%m%d_%H%M")

mysqldump -h 127.0.0.1 -uxxx -pxxx xxx> /home/mysql-data-backup/gs-wms/xxxs_$NOW.sql

2.2、新增定时任务,定时执行指定备份脚本

10 0 * * * sh /home/mysql-data-backup/gs-xxx.sh

10 12 * * * sh /home/mysql-data-backup/gs-xxx.sh

10 18 * * * sh /home/mysql-data-backup/gs-xxx.sh

三、总结

1、上述通过简单创建备份脚本文件和新增执行脚本文件的定时任务完成数据库的全量备份功能,要保证数据安全、完整性必须配合更多的策略完成如加密、增量备份、主从同步等操作。

2、数据在备份过程中,需要的磁盘空间不断增大,可以通过定时任务删除指定范围的备份文件,降低需要的存储空间,防止磁盘空间过载的情况。

3、在数据备份的方案设计中,需要考虑全面,结合备份方式、备份时间、备份的恢复、数据处理等考虑点,完善的方案才是好的方案,以应对数据库出现问题的补救措施。

🎎 相关推荐

绝地求生共享小号怎么玩(绝地求生共享账号能不能随时玩?)
为什么越南人都在用Zalo?快来了解这款社交软件!
王者荣耀:制裁系统的个人理解,教你如何避免,希望能帮到你