数据库备份与恢复

发布时间 2023-11-23 14:59:03作者: 克峰同学

生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果

造成数据丢失的原因:程序错误、误操作 (占比最大)、计算机失败、磁盘失败、物理灾难

选择备份的依据是:丢失数据的代价与确保数据不丢失的代价之比


数据库备份分类

物理与逻辑区分

物理备份:指对数据库操作系统的物理文件(如数据文件、日志文件等)的备份。

  • 脱机备份(冷备份:在关闭数据库时进行的备份操作,能够较好地保证数据库的完整性)

  • 联机备份(热备份:在数据库运行状态中进行操作,这种备份方法依赖于数据库的日志文件)

逻辑备份:指对数据库的逻辑组件(如表等数据库对象)的备份

策略角度区分

完全备份:对整个数据库的备份,数据库结构的备份

差异备份:备份那些自从上次完全备份之后被修改过的文件

增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份


备份方式比较

备份方式 完全备份 差异备份 增量备份
完全备份时的状态 表1、表2 表1、表2 表1、表2
第1次添加内容 创建表3 创建表3 创建表3
备份内容 表1、表2、表3 表3 表3
第2次添加内容 创建表4 创建表4 创建表4
备份内容 表1、表2、表3、表4 表3、表4 表4

逻辑备份工具(mysqldump)

逻辑备份工具, 适用于所有的存储引擎, 支持温备、完全备份、部分备份、对于InnoDB存储引擎支持热备

备份数据库

在com窗口中(未登录状态下),可以通过如下命令对指定的数据库进行备份

mysqldump -u 用户名 -p 数据库名字 > 备份文件的位置\备份文件的文件名.sql
//备份单个库
mysqldump -u root -p mybank > G:\bf.sql

//备份所有库
mysqldump -u root -p --mybank--student > G:\bf.sql

//最后输入密码即可

img

注意没有提示就是备份成功!

恢复数据库

在com窗口中(未登录状态下),可以通过如下命令对指定的数据库进行恢复

mysql -u 用户名 -p 数据库名字 < 备份文件的位置\备份文件的文件名.sql
--已登录状态
create database mybank utf8;
--未登录状态
mysql -u root -p mybank < G:\bf.sql