mysql定时备份shell脚本和还原的示例
作者:shandongwill
数据库备份是防止数据丢失的一种重要手段,生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果,所以本文给大家介绍了mysql定时备份shell脚本和还原的实例,需要的朋友可以参考下
前言
数据库备份是防止数据丢失的一种重要手段。生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果。
数据库备份的重要性主要体现在:
- 提高系统的高可用性和灾难可恢复性,在数据库系统崩溃时,没有数据库备份就没法找到数据。
- 使用数据库备份还原数据库,是数据库崩溃时提供数据恢复最小代价的最优方案,如果让用户重新- 添加数据,代价未免太大。
- 没有数据就没有一切,数据库备份是一种防范灾难的强力手段。
数据库备份分类
- 物理备份:对数据库物理文件的备份
- 逻辑备份:对数据库对象和对象数据的备份,mysql使用mysqldump将数据库中的对象和数据以sql的形式导出。以下介绍的是使用mysqldump进行数据库的备份。
mysqldump命令
命令格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 参数1,参数2… > 备份文件.sql
主要参数:
- databases
指定要备份的数据库
参数后面所有名字参量都被看作数据库名。 - tz-utc
tz-utc 参数是 mysqldump 的默认参数,会使得 mysqldump 的导出文件的顶部加上一个设置时区的语句 SET TIME_ZONE=‘+00:00’ ,这个时区是格林威治时间,也就是0时区。这样当导出 timestamp 时间戳字段时,会把在服务器设置的当前时区下显示的 timestamp 时间值转化为在格林威治时间下显示的时间。比如我们数据库采用北京时间东八区,mysqldump 导出的文件当中显示的 timestamp 时间值相对于通过数据库查询显示的时间倒退了8个小时。 - skip-tz-utc
skip-tz-utc 的含义就是当 mysqldump 导出数据时,不使用格林威治时间,而使用当前 mysql 服务器的时区进行导出,这样导出的数据中显示的 timestamp 时间值也和表中查询出来的时间值相同。 - compact
压缩模式,产生更少的输出
去掉注释和头尾等结构。
-skip-comments可以去掉导出文件中的注释语句
备份计划
每日备份,保留30天备份文件
shell脚本如下:
定时调度
使用crontab命令
crontab -e #每日凌晨备份 0 0 * * * /opt/backup.sh >> /tmp/backup_error.log 2>&1
还原
./mysql -h 127.0.0.1 -u root -p'xxxxx' <backup_2024-01-09.sql
总结
数据库备份是生产环境必做的一项工作。备份时参数很重要,否则在还原时会遇到各类问题。还原时也时常出现问题。
到此这篇关于mysql定时备份shell脚本和还原的示例代码的文章就介绍到这了,更多相关mysql定时备份还原shell内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!