Mysql数据库备份与恢复讲析
本文主要给大家介绍MySQL数据库备份与恢复讲析,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在创新互联行业资讯里面关注我的更新文章的。
十年的班戈网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整班戈建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“班戈网站设计”,“班戈网站推广”以来,每个客户项目都认真落实执行。
数据库备份的重要性
在生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果。数据备份的重要性主要体现在;
(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完全备份
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
2,使用mysqldump工具备份
前面介绍的对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
Mysqul数据完全恢复
当需要恢复数据库的时候,可以使用source命令和mysql命令
1,source命令整库恢复
在库school已经备份的前提下进行恢复
mysqldump -u root -p school >/opt/school.sql
2,mysql命令整库恢复
同样也是在库school已经备份的前提下进行恢复
(1)mysqldump -u root -p school >/opt/school.sql #只备份库school里面的表内容,而库本身school没有备份,恢复数据时则要先创建库school,才能恢复
(2)mysqldump -u root -p --databases school >/opt/school01.sql #连同库school本身和里面的表都会备份,恢复时直接恢复即可
恢复表操作
1,使用source命令恢复表
在数据表已经备份的前提下进行恢复操作
mysqldump -u root -p school info >/opt/info.sql
2,使用mysql恢复数据表
同样也是在数据表已经备份的前提下进行恢复操作
mysqldump -u root -p school info >/opt/info.sql
mysql -u 用户名 -p 密码 库名 库备份脚本的路径
看了以上关于Mysql数据库备份与恢复讲析,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。
当前文章:Mysql数据库备份与恢复讲析
文章地址:http://scyanting.com/article/jshdpi.html