2019/04/20 数据库备份和还原

在这里插入图片描述
备份的方案有很多种,不同的方式来进行组合,比如完全和增量
在这里插入图片描述
MySQLdump是系统自带的备份工具,可以实现逻辑备份,就是把数据库里的数据查询出来,导入到sql脚本里,进行备份,支持冷备,温备,热备,主要和你的存储引擎有关
cp,tar是复制文件,需要服务器停机,冷备
LVM快照就是当系统发生变化的时候,开辟这个空间里的到快照
在这里插入图片描述
在这里插入图片描述
查看备份工具的使用
重点掌握mysqldump和xtrabackup

在这里插入图片描述
schema就是创建数据库和表的定义和一些存储过成函数,mysqldump都是备份下来的
这个文件其实就是数据库文件备份下来的

在这里插入图片描述
这就是用mysqldump备份下来的文件
在这里插入图片描述
这个工具适合相对管理不是十分大的数据库,备份的效率是不是很高的
在这里插入图片描述
来自于哪个数据包
在这里插入图片描述
在这里插入图片描述
第一个是单表备份。
第二个是挑数据库备份
第三个是完全备份

在这里插入图片描述
在这里插入图片描述
-A用的是比较多的,因为mysql的权限用户都需要备份
在这里插入图片描述
这种方法备份是相对逻辑的备份,性能不是很好的
在这里插入图片描述
先试试简单的备份,停机冷备份,cp
在这里插入图片描述
,把hellodb备份,需要先停服务
在这里插入图片描述
把服务停了,系统会把数据都提交,所以拷贝的是一个完整的数据库
在这里插入图片描述
如果想要全部备份
在这里插入图片描述
冷备方法适合允许服务器停机的状态下
在这里插入图片描述
把文件拷贝到远程主机上,如果服务器宕机,如何还原
进行破坏

在这里插入图片描述
还原数据
在这里插入图片描述
路径有问题
在这里插入图片描述
权限默认是对的
在这里插入图片描述
在这里插入图片描述
数据还原了就可以重启服务了
在这里插入图片描述
在这里插入图片描述
重点mysqldump,做一个备份
在这里插入图片描述
把hellodb这个数据库备份下来
在这里插入图片描述
事实上是把数据库所有内容进行查询,默认情况下还没进行备份,只是在屏幕上打印
在这里插入图片描述
创建专门备份的文件夹
在这里插入图片描述
在这里插入图片描述
备份文件,这个文件放的就是刚才屏幕上显示的一套
在这里插入图片描述
加了写锁,别人就不能往里面写了
在这里插入图片描述
本质上系统判断数据库存在就帮你删除,然后把备份的数据插入到数据库里
在这里插入图片描述
你在第一张表,备份花了十分钟,中间辨别的用户不能写,但是有可能有些用户在改第二张表,因为第二张表当时还没锁
但是改完了第一张表到第二张的时候,别的用户有可能取改第一张表了
就会造成两张表备份的时间点不一致

在这里插入图片描述
合格备份的时候并没有把创建数据库的语句备份进去
在这里插入图片描述
没有把创建数据库的语句备份下来
在这里插入图片描述
删除原来数据库,所以直接这么导会报错
在这里插入图片描述
所以这种方式备份不是很好
如果恢复的数据库不存在,可以手动创建,名字可以不一样
不是你创建的数据库,,你就不知道怎么创建的

在这里插入图片描述
指定数据库还原
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
确认有数据
在这里插入图片描述
但是这个是我们知道数据库的情况下,但是有些你并不知道数据库怎么创建的
所以这种方式是很不合理的备份方法
所以尽量用-B选项,可以挑选性的备份某数据库

在这里插入图片描述
-不加-B就是备份数据库表名
在这里插入图片描述
只有student没有其他表
在这里插入图片描述
认为某张表比较重要就可以用这个命令把单个表备份下来
-B就代表要进行-B选项的备份,
在这里插入图片描述
因为这里有创建数据库的语句,当初怎么创建的,-B会把定义结构也备份下来
在这里插入图片描述
加入把hello数据库删除,怎么还原
在这里插入图片描述
只需要这样,不需要再去手动创建了
在这里插入图片描述
在这里插入图片描述
这样就方便数据库备份下来,省的没有备份结构
在这里插入图片描述在这里插入图片描述
-E就等于一些计划任务,
event scheduler,事件调度器
-R就是一些存储过程和函数的一些

事实上在备份的 时候也可以考虑把mysql备份下来
更多的时候
数据库备份的时候都是很重要的,都需要备份下来 -A

在这里插入图片描述
全备份是否会加上create database的语句呢
在这里插入图片描述
有创建语句
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把系统数据库创建了,那么如何恢复
先停止服务,删除所有的数据库

在这里插入图片描述
然后再启动起来才能访问
在这里插入图片描述
还原,就把所有东西都还原了
在这里插入图片描述
备份的时候,文件有点大,想要压缩一下,连备份接压缩
在这里插入图片描述
正常生产中 要加-u -p用户和口令的,小了好几倍
在这里插入图片描述
还原,gunzip解压和gzip -d都可以
在这里插入图片描述
由于刚才删除 了数据库表,需要先重启
在这里插入图片描述
在这里插入图片描述
现在想分库备份,因为每个数据库都是给一个小项目使用的
每个数据库单独做备份,备份到不同的文件中

在这里插入图片描述

-E扩展正则表达式(可以表示或者),v取反,-i不区分大小写
只备份下面的数据库

在这里插入图片描述
在这里插入图片描述
应该加gz后缀
在这里插入图片描述
现在先删除数据库
在这里插入图片描述
还原,先解压
在这里插入图片描述
就还原成功了
备份可以用脚本,还原最好用命令一条条还原
不用循环可以吗

在这里插入图片描述
在这里插入图片描述
然后执行就可以了,不过还欠缺-u -p,将来就实现了分库的备份
要压缩还需要做管道

在这里插入图片描述
最好加个年月日
sed '单引号,会默认里面的符号时普通符号
要用双引号

在这里插入图片描述
在这里插入图片描述
相当于备份的时候多了个 说明性的东西
在这里插入图片描述
1就是这条记录不注释掉,名字和位置,这个是跟主从复制相关的
在这里插入图片描述
在这里插入图片描述
2就是这行被注释掉了
在这里插入图片描述
这个加一下就能知道这个数据库备份是在什么时候进行备份的
在这个时间段进行的备份,这样就可以把之前的删除了

在这里插入图片描述
如果没有这一行,就不知道这是二进制哪里开始备份的
这个时间并不是很准确,因为这个文件可能拷贝到了其他的磁盘上了,时间有可能变了

在这里插入图片描述
这样就可以看到是在9上面备份的,之前的都是老旧的日志
在这里插入图片描述
一般借助于主从复制用1,如果只是备份建议2
在这里插入图片描述
-F一旦备份了以后,切换成新的日志了,意味新的日志往后放,老的日志往前放
在这里插入图片描述
为什么新增三个日志,刷新数据库,每备份一个数据库,就刷新一次操作
在这里插入图片描述
现在备份文件太多注释了,一般只是测试使用,生产不用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
刷新策略让权限生效
在这里插入图片描述
部分情况下会报错,-f就可以忽略继续执行
在这里插入图片描述
在这里插入图片描述
mysqldump本身默认就是对数据库进行查询,查询就需要到缓存里面去查询
但是实际上没必要去缓存查询
-q就可以跳过,直接备份,不要去缓存查询的数据

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值