数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果。轻则程序逻辑出现BUG,重则程序崩溃,数据丢失。造成数据丢失的原因,主要有程序错误、人为错误、计算机失败、磁盘失败、灾难(如起火、地震)和偷窃。
数据库日常备份工作就显得非常重要。有了备份,就是在出现问题时,及时恢复。备份数据库备份的分类:
从物理与逻辑的角度,备份可分为
物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份
物理备份又可以分为脱机备份(冷备份)和联机备份(热备份)
冷备份:是关闭数据库的时候进行的
热备份:数据库处于运行状态,这种备份方法依赖于数据库的日志文件
逻辑备份:对数据库逻辑组件(如表等数据库对象)的备份
从数据库的备份策略角度,备份可分为
完全备份:每次对数据进行完整的备份
差异备份:备份那些自从上次完全备份之后被修改过的文件
增量备份:只有那些在上次完全备份或者增量备份后修改的文件才会被备份
MySQL完全备份
完全备份是对整个数据库的备份、数据库结构和文件结构的备份
完全备份保存的是备份完成时刻的数据库
完全备份是增量备份的基础
完全备份的优点
备份与恢复操作简单方便
完全备份的缺点
数据存在大量的重复
占用大量的备份空间
备份与恢复时间长
下面就是一个自动备份数据的脚本内容,供参考.
--------------------- bakTime=$(date "+%Y_%m_%d_%H") fileName=${bakTime}_bak.sql echo $fileName mysqldump -ureversi -p1qaz2wsx reversi_mapping > /usr/local/db_bak/$fileName 2> /usr/local/db_bak/log/$fileName.log find /usr/local/db_bak/*.sql -name "*_bak.sql" -mtime +3 -exec rm -rf {} \; //文件保留3天,则+3,对应修改即可.
以上脚本存为文件mysql_dump.sh
并能文件加上权限 chmod +x mysql_dump.sh
接下来,将该脚本,加入crontab中,让其定时()每日23:00执行即可.
vim /etc/crontab
在该文件的最后加上如下内容.
30 23 * * * root /root/my_shell/mysql_dump.sh