00:01
大家好,欢迎大家继续收看上硅谷的LINK4运算视频,我是刘双老师。我们呢,这个把数据库的基本的增删改查命令和授权命令给大家讲完了,那么接下来我们要讲一下关于数据库的一些备份和还原,这个呢,其实在我们日常的一个呃,维护服务器的这么一个过程当中呢,是一个非常重要的过程,就是对于数据的备份是一个非常非常重要的一个过程。那之前我们在讲window Linux基础的时候,其实已经讲到过很多的备份策略了,那这次呢,我们专门来讲一下关于数据库的一些备份策略,OK。那数据库呢,是其实是自带了一些备份的工具啊,比如说my dump工具和它的my hot copy工具,这两个工具还是相对来说比较好用的工具,咱们简单来看一下它的一个使用方式。备份的时候呢,使用MySQL dump-U,然后呢用户名加。杠P指定数据库名,这个杠P并不是用来指定它,而是杠P是用来指定密码的。比如说我们的MySQL dump和登录的时候那个方式差不多的是MYSQL-U指定用户杠P址密码,然后后边指令你要将哪个数据库进行导出备份口号是向外导出备份的意思,然后后边你写你要备份到了那个具体的目录下,以及备份之后的那个备份文件名就可以了。
01:25
那其实呢,也可以写备份哪个库的哪个表也行,那也行,如果你要备份多个库呢,你就杠杠啊。写库一逗号库二,果你想备份所有库,就杠杠all,如果你想备份多个表,就库名表一表。这样倍数就不有。OK,那我们先来看一下备份啊,我们先来看一下备份。然后呢,退出注意啊,用的是MYSQL命令,而不是MYSQL里边的东西啊OK。
02:00
我们先来make第二下跟下的。MY。一个目录。然后呢,我们进行一个my dump。杠P123456。应该是123456啊。然后我要备份的裤脚。备份到的位置是根下的MY。告诉你是个目录,你要备份这个目录片叫什么?我们叫艾特硅谷点。是123123备注成功了,我们去看一下。大家看到我们这个地方多了一个叫at硅谷点circle文件。回想一下之前我们那个。讲我们的邮件的时候,我们是不是导入过两个数据库呀,啊,一个叫一个叫。
03:03
it.circle狗,那这那个S狗文怎么来的,就这么来的。啊,所文件就是这么来的。这个东西怎么用呢?假如说我们有另外一个机器上也有数据库的话,比如说我们二号机上这边说没有数据库,是不是连着一号机的数据库,假如说我们亚M-Y。Install一下。然后呢,安装一下杠server。然后你们把我们那个一零上备份出来的那个数据库文件拿到二零上来说,然后呢。给二零这个税库导入进去,那二零上是不是就直接有了,我们来尝试一下。导入数据库的方式。就MY。然后往哪个库里导,然后导入。呃,方向就是导入的那个方向号,导出是往右导。那个备份软件就可以了。然后我们来尝试一下。先把文件传过来啊,先把文件传过来。Iapp把这个文件传给root at192.168.88.20。
04:05
加入同步录像。Yes。转过去之后,我们呢,这边的数据库要ERVSE。Start一下。并且我们要进去啊,我们要进去进去干嘛呀,进去看一下。里边是没有S硅谷那个库的啊,OK,现在出去。我也不止库了,我也不止库了,为啥我们这个里边是嗯。我们本身这个S库就是个库,我们导入一下,哎,这个地方。Database select selected没有这个库,那么你得先进去创建这个库,然后再让他往这个库。想新登录一下。CDAABSE、9AT硅谷。然后窗帘。
05:01
然后出来,然后再重新导入。告诉他导入的,导入到那个叫艾特硅谷的库里边好了,倒入成功。然后进去。然后受DA。DATESE。然后切换到这个叫艾硅谷的库当中。然后瘦。Tables。然后我们看一下这个表里的内容。没有问题。备份出来的数据是完全可以使用的啊,备份出来的数据是完全可以使用的,OK,这就是我们的这个my dump,然后我们再来看一下我们的MY,呃,Hot copy啊。Copy其实这个我们主要是使用它的一些选项,什么杠杠flash log呀,呃,什么杠杠reject啊,这种工具主要是使用它,那其实呢,这个copy的一个第二大好处就是它可以在这个数据。
06:15
库工作的情况下进行一个数据备份。啊,进行备份OK。那你看它的还原方式啊,就是我们备份之后,我们都怎么还原啊,还原方式直接是把C直接是用CP-A的方式把备份了的目录放到数据库中下就可以了,那其实我告诉你my coffee。的备份方式和。这样备份是一样的,怎么备份啊。根下的洼下的lib下的MY这个目录。是不是就是我们那个数据库的数据目录呀。硅谷这个目录就是MYSQL数据库里那个。那个库。那想它很简单,直接CP-A。
07:02
At硅谷。扔到根下。跟一下那个艾就是备分。跟一下那个就备份。那如果里边那个丢了啊,如果里面。家里边是不是有个艾特硅谷RM-F特硅谷删掉了。啊,删掉了吧,然后呢,我们登录一下。了吧,瘦。但是你看着啊。我MV把根下的艾特硅谷挪到根下的袜下,列下的MY下。我在等你。明白意思。意思。也就说我们直接把刚才那个下下那个目录拿走的话,就相当于备份了。
08:06
如果丢了再拷贝回来就相当于恢复了,这就是马copy的那个原理,但是只是它更好一些,还有一些什么刷新数据库日志等等这种功能。来更好一些,那下边呢,这个ma dump和ma ho的一个事例,刚才其实我已经给大家演示过了啊,演过了,那大家要照着这个去做一下。要照着这个去做一下,就是这些命令要去多敲几遍啊。那关于它的这个叫杠杆GSP的功能是什么呢?就是正则表达式,那正则表式看一下这个东西是什么意思啊,就是连续啊三个A开头的数据。连续三个AK水果。你们连续三个A这个地方,其实这个解释不对啊,就是我们,呃,里边呢,就是。开头是A的啊,开头是A的,只要备份开头是A的就行了,但是我们这个库里边儿是有三个连续。就是有三个是EA开头的,所以这个地方就是什么呢。
09:03
我们为了。做实验能看到效果。我们。咱们在做这个备份之前,手动的去创建三个A开头的数据库。或者是表也行啊。然后呢,用这个杠XP的方式去匹配正则匹配这个以A开数据库。就这个意思啊,我们是刻意做这个事儿的啊,OK。这个实验我就不给大家这个呃演示了啊,我们刚才已经演示过了,然后呢,我们来说一下关于这个my circle的blog日志这个功能啊。那MySQLo日志呢,是MYSQL数据库日志模式当中的一种新的一种模式啊,一种模式,那这个MYSQL的这种变日志,它只记录什么呢?只记录所有的数据库。状态更改的搜索,什么create drop update呀,只记录这些东西什么?什么这种授权之类的,只记录这些东西,其他的是一概不记录的,什么查询啊,这些不记录啊,只记录更改操作。
10:04
然后呢,怎么开启二进制呢,开启二进制防水表进来。修改MYSQL的配置文件啊,然后呢,在里边加入一句话叫log-B等于MYS-B就可以了,Log-B等于MY-B就可以了。看一下默认的情况是没有没有。想着呢,先把水果停掉。然后去修改。然后呢,加入一句话。下叫。Log-B。保存退出一下。然后启动我们的数据库。然后呢,这个时候我们再去挖下。内部的。
11:03
会发现里边多了一个叫man-B。2001的文件,这个文件就是我们的二进制日志文件。那这个文件的功能我说过,它是记录所有对数据库数据更改的操作。数大了,那一旦我们的数据库文件数据库坏了,那这个日志里边由于记录了所有的增删改的操作,那我照着这些增删改再做一遍数据库的内容是不是就回来了,明白意思吗?啊,明白意思吗?OK。那我们来看一下这个东西怎么来用啊,怎么来用,方法很简单,我们有个命令叫MySQL blog啊,这个命令就叫MySQLlog,使用它呢可以来查看我们的文件啊,使用它可以查看我们的文件。说我们先拿这个叫MY。命令看一下嘛,这个MY。001的这个文件。
12:00
这个文件里边目前没有任何记录,为啥还没有对数据库的操作,就是开启这个日志之后,我们还没有对数据库里边的东西进行操作过,我。那我们进去操作一下,我们进去操作一下,登录下面的MAS。登录成功之后呢,我们先来创建一下。Create。穿一个裤,这个裤名叫ABC。然后呢,进入到这个叫ABC的库里边儿。Create。这个表呢,叫。这个表的字段结构呢,是ID。表的字段结构。还有字段类型。Int。
13:08
然后再插入一条数据。Insert into a1。他里边。里边一共有两个字段。一逗号。然后继续再来一条二。然后用。Select。查询一下。看里边是有数据的,没有问题,那接下来我们退出一下,我们去。马斯克,看一下看,这里边多了很多东西啊。
14:01
然后呢,我们来看一下,从我们创建库创建表来开始啊好了,从这开始的ABC创建了一个。库角ABC,然后呢,切换到这个库里边。然后呢,创建了一个表。刚才我们的命令完全都是现在这儿,然后呢。往里边增加了一个数据。没了,End of love fire。有查询吗?没有。这就是我给大家说的,这个日期只记录增删改。不记录查询啊不。那万一我们的数据丢了,那就通过这个日志来恢复啊,万一我们的数据丢了,就通过日志来恢复,比如说我们去模拟一下数据丢失,很简单,怎么模拟啊。直接。MV把根下挖下。Le不像MY的那个叫。ABC的库。拿到跟下天僻呀。
15:00
我们再进入到数据库里边。那个叫ABC的库没了,但我现在想把数据库,我想把这个数据内容恢复回来。还有这个。二进制志,我们就可以按照二进制日志的方式来进行恢复啊,按照二进制日志的方式来进行恢复,那恢复方式有两种方式,第一种就是按照时间顺序恢复,第二种按照文件大小恢复,它里边有两个格式,我们来去看一下啊。首先呢,我们来打开日志,看一下日志里边的时间格式啊,时间很容易记,这就是时间。19年3月14号。17:29 23分看到吗?这就是时间,那大小呢,这个艾特后边这个187287之类的这个数值就是大小。那时间大小分别用杠杠和杠杠start position不同。
16:05
来这里。注意,这个地方是用不同的选项来指定的。然后呢,你想恢复哪个范围的就start stop谁,你想按哪个大小范围恢复就start position stop position就可以了。Start this time。这个年月日学生分表,Stop年月日学生表。然后哪个日志,然后通过管道符再传给我们的MYSQL-U-P密码就行了。这就是我们的这个。这地方我们把这个时间简单记录一下啊,把时间简单记录一下。看一下我们这个在创建之前的这个时间啊。创建之前的时间是。17:28:43。那17:28,也就是说创建这个库之前是17:28,那么就70点,就17:28就可以了。
17:08
刚刚。Stt start。Data。等于。这个时间的格式是。年杠杠月杠杠日,然后。2019年。零。幺三。幺四。空格。这个地方是17:28:43。17:28。特别精准啊。刚刚stop他了。
18:02
刚刚,Stop。Daytime。然后呢,他的时间是2018。到2019。零五。时间是。结束时间是多少?17:30。改成17:31。让这个事件充分包含进我们执行的命令里边就可以。然后呢,告诉他你要以哪个日志为这个。恢复的这个起始就以这个001,然后呢,管道符交给我们的MYSQL-U。P123123。然后我们再登录到数据库里边看一眼。
19:06
那个数据库叫ABC吗?好,这个时间好像有点问题。只查到了一个。中间的所有内容都没查到呀。5月14号。17:28。时间上没有问题。时间没有问题啊,但是我们。我们列出来的是这个信息,好像不太对。
20:08
再单独查看一下那个日志。那我们就从这个29这个地方开始吧。29。29~20秒开始。17:31。看一下完整的那个。
21:00
是不是,是不是我日期写错了。嗯,19年3月哦,3月14号呀。都写成五月了。这个地方是3月14号,三月。这个讯息好长时间没有更新了。就没有问题了,就。这个地方只要都能查出来就没问题了。19年3月14 17:29。我再把时间改一下,稍等。然后。My circle。Root。P123123。
22:01
已经有了吗?啊有了,看已经导入进来了,已经导入进来了,并且我们use ABC一下。然后我们。Table。只是有了这个。没有里边的表啊。也就是说我们那个时间写的可能还是不是特别的完整啊。时间写的不是特别完整。时间如果写的完整的话,他会把那个对应的库和表都恢复回来。包括里边的数据也都能收回。这个地方我们可以再看一下啊,可以再看一下,比如说我们先。Drop掉。
23:01
这个角ABC的库。没了吧,然后再出去。重新倒。这个地方在倒之前我先看一下完整的啊。再看一下时间啊,确定一下时间。是从28。开始,那咱从20。九的20开始二。29~20到。29~20到。Insert two。到30。到30。到30.02。
24:01
30。切换进去。查询一下。里边没有插入数据样,好像是啊。那这个就没有问题了,那这个就没有问题了,这个就是我们数据库的这个。二进制日志的备份和二进制志的一个恢复,那下面呢,我给大家列了一下这样一个事例啊,这样一个事例啊。添加到主配置文件里边,告诉他我们开启二级日志,然后呢就会产生一个my circleql-B0001的这样一个志文件,然后呢在里边模拟删除,然后呢在我们的那个二一日志里边找到那个。
25:01
创建的那条记录,然后呢,创建的起始点找到之后呢,把创建的起始点写到我们的命令里边,然后让去创建,那这样的话就会把我们丢失了的数据恢复回来,按照大小恢复呢,其实一样的,就找到那个艾特多少,找到两个艾特之间,把那个两个艾之间写上就可以了。像这个的恢复其实和时间的恢复是一样的,OK,那这就是我们的这个关于数据库的备份,当然其他的这种数据库备份方案其实也是有的,也。说完全非质量啊,还有一些一些呃,参考性的一些开源的软件也可以使用。那我们这个数据库的基本操作呢,我们就讲到这个地方了,我们这个本节课就到这儿,我们下节课再见。
我来说两句