微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mysql数据库备份与恢复讲析

本文主要给大家介绍Mysql数据库备份与恢复讲析,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在编程之家行业资讯里面关注我的更新文章的。

数据库备份的重要性

在生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果。数据备份的重要性主要体现在;

(1)提高系统的高可用性和灾难可恢复性,在数据库系统崩溃时,没有数据库备份就没法恢复数据

(2)使用数据库备份还原数据库,是数据库崩溃时提供数据恢复最小代价的最优方案,如果让用户重新添加数据,未免代价太大

(3)没有数据就没有一切,数据库备份是一种防范灾难的强有力手段

Mysql数据库备份与恢复讲析

造成数据丢失的原因:

1)程序错误

2)人为误操作

3)计算机失败(系统崩溃)

4)磁盘失败

5)灾难(如火灾,地震)和偷窃

数据库备份的分类

(1)物理备份;指对数据库操作系统的物理文件(如数据文件,日志文件等)的备份。物理备份又可以分为脱机备份(冷备份)和联机备份(热备份)

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

          热备份:在数据库运行状态中进行备份,这种备份方法依赖于数据库的日志文件

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

数据库备份策略角度,备份可分为完全备份,差异备份和增量备份

         1)完全备份:每次对数据进行完整的备份。可以备份整个数据库,包含用户表,系统表,索引,视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间。所以,做一次完全备份的周期要长些

         2)差异备份:备份那些自从上次完全备份之后被修改过的文件,只备份数据库部分内容,它比最初的完全备份小,因为只包含自上次完全备份以来所改变的数据库,优点是存储和恢复速度快

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

举例  create database school;

      create table info(id int, nsme char(10));

      insert into info values(1,’qw’);

     --------------完全备份-------------------------

       insert into info values(2,’as’);

---------------------增量备份--------------------------

       insert into info values(3,’zs’);

------------------增量备份和差异备份-----------------

        insert into info values(4,’er’);

这次增量备份只备份4,而差异备份则备份2,3,4

差异备份只备份上次完全备份之后的内容

增量备份则备份基于上次备份之后增加的部分进行备份

MysqL完全备份

1,使用tar打包文件夹备份

MysqL数据库文件认都是保存在安装目录的data文件夹下,可以直接保存data文件夹,但是占用的空间大,所以使用tar打包压缩进行保存

(1)数据库文件很大,要使用压缩率较大的xz格式,

yum -y install xz         #安装压缩工具xz

tar Jcvf /opt/MysqL-$(date +%F).tar.xz /usr/local/MysqL/data       #选项为大写字母J

Mysql数据库备份与恢复讲析

 

Mysql数据库备份与恢复讲析

2,使用MysqLdump工具备份

前面介绍的对MysqL整个数据库目录压缩的方式,是备份数据库中所有内容。使用MysqLdump工具可以更加灵活的控制备份的内容,比如某几个表或库都可以单独备份。备份之后的文件一个sql脚本,.sql结尾是固定格式

(1)备份表数据

MysqLdump -u 用户名 -p 密码 选项 数据库名 表名 > /备份路径/备份文件

MysqLdump -u root -p school info >/opt/info.sql

Mysql数据库备份与恢复讲析

(2)单个库备份

MysqLdump -u 用户名 -p 密码 选项 数据库名 >/备份路径/备份文件

MysqLdump -u root -p school >/opt/school.sql

Mysql数据库备份与恢复讲析

(3)多个库备份

MysqLdump -u 用户名 -p 密码 选项 --databases 库名1 库名2 >/备份路径/备份文件

MysqLdump -u root -p --databases kgc school >/opt/school_kgc.sql

Mysql数据库备份与恢复讲析

(4)对所有库进行完全备份

MysqLdump -u 用户名 -p 密码 选项 --all-databases >/备份路径/备份文件

MysqLdump -u root -p --all-databases >/opt/all.sql

Mysql数据库备份与恢复讲析

(5)备份表结构

MysqLdump -u 用户名 -p 密码 -d 数据库名 表名 >/备份路径/备份文件

MysqLdump -u root -p -d school info >/opt/info-d.sql

Mysql数据库备份与恢复讲析

Mysqul数据完全恢复

当需要恢复数据库的时候,可以使用source命令和MySQL命令

1,source命令整库恢复

在库school已经备份的前提下进行恢复

MysqLdump -u root -p school >/opt/school.sql

Mysql数据库备份与恢复讲析

 

Mysql数据库备份与恢复讲析

2,MySQL命令整库恢复

同样也是在库school已经备份的前提下进行恢复

(1)MysqLdump -u root -p school >/opt/school.sql   #只备份库school里面的表内容,而库本身school没有备份,恢复数据时则要先创建库school,才能恢复

Mysql数据库备份与恢复讲析

 

Mysql数据库备份与恢复讲析

 

(2)MysqLdump -u root -p --databases school >/opt/school01.sql     #连同库school本身和里面的表都会备份,恢复时直接恢复即可

Mysql数据库备份与恢复讲析

Mysql数据库备份与恢复讲析

恢复表操作

1,使用source命令恢复表

在数据表已经备份的前提下进行恢复操作

MysqLdump -u root -p school info >/opt/info.sql

Mysql数据库备份与恢复讲析

Mysql数据库备份与恢复讲析

2,使用MysqL恢复数据表

同样也是在数据表已经备份的前提下进行恢复操作

MysqLdump -u root -p school info >/opt/info.sql

MysqL -u 用户名 -p 密码 库名 </库备份脚本的路径

Mysql数据库备份与恢复讲析

看了以上关于MysqL数据库备份与恢复讲析,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐