MySQL完全备份
数据库备份方式
数据库备份的重要性
在生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果。
数据库备份的重要性主要体现在:
- 提高系统的高可用性和灾难可恢复性,在数据库系统崩溃时,没有数据库备份就没法找到数据
- 使用数据库备份还原数据库,是数据库崩溃时提供数据恢复最小代价的最优方案
- 没有数据就没有一切,数据库备份是一种防范灾难的强力手段
使用数据库的过程中,有多种原因造成数据的丢失:
- 程序错误:指对数据库操作的程序难免有些错误,造成数据丢失
- 人为错误:指由于使用人员的误操作造成的数据被破坏,还有可能是黑客对系统攻击造成的数据丢失等
- 计算机失败:指运行数据库的服务器操作系统或软件损坏,有可能造成数据的损坏
- 磁盘失败:指硬盘等存储数据的硬件设备,长时间运行后可能损坏,造成数据丢失
- 灾难(如火灾、地震)和偷窃:指自然灾害等的发生,有可能造成数据丢失。
数据库备份的分类
- 物理备份:指对数据库操作系统的物理文件(如数据文件、日志文件等)的备份。物理备份又可以分为脱机备份(冷备份)和联机备份(热备份)
- 冷备份:在关闭数据库时进行备份操作,能够较好的保证数据库的完整性
- 热备份:在数据库运行状态中进行操作,这种备份方法依赖于数据库的日志文件
- 逻辑备份:指对数据库逻辑组件(如表等数据库对象)的备份
- 完全备份:每次对数据进行完整的备份
- 差异备份:备份那些自从上次完全备份之后被修改过的文件,只备份数据库部分的内容
- 增量备份:只有那些在上次完全备份或者增量备份后被修改过的文件才会被备份
完全备份的概念
- 完全备份是对整个数据库的备份、数据库结构和文件结构的备份
- 完全备份保存的是备份完成时刻的数据库
- 完全备份是增量备份的基础
完全备份的优点
- 备份与恢复操作简单方便
完全备份的缺点
- 数据存在大量的重复
- 占用大量的备份空间
- 备份与恢复时间长
mysqkdump备份
- 使用mysqldump命令对某些表进行完全备份,命令格式:
msyqldump -u 用户名 -p 密码 选项 数据库名 数据表名>/备份路径/备份文件名
范例:
mysqldump -uroot -p123456 wordpress users > /opt/wordpress_users.sql
- 使用mysqldump命令对单个库进行完全备份,命令格式:
mysqldump -u 用户名 -p 密码 选项 数据库名>/备份路径/备份文件名
范例:
mysqldump -uroot -p123456 wordpress>/opt/wordpress.sql
- 使用mysqldump命令对多个库进行备份
mysqldump -u 用户名 -p 密码 选项 --databases 库名1 库名2...>/备份路径/备份文件名
范例:
mysqldump -uroot -p123456 --databases wordpress mysql>/opt/wp+mysql.sql
- 使用mysqldump命令对所有库进行完全备份
msyqldump -u 用户名 -p 密码 选项 --all-databases>/备份路径/备份文件名
范例:
msyqldump -uroot -p123456 --all-databases>/opt/all_of_mysql.sql
- 使用mysqldump命令也可以直接备份表结构,
使用选项 -d
mysqldump -u 用户名 -p 密码 -d 数据库名 表名>/备份路径/备份文件名
范例:
mysqldump -uroot -p123456 -d mysql user >/opt/user_null.sql
MySQL完全恢复
source命令整库恢复
登录MySQL后,可以使用source命令进行整库恢复
source 备份脚本路径
MySQL命令整库恢复
不登录MySQL,使用mysql命令恢复库text
mysql -u 用户名 -p 密码 < 库备份脚本的路径
恢复表操作
恢复数据表同样可以使用source和mysql命令操作
- 登录mysql,使用source命令恢复表
use 库名;
source 表备份脚本的路径;
- 不登录mysql,使用mysql命令恢复表
mysql -u 用户名 -p 密码 库名 < 库备份脚本的路径
MySQL备份思路
- MySQL需要定期实施备份,制定合适的备份计划或者策略,并严格遵守。除了进行完全备份,开启Mysql服务器的日志功能也很重要,完全备份加上日志,可以对Mysql进行最大化还原
- 备份文件的名字需要使用统一和易理解的名称