00:00
好,同学们,咱们接着来讲啊,那么整个的话呢,我们卖色高级篇的话呢,呃,一共是分成四个小的篇章啊,最后一个小的篇章呢,我们叫做日志与备份篇,那咱们呢,就迎来了最后的一章啊,如果呢,同学你已经看到了最后一章了,首先呢,应该恭喜你啊,前面呢,这么多的章节呢,都能够坚持下来,如果呢,这个吸收呢还比较好的话呢,我觉得对于你的这种提升啊,或者说至少来讲的话呢,系统性的去看待我们卖色的这种高级的内容啊,应该是比较有帮助的啊。好,那我们来看一看最后这一章的这个内容,那么相较于前面的这一章节呢,最后一章呢,应该难度呢就偏小一些了啊,偏小一些了,主要呢,我们来讲一讲叫数据库的一个备份和恢复的行为。好,那我们说呢,在实际的这个生产环境当中啊,呃,有的呢,是一些人为出现的啊,比如说呢,呃,人为的一些故意破坏呀,或者说是管理员的一些误操作呀,是吧?还有一些呢,属于自然情况啊,比如说呢,呃这个天灾人祸,天灾人祸这种是吧,还有意外的这种断电呀,还有计算机系统这个软硬件的这个故障啊,导致呢,我们数据库当中数据呢,出现这种啊丢失的情况了啊丢失服务器瘫痪是吧?乃至于说呢,我们主从这个服务器之间呢,同步呢,出现问题,那么出现这样的一些问题的话呢,肯定是我们需要解决的啊,把这个损失呢降到最低啊,那我们呢,就需要呢做数据的一个备份啊,你要恢复的前提呢,是不是得先有这个备份的才行啊。
01:20
哎,这是没问题的是吧,诶你包括呢,我们说这个个人也是一样啊,诶你像我这台电脑啊,我这电脑也就呃1万出头啊,1万多块钱啊,当然呢,是一万三买的啊,现在就更便宜了,这个呃,你要说呢,我这个本被人偷了啊,丢了这个呢,损失从物理上的损失上来讲呢,撑死就是我买这台电脑时候花的这个话费啊,当然我这也不具备什么保值的功能啥的啊,你说这再卖卖了两万多,这也不可能啊,电子设备嘛。但是呢,对我的印象的话,对我的印象的话呢,肯定是高于这1万多的是吧?啊因为呢,就是所有的关于课程相关的一些内容啊,都在我这一台电脑上啊,这我要是没有备份的话呢,这个丢了它这个损失对于我来讲呢,是非常大的,对吧,那么大家你想想企业来讲是不是更是如此啊。
02:05
啊,企业的话呢,你像这里边保存的用户数据,咱就比如说京东的吧,啊京东的我们说都有个人的信用的这种数据是吧,他好不容易建立起来的个人信用的这种体系啊,如果对应的核心数据给丢了。啊,那这个损失呢,是不可估量的啊,所以说的话呢,对于数据库服务器来讲啊,对于这种呃弊端的这个来讲啊,那这个呢,数据是一定不能够丢失的啊,它呢会直接影响到是大批量的这种C端用户啊。那我们需要定期的对数据库服务器呢,做这种备份啊,比如说你每隔一天备份,或者说呢,你每隔一周去备份啊,这个呢,结合你公司具体的业务场景呢去看了啊,那么当出现这个错误问题的时候呢,我们就需要呢,使用这种备份的数据呢来进行恢复。啊,来进行恢复啊,可能大家一看说,诶这不是挺简单的嘛,诶这个你要注意我们备份呢,肯定不会说是实时备份的,对吧,因为比如说我们说频率比较高了,咱们每隔一天呢做一次备份,比如说每天这个夜里啊,深夜这个三点钟是吧?哎,我们做一次这个备份啊,这时候呢,就我们访问服务器的这个场景的这个并发量就比较少了啊,业务也比较少了,我们做一个备份,每天一备份,好,那么比如说第二天这个中午12点呢,出现这个服务器的瘫痪问题了。
03:14
啊,这个数据丢失问题了,或者误删除问题了,那我们做恢复的话呢,呃,首先的话呢,你拿到前一天的这个三点钟的这个备份数据,我们做个恢份,这个做一个恢复,但是这时候你注意恢复啊,我们下边也会谈到不要呢,在我们这个,呃,这个现在正在运行的这个主机上去恢复是吧,你是不是先找到一个背机是吧?把这个数据呢,先恢复到我们这个背机上。啊,备库上啊,这个时候你恢复呢,也只是到了前一天的夜里三点钟是吧?啊那接下来的话呢,你得把这个啊前一天我我我是咱们通俗的说法啊,实际上呢,一个三点钟跟12点已经是同一天了,是吧,只是一个是晚上,一个是天黑着,一个是天亮了是吧?嗯,行知道这意思啊,然后呢,这个我们把这个恢复完以后呢,你三点到12点钟的这个数据呢,是不是仍然是没有在备份中的,对吧?诶那其实我们还需要呢,去调用相关的前面提到像槟榔日志啊,诶这样的一些日志文件我们做呢,诶相应的一些数据的再恢复啊。
04:06
好,那整体上来讲的话呢,就是我们这一章呢,就叫备份与恢复啊,大家呢,就是呃,也不能期望太高啊,你说呢,是不是这个一节的内容呢,我们就能融合了,说比如三五年DBA的开发经验啊,都在这里边儿,那显然呢也是不现实的啊,专门针对于这种备份与恢复呢,那我们其实就可以专门开一个栏目去讲这个问题了,对吧?啊,而且呢,还会有很多具体的场景,具体的问题我们都得是具体的分析啊,所以这章呢,我们更多的是一些规范性的一些操作和场景啊,这个大家注意一下。好,那么首先的话呢,我们来来说一下这个备份啊,备份呢分成两种,一种呢叫物理备份,一种呢叫做逻辑备份,啊就跟我们前面提到了,说这个锐度日志和这个安度日志一样啊,这个大家啊对应的你就能明白的意思了,那物理备份呢,顾名思义呢,就是你把这个物理磁盘上的我们的呃数据库目录啊,你给它备份起来是吧,把它拷贝到另外的一个目录下,那就可以了是吧?啊那么它的特点呢,就是这个恢复的速度呢比较快啊,但是占用的空间呢,会比较大一些啊,也可以使用地方的工具,第三方的工具呢去实现备份啊,这是它的特点,然后这个逻辑备份的话呢,我们也是使用相应工具呢,把这个呃整个数据库的这个信息呢,给它导出来。
05:18
啊,然后它的特点的话呢,就是恢复的这个速度比较慢啊,占用的空间呢,但是比较小。有利有弊对吧,那我们常见使用的工具呢,就是MYQ呢,官方给我们提供的叫MYSQL啊转储的工具,那它的一个备份的逻辑啊,叫逻辑备份呢,其呃逻辑备份是吧,实际上的话呢,就是把我们这个SQL语句啊做了一个备份啊,你比如说我们创建表的语句啊叫create对吧,然后呢,我们这里边的数据呢,那就是一些隐色的一些啊这个语句了啊,所以说它备份比较慢呢,相当于是把这些语句呢,是不是又重新的再执行一遍啊啊所以它诶恢复起来就比较慢一些啊。好,那么下面的话呢,咱们就呃给大家呢,去讲解一下我们这个呃逻辑备份,还有这个物理的备份啊,备份完以后呢,我们再做一个恢复是吧?诶大体上的话就是主体我们这个内容啊。
06:06
好,那么我们就先来谈一谈这个逻辑上的一个备份,咱们使用的叫MySQL dump啊这样的一个工具,然后下边这个演示备份的话呢,我们有这样的一些场景,备份一个数据库啊,你看这个咱们先从宏观上去看啊,备份一个数据库啊,比如我们这个之前呢,创建呢,像这儿呢,就是单独的一个一个的数据库是吧?诶备份一个数据库,比如我们就拿它为例啊,把它备份一下,好,然后呢,我们还可以呢,去备份全部的数据库啊,全部数据库啊,就好比是我们这个下边呢。诶,我们当前这个数据库实例下的是不是所有的这些数据库了,好还可以呢,去备份部分数据库啊,其中挑比如两个数据库备份部分表,一个数据库当中的哎,一部分表啊,备份单表中的部分数据啊,单表里边我们只有一部分数据,要是吧,排除某些表的备份。只备份的结构啊,我们整个数据库下的所有的表的结构啊,或者说呢,我们只备份数据,还还有呢,我们说备份默认情况下呢,咱们是不包括数据库当中的这个存储过程,存储函数和事件的啊,如果你想把它们也包含在内啊,怎么去写对吧?以及呢,除了这些之外呢,还有哪些其他的一些备份的特储场景和行为啊,这呢,有一些常用的选项啊,都罗列到这儿,这个呢,就是我们说啊逻辑的备份的啊一个操作。
07:20
好,那下边的话呢,咱们就直接来来实现了是吧,直接实现的话呢,这块咱们就使用这个呃叉shell吧,呃使用叉使用这个,呃这个S呢,其实都还行是吧,都还行,但这里边我们提前呢,先做个操作哈,因为咱们备份以后呢,生成这个文件呢,它其实是一个文本文件了,咱们可以打开去看的啊,这个文本文件呢,最好咱们别让它太大了,要不咱分析的时候呢,也不方便啊。嗯,所以呢,这块比如我们去备份这个数据库的话呢,这个数据库里边,咱们当初当初演示一些这个调优的时候呢,有一些表呢,特别大是吧,我把这个特别大的这些表呢,咱就给它删了啊,那就不要了。啊,这个我就直接呢,使用咱们这个通话界面的方式呢,就删除了。啊,理解一下啊好,这个呢,嗯,看超过了1000好呢,我就都不要了。
08:02
啊,这个呢,先把这个事呢做一下。啊,一个一个看一看。嗯,这个呢是好,这个可以啊。这个零行。啊,这个这个不要了。嗯,这个都比较少。啊,这个比较多。嗯,行可以了是吧,好那么这块呢,我们就把这个数据库呢,里边的数据呢,稍微做了一个处理啊,诶就是主要我们想看这个文本文件里边数据呢,别太多了,多了以后我们这个看起来费劲啊好那么这块的话呢,我们首先呢考虑就针对这个艾特硅谷DB3这样一个数据库呢,咱们做一个备份啊好那么下面的话呢,咱们就具体呢来演示一下这个操作了啊,咱们使用的是这个MYLMP来实现这个逻辑上的一个备份,好那么我们这里边儿的话呢,一共有这么多的操作,那我们就一个一个来看,首先的话呢,我们去备份一个数据库啊,就是针对咱们刚才准备好的这样的一个艾特硅谷DB3是吧?诶这样的一个数据库,好,那么具体该如何去实现呢?这有一个基本的语法。
09:04
啊,这有个基本的语法,然后呢,杠U啊用户名啊,杠H主机名称,然后杠P呢是密码,然后咱们这块儿呢,我就使用,呃,就已经是连接上咱们这150这样的一个机器了啊,所以我这个杠H呢就可以省略了,对吧?然后后边呢,就是我们带备份的这个数据库的这个名称名称啊呃,如果你要具体指定这个这个数据库下的某些表的话呢,这个我们后边也有说是吧,备份部分表啊,一会儿再说这个事儿,暂时的话呢,这个可以就先忽略掉是吧。呃,这里边呢,我们提一下,就是咱们备份到的这个文件呢,是一个点circlel结尾的,对吧,实际上的话呢,你也可以写成点T结尾的,那因为呢,我们这是个文本文件,所以呢,你写成点T结尾的也OK,我们呢可以直接打开呢,进行一个查看啊,这都是OK的。好,下边的话呢,我们就具体呢去做一个实现啊,具体做实现的话呢,咱们把它呢,诶复制到具体的某一个文件目录下啊,备份到某一个目录下,这块呢,咱们把这个目录呢,我去先创建一个啊,先创建一个,诶我们这个是MKDR,我呢创建一个啊在咱们这个数据库目录下啊,诶my circle下的一个,比如说叫backup。
10:07
哎,我就放到这个目录下了,行,嗯,注意这块呢,我也只是呢,就是把它放在了我们这个目录下,在实际的生产环境当中,诶首先呢,我们肯定不会放在咱们当前的这个数据目录下了,因为你备份的跟我们这数据库如果出问题了,有可能就都出问题了,对吧,这是一点,另外的话呢,我们可能也不会备份在同一台机器上,那如果这个主机出问题的话呢,我们这个备份的也放在这儿,这也不靠谱,那你也可能会放放放这个不同的地点是吧?呃,放的远一点啊,有利于我们这个容灾备份啊,不是一个地址啊,都OK的行,那下面的话呢,我们就具体的来看一看啊,首先的话呢,在我们这个目录下啊,咱们先这个调到这个当前这个目录下。啊,MY。Backup是吧?哎,这里边呢,目前是什么也没有的,OK,呃,那么下面的话呢,我们就会做一个备份啊,备份的话呢,刚才提到是叫MY这个MP,哎这样个指令,然后杠u root,杠P密码,然后的话呢,我们当前主机我这个就就省略不写了啊下边的话呢,是我们要备份的这个数据库了啊硅谷DB3,然后把它写出到啊这个写出到的话呢,这个你注意哈,如果我们现在已经在这个文件目录下了,所以我就直接在这块呢,可以写一个。
11:15
啊,比如咱们叫艾特硅谷啊DB3是吧,就针对它的这两个文件啊,这就可以了,那表示呢,就是我们把它呢,备份到咱们当前的这个目录下,那如果说你不是在这个目录下呢,你就写一个绝对路径啊,是可以的啊,那要绝对路径呢,咱们就这样写了。把它备份到外下的lib下的啊,My circle下的啊backup,哎下的是吧,哎接着去写啊艾特硅谷DB3的这个circle文件是吧?哎,走起啊ABC123诶好了,然后呢,我们再去LL下,那你会发现呢,我们这呢,是不是就有这个文件了,好,那么有这个文件的话呢,我们就可以呢去做一个查看啊,我们针对呢,呃,这个文件呢,咱们去讲解一下,后续的话呢,我们生成的都是这个点circleq结尾的,我们就不一定都会查看了啊呃,这个查看的话呢,我们就直接呢用这个K就可以了,是吧,还硅谷circle啊。
12:03
好这呢我们就进来了,嗯,进来以后呢,如果大家觉得这个查看呢,感觉没有这种高亮差点意思是吧,那那你用这个VI呢,比如我们用这个VI呢,去查看一下啊,感觉好像说这个花花绿绿的感觉更清晰一些是吧?好,我们这呢做一个分析哈,首先的话呢,上边这个叫MySQL dump啊,这个指的就是咱们MYQ呢这个转工具,它的一个版本号。啊,他这个版本号,它跟咱们这个数据库的版本号呢,诶不一定是这个匹配的对吧?呃,然后后边呢,就是我们这个数据库的这个版本号,然后以及呢,我们应用的这个平台,然后呢,是这个我们具体的host啊然后呢,这个迭代贝是吧,针对的它啊数据库的版本好下面的话呢,我们会看到有一些呢,是以这个斜杠星叹号开头的,然后呢,以星斜杠结尾的这个呢是叫MYSQ注释。这些注释的话呢,是可以当我们再去做数据恢复的时候呢,被我们呃数据库服务器呢,所读取的这样的一些信息啊,那么这些信息的话呢,在其他的数据库服务器上啊,你比如说是非MYSQL的它就诶不识别了,诶这样的话呢,可以提高我们这个备份的这样的一个这个可一致性是吧?嗯,这个一会儿我们再细说啊,然后接着往下的话呢,你会看到我们这里边呢,就会涉及到具体这里边的这些表是吧?那比如说呢,我们要呃备份到另外的一台,那就要恢复到另外的一台这个数据库下了是吧?那么你这个数据库下载里边是不是有可能存在我们这个count表啊,那怎么办呢?诶,那你就把你这个现有的数据库下这个count表呢给干掉。
13:22
诶,干掉以后呢,我们再去重新生成一个啊,咱们这个备份文件里边那个account的这样一个表,然后再往下的话呢,是不是就涉及到我们这里边这个添加数据了,哎,这叫insert行为,所以说呢,我们会看到这个circleq文件里边的主体结构呢,就是我们的create这样的一些语句,还有我们这个insert的语句。啊,你看这都是大写的是吧,这个create的啊,这个我说的大写呢,是一会儿咱们讲到后续呢,想查看这里边有什么样的,呃,这个这个叫什么?呃,字符串的时候呢的一个伏笔啊伏笔行这个都是大写的啊然后的话呢,我们说呢,整个呢,我们这个备份文件呢,呃,在表这块呢,就是以create来呈现的啊,这个表数据呢,就是以certain into的这样方式来呈现的,是一个语句对吧?啊然后呢,把这个多条数据呢,都以这个逗号的方式呢,给它隔开的,OK,行这个再往下呢,就是一个一个的这个表的情况啊,然后我们呢,去输入一下这个叫。
14:13
这个shift啊G啊,我们就进入这个文件的一个结尾啊,这个文件结尾的话呢,是不是还是有很多这样的开头的这个MY注释对吧,然后最后呢,有一个我们这个文件呢,它生成的一个时间啊,做了一个记录。OK,这是我们说这个大块的一个情况啊,然后的话呢,我们再稍微的说一下咱们这个所谓的MYSL注释啊,我再点上这个GD呢,再回到开头这个注释里边呢,我会发现呢,它诶将咱们当前这个呃系统当中的这个,这是不是叫系统变量啊,复制给了我们这个相对应的前面的叫呃用户变量啊,相当于做一个临时的一个记录啊,这个记录完以后的话,我们再试的记一下啊,然后在最后的时候呢,是不是再把这个相应的这些呃用户变量再付给我们当前的这个变量啊。加系统变量是吧?呃,现在就是再恢复成我们最初的这样一个状态啊,这就是这样一个场景,好,然后前面这块呢,大家可能会发现有这样的一系列的这种编号是吧?啊这个编号你看都有,这个编号是什么意思呢?诶它其实代表的就是咱们MYQL数据库的一个版本,你比如说我们这个呢,它代表的其实就是MYSQL4.01.01啊这样版本啊这个呢,就是诶五点啊05.03,诶这样个版本也句呢,就是我们这样的这个后续的这个信息是吧?是我们在这个版本及以后的版本当中才可以去使用的。
15:27
啊,就是主要呢,还是为了我们MYSQ服务器呢,它的读取是吧,诶这个大家做一个了解就可以了,好,那这块我们就比较清楚这个结构了啊,咱就退出来了。那么这呢,我们就说清楚了,咱们对于这个数据库的啊,单独一个数据库的备份啊就到这儿,嗯,那么下面的话呢,我们来看一看,去备份全部的数据库,这些时候呢,我们用杠杠啊,All database啊,或者你用杠A啊,这比较简单是吧,就做了一个哎,全部数据库中啊,就是相当于我们当前这个数据库实例当中呢,是不是所有的这些数据库的一个备份呢?好,来这块我们做一个执行啊啊MY。
16:01
那MYSQ的一个啊,Damp是吧,杠U啊这个哎,Root用户杠P啊一我们写密码好,后边怎么写啊,咱们呢,是不是叫杠杠啊,你可以写个,呃,写个大A呢,是不是就可以啊,这个大A的话,你就写一个杠就行啊,你要写两个的话呢,咱们就写这个叫A,嗯,Data塔。啊,Basis是吧,哎,这样就写啊,然后后边的话呢,就写入到我们对应的是哪一个文件中了,嗯,那我刚才呢,演示的是一个绝对路径了,那么后续的咱们因为都在这个backup这个目录下,我就都写成这个相对路径了,就。这个咱们叫all啊,Data basis是吧,第2SQL文件啊,走起啊ABC123。好,这时候你会发现呢,他会在这停顿,因为我们这个所有的数据库下,咱们前面呢,在授课的时候呢,演示里边呢,有一些呢,是不是有百万级的这个数据是吧?所以我们这时候呢,在做这个备份的时候呢,就会慢一些啊好,那此时我们在L2查看这个呢,就生成了,你也发现呢,这个文件呢,是不是就非常的大呀。啊,对吧,那没问题啊行,那这个呢,咱就别打开看了吧,这有点太恐怖了啊,诶这个结构呢,整体上跟我们这个呢,是一样的啊是一样的,那接着我们就来说下一个。
17:06
啊,这个呢,叫备份部分的数据库啊,你可以用这个杠B啊,上面叫杠A,这个叫杠B,或者呢,你要哎把O去掉也行是吧,叫data basis,然后呢,你后边呢,就写明你到底想备份的是哪几个数据库啊,比如说呢,我们现在想备份一下爱的硅谷DB3和爱的硅谷DB啊,你就可以这样的去写,哎,回过来啊,呃,我们的叫my circle,嗯,大安。哎,然后呢,杠U啊,这个H数的用户啊,杠P写密码是吧,然后呢,我们去叫杠杠啊贝啊basis是不是这样,然后艾特硅谷DB2艾特硅谷。看DBDB3是吧,这个你看清楚啊,别写错了,然后呢,我们写成了叫什么呀。嗯,叫嗯,我们上面叫all data,咱们这叫part吧,因为一会儿咱们还涉及到这个恢复的问题啊,所以这个名字的话呢,最好咱们这个建名之意一下,要不一会恢复的时候呢,就找不着到底是哪个了啊part啊,Data basis好走齐。
18:03
ABC123。好可以了啊,然后做一个查看,诶这里边呢,是不是有我们这样的情况啊,它那里边就记录了我们,诶这个数据库和这个数据库下的这个对应的数据了,好这就过了啊,诶我就不打开看了,然后下边呢,我们就要备份部分的表啊,针对于某一个数据库下的这个部分的表,呃,这个呢,我们就直接呢写这个数据库名后边的空格写这个表明就行,哎,等于说诶跟上面这会不会混呢?哎,不会混,我们前面呢,是不是讲的这些都有这个其他的参数是吧?诶你没有这个参数的话呢,后边就跟着的是这个数据库了。啊,然后呢,后边在空格呢,就表示跟的是这个表啊就这个意思,好,那比如说呢,咱们回到这儿来啊,咱们想备份这个数据库下的部分的表,我们先看一下有哪些表。Can you。啊,Use一下硅谷DB3是吧,好,然后呢,去收一下这个a tables,那比如说呢,我们把这个数据库下的这个account这个表和我们这个student这个表啊,把这两个表呢,咱们做一个备份好回过来啊。
19:02
My circle。这个damp是吧,哎,杠u root-P写密码,然后呢,咱们写这个数据库啊叫艾特归。图DB3下的啊,一个呢叫count是吧,一个呢叫做a student,中间别用这个逗号啊,哎,就不要用这个逗号呢去隔开了,呃,然后的话呢,我们把它呢写入到啊这个咱们叫这个part tables吧,这样的一个S文件啊走起。啊,这就可以了啊,查看一下,哎,这里边呢,是不是我们叫part tables,哎,是不是就它了,哎,你可以在那看一下啊cat一下这个part,诶table好打开,然后这里边呢,是不是就关于我们啊这个你往上翻,咱们刚才在哪执行的呢?哎,这个part tables是吧?嗯,这里边的话呢,有我们关于啊前面的就一些这个注释信息了啊,关于这个count是吧,它的一个呃,表的一个创建,数据的一个添加,Student表的一个创建啊表数据的一个添加,哎,结束了,哎是不是就只有这两个表没问题啊。
20:01
好,真的我们就过了啊,然后再接下来我们看一下。诶,不备份这个单表中的这个部分的数据,哎,备份单表中的部分数据,那我们这里边就可以使用这个叫杠杠where啊,相当于对数据咋做一个过滤啊,嗯,这个呢,还是数据库,这个是我们的表明,然后后边呢就杠杠where,然后呢,用双引号呢,引出你这个过滤条件啊,这样的就可以了。啊,比较简单是吧,回过来,嗯,在这我们看一下啊,咱们首先呢,去select星from一下我们这个student。呃,这里边呢,我们有这样的一些数据,比如说我们只想要这个,呃,ID呢,小于等于15的这样的一些数据做一个备份,好我们回过来可以去写啊,MY。MP是吧,嗯,杠u root,杠P写密码,然后呢,艾特硅谷DB3下的是吧,然后呢叫做student,这没问题吧。好,然后的话呢,这个叫杠杠啊,来个where,然后呢,诶这个双引号起来,我们就ID呢,小于等于15是吧,还把它写出到,嗯,写出到呢,我们起个名啊叫the student ID呢。
21:05
啊,这个我们写一个15啊,就这样做个标识就可以了啊,点SQL文件OK。嗯,这个我们再这样写,这样这样处理吧。哎,Student这个表呢,我们叫part啊,这样吧。哎,这样好,然后呢,我们再去做个查看,此时的话呢,这里边儿就有这样一个数据了,咱们呢,也可以呢,去开做一个查看啊,Student打开。然后呢,诶,这是我们前面这些这个注释信息,关于词的那个表结构的一个创建,然后这有个过滤条建,然后在这儿啊隐私的里边,你看呢,是不是直到15了,哎,这的一个封号结束了,后边这个数据呢,就没有要啊,最后呢,就结束了啊确实呢,我们相当于是只保留了这样的一部分的数据是吧,好的啊。好,接着我们再往下看,说呢,排除某些表的一个备份啊,说我们呢,去备份某一个数据库,但是我们有些表呢,其中就不要了啊,这个我们可以呢,单独的把某一个表呢给它抠出去啊这样的一个情况。好,回过来啊,My circle,哎,MP是吧,杠u root,杠P,写密码,针对于艾特硅谷。
22:09
啊,DB3啊DB3是吧,这个数据库,然后呢,我们去杠杠啊ignore啊,这个单词你得会写吧,啊,这叫tables啊table table是吧,一个啊没有S,然后后边呢是我们就写清楚,是at硅谷DB3下的,嗯,这个咱们选一个吧,比如我们把这个student这个表呢,单独的给它扣出去,好,我们这呢就写入到啊叫no啊student。哎,或者这样吧,先还在硅谷,哎,DB3下的,我们叫no,哎,Student这个表,哎这样一个点四个文件啊ABC啊123,哎这就过来了,好,那这时候我们去做一个LR查看。此时的话呢,我们这里边呢,就有诶这样一个信息了啊,没问题是吧?好,那么你看这个跟我们这个呢,上下它有差别,因为这个呢,是把这个数据库下的所有表呢,都做了一个备份啊,你看它的差别是不是就是我们这个三的这个表啊,诶OK啊好,那么在这里边的话呢,我们想看一看有没有这个student的这个表的信息,嗯,大家呢,你可以呢去使用我们这个cat呢,你去里边找一找啊,但是一旦呢,我们这个要是数据库呢,表比较多,你这样找起来。
23:15
哎,找一下也行是吧,也可以,因为咱们也有这个相应的一些这个。输液快捷键。啊啊,这个咱们用这个VI吧,哎,VI去查看啊,这个at,哎硅谷,然后呢,咱们这个叫no是吧,Student啊,然后我们可以斜杠啊,咱们是不是去找这个student,那你看找不到,哎,那就说明我们这块是不是就没有,就保存退出了,行啊现在我们这块就没有啊呃,那么或者的话呢,大家也可以使用我们这叫GR。呢,我们找一下这个student。啊,然后呢,使用呢,哎,针对的是我们。嗯,叫做嗯艾特硅谷啊下的no啊,是不是它这里边了,诶你看这个查看的是不是也查不到,哎,那就说明就没有啊,诶你要查其他的这些表呢,它就有,比如说我们找一下这个account是吧,还周齐,那这是不是就找到了。
24:00
啊,没有问题啊行,这样呢,我们就相当于把具体的这个表呢,给大家抠出去啊,这样的一个操作啊,然后在接下来的话呢,我们可以呢去去备份。指定这个数据库下的只有表结构,相当于只有这个create这样的语句啊,然后呢,你也可以呢说只要这个呃,这个insert语句,只要这个数据,那就是意味着就是no啊,Create iner啊,这样的信息可以用这个杠D或者这杠T呢来表示啊,也比较简单直接是吧,来我们回过来啊。来此时我们去写说my circlel dump啊,杠u root,杠P,然后再往后啊,这块怎么写啊,我们针对的是at硅谷DB3是吧,这样的一个数据库,然后呢,我们叫杠杠no a data,哎,这样的意思啊,我们把它写入到at特硅谷DB3下的,我们就叫no data吧,哎,这circle问题啊,好走起。诶这样就可以了是吧?好,那这时候你去查看一下我们这个文件呢,首先啊,是不是在了,然后的话呢,我们就可以呢,使用这个叫grape了,诶注意啊,我们现在想查看里边呢,确实是不是没有数据,诶我刚才那会儿呢,去查看我们这个S库文件的时候呢,诶那个伏笔呢,就在这儿去用了,诶里边呢,要是没有数据的话呢,是不是就意味着没有我们这个大写的这个隐私语句了啊这个关键字就没有了,对吧?好,我们这块呢,就这样处理一下啊。
25:14
呃,这个no,这个data还是这意思吧,啊你看这边就没有是吧,那如果呢,你想去查看一下啊说呢,诶可能是不是写的小写呀,哎,这个你以防万一的话,你可以把它呢再验证一下,那这就没有是吧,当然里边呢是有我们这个create操作的。那你看create这块数据查到了,哎,没有问题,好这呢就说清楚这个事了,这个我们叫呃no data啊,然后如果说你要是不要这个表结构,只要数据啊,叫no create infer,或者用这个杠T啊都可以好回过来来演示一下啊。啊,My circlemp啊杠u root,杠P写密码艾特硅谷啊DB3下的是吧。我们只要他的这个数据啊,杠杠,No,我这都写成这个完整的了啊呃,No create。
26:01
Infer,哎,是不是这样来写啊,好,写入到艾特硅谷啊,DB3下的,我们这叫no啊,Create吧,哎,这样一个点S文件好走起。是写好了是吧,然后呢,我们这块呢,可以做一个grape这样一个操作啊呃,去验证一下里边呢,是否有这个叫,哎,咱们先看这个insert吧,哎,然后呢是at。At硅谷。啊,这个叫no啊,这个create看是不是它啊,好,这里边你看色是有的啊,因为我这里边只保存了表结构了啊,只表存保存了这个数据了,然后呢,我们去写一下这个create。走起,那是不是就没有OK啊没问题,好,那么这样的话呢,我们就把这个事呢,也给大家拿去演示清楚了,然后的话呢,我们再看啊,这也算是这个咱们要演示的最后一个了。说这个备份当中,哎,默认情况下呢,我们说备份的这个数据库当中,咱们刚才呢,看这个爱的硅谷DB3的时候呢,也发现了里边是不是没有这个存储过程和函数,对吧,就是默认咱备份呢是不包括的哈,但是如果说呢,我们要想包含这个存储过程函数的话呢,我们需要呢,去使用这样的参数啊,杠杠杠叫roots啊,或者用杠二这个呢,是包含了存储过程和函数。
27:11
啊,如果用这个杠E或者叫杠杠even词表示呢,包括我们的实践啊,就这个意思。好,那么咱们在当前的啊,咱在来看一下吧,艾特硅谷DB3,咱们前面也备份过这个数据库里边呢,咱们看这个SQL文件的时候呢,里边确实没有这个,呃,存储过程和这个函数,而事实上呢,我们这里边呢是有的,对吧?那我们要想包含的话呢,咱就可以呢使用这个指令了啊首先的话呢,咱们也可以呢,去做一个查看啊,CTRLC复制一下回过来,这个得在我们这个SQL指令下啊去执行。DB。哎,DB3是吧。在我们当前这个数据库下呢,我们是有一个函数啊,是不是有这样四个存储过程还OK的啊。好,那下面的话呢,我们就使用这样一个指令啊,咱们呢,去把它做一个存储啊回过来啊。回到这儿。
28:00
这个呢,我们叫mi,哎,Damp是吧,杠u root,杠P啊写这个密码好,然后的话呢,我们可以呢写叫杠二啊,这个呢是包括我们的存储过程和函数,然后杠一啊包括我们的这个事件是吧?然后呢,咱们针对的是啊,这个咱们针对的是咱们比如说你要是所有的在针对我们指定的一个数据库,还记得怎么写吧,哎,要是所有的话呢,是杠杠O啊data basis了是吧?诶针对我们一个数据库的话呢,我们是叫呃,杠杠data诶。诶,这个a basis是吧,然后后边呢,写上我们叫艾特硅谷DB3。对吧,哎,这样的一个情况啊,然后在后边呢,我们去写入到啊,具体的我们一个文件啊,比如我们这叫fun,还有这个procedure它的一个,哎,我就直接点circle了啊好走起ABC啊123它这就可以了,然后I2下。呃,这个是不是就写到这了,好,那下面的话呢,我们想查看一下,这里边呢,是不是有这个函数,函数的话呢,咱们刚才也看到了,嗯,刚才啊,我们在这查看的啊,我们里边呢,有个函数呢,是不是叫啊random number哎这样的一个是吧,我把它呢做一个诶复制啊,我们想找一找呢,在我们当前的这个文件当中啊,我们刚才生的这个文件里边是不是包含我们刚才说的这样的一个字串啊这怎么办呢?是我gra一下是吧,咱们可以写这个杠啊这个杠C啊大C,然后呢五啊如果呢,要有的话呢,把前后的这个。
29:23
哎,五行的这个信息呢,我们都展示一下啊,然后呢,把咱们刚才这个S串呢,我们粘过来,哎,咱们针对的是我是不是我们就这个S库文件啊走起。好,大家看此时的话呢,你发现呢,是不是就找到了,哎,我们这边有对应的这种函数的一个创建,还有我们这个使用的这个情况。OK啊OK,没问题,行,呃,那这呢就相当于我们这个呢,哎,包含了存储过程和这个,哎,存储函数我验证了一下,存储过程我就不演示了啊,哎,也是包含的行,那么我们关于这个备份的啊,逻辑上的备份的几个测试呢,我们就讲到这儿,其他的这样的一些参数呢,我就罗列在我们这个2.9这里边儿了啊,就不一个一个的去给大家去做展示了啊OK,行,大家呢,也可以自己的去操作一下,其实比较简单啊,比较简单。
我来说两句