您的位置:首页 > 财经 > 产业 > 建筑论坛网站_网络工程师工资_开鲁视频_北京今日重大新闻

建筑论坛网站_网络工程师工资_开鲁视频_北京今日重大新闻

2024/11/17 13:29:09 来源:https://blog.csdn.net/qq_35624642/article/details/142595807  浏览:    关键词:建筑论坛网站_网络工程师工资_开鲁视频_北京今日重大新闻
建筑论坛网站_网络工程师工资_开鲁视频_北京今日重大新闻

一、编写sh脚本

常见备份命令介绍

我选用的是mysqldump命令,命令使用简介

[root@]> mysqldump -helpUsage: mysqldump [OPTIONS] database_name [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
1.登录选项:-u user:指定用户-h host:指定主机-p:表示要使用密码-E, --events: 备份事件调度器-R, --routines: 备份存储过程和存储函数
2.备份选项:--all-databases:备份所有数据库--databases db1 db2:备份指定的数据库--single-transaction:对事务引擎执行热备--flush-logs:更新二进制日志文件--master-data=21:每备份一个库就生成一个新的二进制文件(默认)2:只生成一个新的二进制文件--quick:在备份大表时指定该选项

备份脚本示例

#!/bin/bash
#NAME:数据库备份
#DATE:20240927
#USER:QC班长# 备份选项:
#     --all-databases:备份所有数据库
#     --databases db1 db2:备份指定的数据库
#     --single-transaction:对事务引擎执行热备
#     --flush-logs:更新二进制日志文件
#     --master-data=2
#         1:每备份一个库就生成一个新的二进制文件(默认)
#         2:只生成一个新的二进制文件
#     --quick:在备份大表时指定该选项echo "==========MySQL数据库开始备份==========="# MySQL数据库服务器地址
HOST="192.168.140.3"# MySQL用户名
USER="root"# MySQL密码
PASSWORD="QC20240927"# 备份目录路径
BACKUP_DIR="/mnt/sdc/data/backup/mysql_database"# 当前日期
DATE=$(date +%Y-%m-%d-%H-%M)# 备份文件名
BACKUP_FILE="$BACKUP_DIR/all_databases_$DATE.sql"#创建备份的路径
#如果备份的路径文件夹存在就使用,否则创建
[ ! -d "$BACKUP_DIR"  ]  && mkdir -p "$BACKUP_DIR" # 使用mysqldump命令备份所有数据库SQL文件并指定目录
mysqldump --all-databases --single-transaction -h$HOST -u$USER -p$PASSWORD  > $BACKUP_FILE# 如果需要压缩备份文件,可以取消下面的注释
# gzip $BACKUP_FILE# 删除30天前的备份文件,取消注释以下行以启用
find $BACKUP_DIR -name "all_databases_*.sql*" -type f -mtime +30 -delete
[ $? -eq 0 ] && echo "-----------------数据备份成功 $DATE-----------------" || echo "-----------------数据备份失败-----------------"

二、赋予脚本执行权限

把编写好的脚本上传到服务器,目录自己定,修改成你的就行,然后赋予刻执行权限

chmod +x /mnt/sdc/shell/mysql_backup.sh 

 

三、设置cron任务

修改系统自带的定时任务文件,编辑crontab文件来安排定时任务

#-e是执行创建定时任务命令
crontab -e

在打开的crontab文件中添加以下行来安排每天24点(即午夜)执行备份脚本:

0 0 * * * /mnt/sdc/shell/backup_database.sh
*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----------星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------------月份 (1 - 12) 
|    |    +--------------------一个月中的第几天 (1 - 31)
|    +-------------------------小时 (0 - 23)
+------------------------------分钟 (0 - 59)

 

保存并关闭文件。

现在,cron将每天在指定的时间自动执行备份脚本,所有MySQL数据库都会被备份到指定的目录。

 

注意:

  • 确保MySQL服务器允许远程访问,如果脚本在远程服务器上运行。
  • 如果备份文件很大,考虑使用mysqldump--single-transaction选项来备份InnoDB表,以获得一致的备份而不锁定表。
  • 考虑使用mysqldump--master-data选项来记录二进制日志位置,这对于点时间恢复很有用。
  • 定期检查备份文件的可恢复性,并确保有足够的磁盘空间来存储备份。

四、参考文献

MYSQL数据备份之mysqldump命令详解(附脚本定时备份)-CSDN博客 

使用Shell脚本,实现备份MySQL数据库_sh mysql.sh-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com