MYSQL数据库的备份与恢复
数据库作为一个存储数据的"强大容器",在整个项目中所担任的角色绝对是主角。它牵涉着整个系统的安全以及稳定。一个公司运行的长久与否,与数据库中数据量的大与小有着很大的关系。一个数据库存储的数据越多,很大程度上反应出该数据库的强大和稳定。比如淘宝网,京东商城等,这些电子商务平台,每天都会有几十万,几百万乃至上千万的交易量,这些数据如果放入到数据库中,那是非常庞大的一个数据集。而保障这些高量数据集能够安全并且稳定运行的根源之一就是来自于数据库的日常精心管理和维护。其中对数据库的备份与恢复可谓是重中之重了。当系统在奔溃时,能尽最大可能对已备份数据库进行恢复,使损失降低到最小。
下面通过MySql数据库来理解数据库的备份策略以及恢复。
MySql数据库的备份策略
•增量备份
增量备份的原理使用了mysql的二进制日志,所以我们必须启用二进制日志功能,每日定时用 mysqladmin flush-log 创建新日志,记录新增的数据 信息,同时要结束上一次日志的记录,并且把上次的记录日志备份。
•整体备份(完全备份)
整体备份是对增量备份的
备份的类型
1.以表为单位:mysqldump -u数据库用户名 -p数据库密码 数据库名 数据库表1 数据库表2... -> 指定路径
例如:mysqldump -uroot -proot table1 table2 table3... > D:\\mydbt.sql
2.以库为单位:mysqldump -u数据库用户名 -p数据库密码 -B 数据库1 数据库2 数据库3...-> 指定路径
例如:mysqldump -uroot -proot -B db1 db2 db3 ... > D:\\mydbd.sql
3. 备份全部库:mysqldump -u数据库用户名 -p数据库密码 -A -> 指定路径
例如:mysqldump -uroot -proot -A > D:\\mydba.sql
以上三种的区别: 1和2之间的区别是,在备份 mydbt.sql 中没有操作库的语句,而在D:\\mydbd.sql中有操作库的语句,
例如:CREATE DATABASE /*!32312 IF NOT EXISTS*/ `examsystemdb` /*!40100 DEFAULT CHARACTER SET utf8 */;
而 2和3之间的区别是,3是对所有的库进行了备份。
MySql数据库的恢复
1. 进入MySql命令行
a. 库级备份恢复:source 库级备份存储路径
例如:mysql>source D:\\mydbd.sql;
b. 表级备份恢复:
首先切换到需要恢复的数据库:use 数据库名,然后 source 表级备份存储路径
例如:mysql>source D:\\mydbt.sql;
2.在DOS下直接进入
a. 库级备份恢复: mysqldump -u数据库用户名 -p数据库密码 > 备份存储路径
例如:mysqldump -uroot -proot > D:\\mydbd.sql;
b. 表级备份恢复:mysqldump -u数据库用户名 -p数据库密码 数据库名> 备份存储路径
例如:mysqldump -uroot -proot mydb > D:\\mydbt.sql;

浙公网安备 33010602011771号