数据库备份的重要性
提高系统的高可用性和灾难可恢复性, 在数据库系统崩溃时, 没有数据备份就没法找到数据.
使用数据库备份还原数据库, 是数据库崩溃时提供数据恢复最小代价的最优方案.
没有数据库就没有一切, 数据库备份是一种防范灾难的强力手段.
1. 完全物理备份
1.1 使用 tar 打包文件夹备份
数据库压缩时会使用压缩率较大的 xz 格式压缩.
- rpm -q xz // 检查 xz 软件包是否安装
- yum -y install xz // 安装 xz 软件包
1.2 对数据库文件夹 / usr/local/mysql/data/ 压缩打包
- tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/
- // 备份数据库文件夹, 并以年月日的形式命名
1.3 如果数据库文件损失, 可以解压缩备份文件进行恢复
tar Jxvf /opt/mysql-2018-08-01.tar.xz /usr/local/mysql/data/
2. 使用 mysqldump 工具备份
2.1 备份某个数据库
mysqldump -u root -p[密码] [选项] [数据库名] [表名]> / 备份路径 / 备份文件名
// 备份库到目录下,-p 之后可跟密码, 也可不写. 不写就在回车之后输入密码验证. 备份文件后缀都为. sql,
2.2 创建一个数据库 school, 对 school 库的 info1,info2 表备份
mysqldump -u root -p123123 school info1 info2> /opt/info.sql
2.3 备份多个数据库
mysqldump -u root -p --databases mysql stady> /opt/mysql-stady.sql
2.4 备份所有数据库
mysqldump -u root -p --opt --all-databases> /opt//all.sql
2.5 备份数据库中的表
mysqldump -u root -p stady info> /opt/stady-info.sql
2.6 备份数据库的表结构
mysqldump -u root -p -d stady info> /opt/decribe-info.sql // -d 库名 + 表名
3. 恢复数据库
3.1 登录 Mysql 恢复
- drop database school; // 先删除损坏的 school 库
- source /opt/school.sql
使用 mysql 命令恢复
- drop database school; // 先登录 mysql 删除损坏的 school 库
- create database school; // 再重新创建库
- exit; // 退出 mysql
- mysql -u root -p123123 school < /opt/school.sql
3.2 恢复表操作
和恢复数据库相同
mysql -u root -p stady < /opt/stady-info.sql
但在恢复数据表时要注意, 如果备份文件中只备份了表文件, 此时 mysql 中又没有库时, 若直接恢复, 会失败, 必须先创建库, 然后再进行恢复.
来源: http://www.bubuko.com/infodetail-2710674.html