Mysql数据库完全备份与恢复

数据库备份的重要性

  1. 提高系统的高可用性和灾难可恢复性,在数据库系统崩溃时,没有数据备份就没法找到数据。
  2. 使用数据库备份还原数据库,是数据库崩溃时提供数据恢复最小代价的最优方案。
  3. 没有数据库就没有一切,数据库备份是一种防范灾难的强力手段。

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中又没有库时,若直接恢复,会失败,必须先创建库,然后再进行恢复。

猜你喜欢

转载自blog.51cto.com/13620950/2153397