本文主要给大家介绍Mysql数据库备份与恢复讲析,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在亿速云行业资讯里面关注我的更新文章的。
(1)提高系统的高可用性和灾难可恢复性,在数据库系统崩溃时,没有数据库备份就没法恢复数据
(2)使用数据库备份还原数据库,是数据库崩溃时提供数据恢复最小代价的最优方案,如果让用户重新添加数据,未免代价太大
(3)没有数据就没有一切,数据库备份是一种防范灾难的强有力手段
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的数据库文件默认都是保存在安装目录的data文件夹下,可以直接保存data文件夹,但是占用的空间大,所以使用tar打包压缩进行保存
(1)数据库文件很大,要使用压缩率较大的xz格式,
yum -y install xz #安装压缩工具xz
tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data #选项为大写字母J
前面介绍的对Mysql整个数据库目录压缩的方式,是备份数据库中所有内容。使用mysqldump工具可以更加灵活的控制备份的内容,比如某几个表或库都可以单独备份。备份之后的文件是一个sql脚本,.sql结尾是固定格式
(1)备份表数据
mysqldump -u 用户名 -p 密码 选项 数据库名 表名 > /备份路径/备份文件名
mysqldump -u root -p school info >/opt/info.sql
(2)单个库备份
mysqldump -u 用户名 -p 密码 选项 数据库名 >/备份路径/备份文件名
mysqldump -u root -p school >/opt/school.sql
(3)多个库备份
mysqldump -u 用户名 -p 密码 选项 --databases 库名1 库名2 >/备份路径/备份文件名
mysqldump -u root -p --databases kgc school >/opt/school_kgc.sql
(4)对所有库进行完全备份
mysqldump -u 用户名 -p 密码 选项 --all-databases >/备份路径/备份文件名
mysqldump -u root -p --all-databases >/opt/all.sql
(5)备份表结构
mysqldump -u 用户名 -p 密码 -d 数据库名 表名 >/备份路径/备份文件名
mysqldump -u root -p -d school info >/opt/info-d.sql
当需要恢复数据库的时候,可以使用source命令和mysql命令
在库school已经备份的前提下进行恢复
mysqldump -u root -p school >/opt/school.sql
同样也是在库school已经备份的前提下进行恢复
(1)mysqldump -u root -p school >/opt/school.sql #只备份库school里面的表内容,而库本身school没有备份,恢复数据时则要先创建库school,才能恢复
(2)mysqldump -u root -p --databases school >/opt/school01.sql #连同库school本身和里面的表都会备份,恢复时直接恢复即可
在数据表已经备份的前提下进行恢复操作
mysqldump -u root -p school info >/opt/info.sql
同样也是在数据表已经备份的前提下进行恢复操作
mysqldump -u root -p school info >/opt/info.sql
mysql -u 用户名 -p 密码 库名 </库备份脚本的路径
看了以上关于Mysql数据库备份与恢复讲析,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。