linux 备份mysql

1、备份数据库的脚本

#!/bin/sh
# mysql data backup script
# use mysqldump --help,get more detail.
BakDir=/home/mysql/backup-db/data
LogFile=/home/mysql/backup-db/log/backup-db.log
DATE="$(date +"%Y%m%d-%H%M%S")"
echo " " >> $LogFile
echo " " >> $LogFile
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
cd $BakDir
DumpFile=$DATE.sql
GZDumpFile=$DATE.sql.tar.gz
#/usr/local/bin/mysqldump -u root -p123456 --database -h 127.0.0.1 db> $DumpFile
mysqldump -uroot -p123456 --databases mysql> /home/mysql/backup-db/data/$DumpFile
echo "Dump Done" >> $LogFile
tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1
echo "[$GZDumpFile]Backup Success!" >> $LogFile
rm -f $DumpFile
#cd $BakDir/daily
cd $BakDir
echo "Backup Done!"
echo "please Check $BakDir Directory!"
echo "copy it to your local disk or ftp to somewhere !!!"
find $BakDir -ctime +30 -exec rm {} ;
echo "delete file over 30 days"

2、设置crontab,每天定时切割
首先需要确定你的服务器有没有安装crontab的服务,输入crontab -e命令,有反应就安装了。
如果没有安装,运行yum install vixie-cron 一键安装。
输入crontab -e命令,输入下面的内容:
00 00 * * * /bin/bash /usr/local/nginx/sbin/cut-log.sh  
1)、00 03意思为00分03点,也就是凌晨0点,后面“ * * * ”为“ 日 月 年 ”无需定义
2)、” /usr/local/nginx/sbin/cut-log.sh “为你的shell的路径,也就是说每天零点的时候执行这个shell。

OK !大功告成,每天的0时就会自动完成日志的切割并存在相应的以日期命名的目录中。

然后测试。把时间改为离你现在最近的时间。

### 如何在Linux系统下备份MySQL数据库 在Linux系统中,备份MySQL数据库是一项重要的日常任务。以下是几种常见的方法和工具来完成这一操作。 #### 使用 `mysqldump` 命令备份 MySQL 数据库 `mysqldump` 是一种常用的命令行工具,用于将整个数据库或单个表导出到 SQL 文件中。通过这种方式,可以轻松实现数据库的备份并将其迁移到其他服务器。 执行以下命令即可创建一个完整的数据库备份: ```bash /usr/bin/mysqldump -u 用户名 -p 密码 数据库名 > 备份文件.sql ``` 如果希望压缩备份文件以节省存储空间,则可以在命令后面追加 `gzip` 工具: ```bash /usr/bin/mysqldump -u 用户名 -p 密码 数据库名 | gzip > 备份文件.sql.gz ``` 此方法简单高效,适合中小型数据库环境[^1]。 #### 利用 tar 归档方式备份 MySQL 安装目录 对于某些特定场景(如在同一主机内部迁移),可以直接打包 MySQL 的数据目录作为另一种形式的数据保护措施。例如,在 Ubuntu 系统上安装了 MySQL 后,默认情况下其数据通常位于 `/var/lib/mysql/` 路径下;此时可以通过如下指令快速复制全部内容至目标位置: ```bash tar zcvf mysql_backup.tar.gz /var/lib/mysql/ ``` 这种方法虽然方便快捷,但它可能不适用于跨版本或者不同硬件架构之间的移植需求[^2]。 #### 自动化定时任务设置 (Cron Jobs) 为了确保定期自动完成上述任何一种类型的备份过程,还可以配置 Linux cron jobs 来安排周期性的作业计划。比如每天凌晨两点钟运行一次 mysqldump 并存放到指定路径下的例子如下所示: 编辑用户的 crontab 配置文件(`crontab -e`) 添加一行新条目: ``` 0 2 * * * /usr/bin/mysqldump -u root -prootpassword dbname | gzip > /path/to/backups/dbname_$(date +\%F).sql.gz ``` #### 其他高级选项 – 二进制日志(Binary Logs) 和增量备份 除了全量逻辑备份外,还有基于物理级别的解决方案可供选择——启用 master-slave replication 结合 binary logging 功能记录所有的 DDL/DML 变更事件,从而支持细粒度的时间点恢复(Time Point Recovery),即仅需重放部分事务即可还原某个时间戳前后的状态变化情况。 具体做法涉及开启 binlog 参数以及利用专门的应用程序读取解析这些二进制格式的日志文件再导入新的实例里去重现历史活动轨迹[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值