粉丝501获赞4162

nice will 思索是指两个获更多的事物在只有对方所需的资源时无法继续执行,从而导致程序无法进行下去。 nice will 思索的原因主要有以下几个,一、竞争资源如果多个事物试图同时访问同一个表或同一个行,就会发生竞争,从而导致思索。二、 执行顺序问题如果多个事物试图以不同的顺序访问相同的资源,也可能发生死锁。三、锁定超时 如果一个事物锁定资源太长时间超过了锁定时间限制,另一个事物可能会试图请求锁定该资源,从而导致死锁。如果发现了满意水油肉死锁问题有以下几种解决方法,一、重启 mspo 重启麦随外会关闭所有的连接和 series, 并将所有锁和事物都释放。二、优化事物对事物进行优化可以减少对数据库的访问词, 有效的降低了出现死锁的可能性。三、减少事物持续时间我们可以考虑将一个事物拆分为多个较小的事,这样可以降低事物持续时间,从而可以减少出现死锁的概率。四、手动解决死锁问题当发生死锁问题时, 我们可以通过使用收 processes 命令查看当前正在运行的所有进程,然后通过 ko 命令强制终止思索进程。 五、使用 ysl 自带死锁检测工具 ysl 提供了一个死锁检测工具,可以帮助我们检测死锁并提供解决方案。为了避免 msl 死锁问题的发生,我们需要在设计和实现数据库系统 时,仔细考虑事物的使用和锁定策略。在使用锁定时,我们需要非常小心的选择锁定级别,对锁的精度进行适当的调整,并避免出现死锁的情况。

复制一下这麦克风如何安装啊?首先咱们把麦克风解压一下啊,解压以后啊,把它复制到 c 盘的,必须复制到这个模式啊,因为 c 复到博尔管菲尔这里边啊,就在这里边。 复制完以后啊,再开始这块 cmd 啊, cmd 出来以后,命令行,必须右击,管理员选择,你已经记好了啊,要不你启动数据库权限不够啊,必须右击管理员就能打开。 打开以后啊,打开这个配置的这个文件,复制这个啊, cd 复制这句话,把这个复制这句话 转过来, ctrl v 就行啊,转过来,进来,进来以后啊, 可以进行数据库的一个安装啊,这款这句话就因此到啊安装一下,安装成功了这就啊,安装成功以后啊,进行进一个启动,看看能不能启动起来啊, 如果报幺零六七的错误意外终止这块还说了啊,还说了,就是 把这个,这个,这把迈迈昂矮这个这个文件里边的这个替换成这个啊,咱们去找, 打开六 g 记事本,打开这个后置就是麦芽的 l 这个文件编辑,跟着 f 搜一下啊, 搜一下,把这个换成这个啊,粘过来关闭,把它保存一下啊, 然后这块不让保存的话,先保存到桌面一份,然后再粘回来替换一下啊,因为权限太高了吗?保存桌面一份啊,把这个 ctrl c 把它粘过来, 替换目标文件就行了。继续啊,替换了,记好了,必须替换成功啊,然后咱们再启动一下啊,看能不能启动。 嗯,这次启动成功了,启动成功以后啊,回头咱们这个数据库的这个脚本,最后咱们商量一下,启动成功以后啊, k c 里边,咱们把先找到数据库的那个管理器的那个数据库管理器啊, 放到桌面,把这个放到桌面,不要复制啊, 然后数据库这个绿色的数据库的密码默认的是应该是那个空纸啊。嗯,把它改一下就行了,这个 连接的话应该是没有密码啊,双击进来以后,把它用户这一块选这块,选择编辑用户,一二三四五六啊,改一下, 保存一下啊,这次咱们把他删除了,再连接一下,因为数据库密码改了吗?四五四五六啊, 进来,进来以后啊,咱们进行建库,看能不能建上啊?因为编号方式改了吗?属于库的建库建一下试试,看能不能建上啊, 你看了吗?这次他爆错了,就是爆爆这个编码方式不对,是吧?就不要变变这个看见了吗?右击把它把它编辑一下啊,看这 f 把它替换一下,编辑这块有替换,尽量替换啊, 根据这块有替换, 把这块粘过来,然后你那个改成啥了?你的编码改成这个了啊? 也给他改一下,把代码都剃一下啊。对,剃完了以后把它保存,然后再执行。因为数据库编码改了吗?咱们 所以说这代码里边得改一下,要不电不上啊,这就 ok 了,看着吗?这数据库坚持。

上一期我们聊到山库到跑路,有同学问,万一真发生了这事,怎么快速的把数据捞回来? 第一针对 delete update, 我 常用的工具是 binlog to sql, 它能翻译 binlog 语句,解析成 sql, 不 仅能生成原始的 sql, 还能一键生成回滚 sql, 在 生产环境执行下面这个命令, 跑完了之后,确认回滚的 c 口的正确性,然后再运用到信上苦。第二个针对删表。 mycoco 目前还没有比较成熟的恢复方案,通常的做法是用 extra backup 做物理备份恢复,加上编 log 的 重新应用,整个过程周期长, 封信高。在这里我推荐一个方案, mycoco 官方自带的储库一删,存库也就跟着删了。 但如果你在存库上配置延迟三十分钟,主库发送的命令到存库会晚三十分钟,这段时间就是我们的救命时间窗口,立刻在延迟存库上执行 stop slave, 然后跳过刚才执行的误操作命令,数据也就保住了。 第三种,如果是 r m 杠 f 误删的数据库文件,在高可用架构里这种反而不可怕。 a 服务器误操作呢? r m 杠 f 数据库服务挂了,但集群里的其他节点还在跑,直接踢掉 a 节点,用其他的节点接管服务,然后再慢慢恢复 a 服务器的数据即可。 总之,数据恢复工具很多,但真正重要的是预防演练,还有对信上环境的敬畏之心。我们说的延迟备份、 逻辑删除以及工单审批,这些比任何工具都管用,毕竟最好的恢复就是永远不要恢复。

距离上库到跑路最近的一次,不是你写错了字带,也不是服务器宕机了,而是你自信满满地敲了一行 delete, 然后顺手一个回车。 一个职业工程师的肌肉记忆应该是这样子的,每次执行 delete 或者 update 的 时候,永远永远要把 delete 换成 select, 原封不动地跑一遍 cork, 看看你要操作的到底有哪些?数据到底有多少行, 别靠猜,别陷计,更别相信你的未而条件。小结一下我工作中常用删除数据的方式,第一个, delete 语句之前必须执行 select。 第二个,删除 delete 之前开启安全模式。 第三个,利用事物包裹的方式进行删除,确认无物后 commit, 否则 rollback。 在 工作中我见过 delete 忘写误饵条件的,甚至还有人把线上库误以为测试库操作的。你还经过哪些翻车事件?评论区聊。

分享一个小知识,点二就是 my sql 删除这个表出之后,呃表文件大小没有发生变化。对,那这个是是一个经典的一个面试题,我们加号开发同学以及这个,呃数据库运营工程师,呃,那一定要去掌握这个, 呃小知识。对,原因的话就是 delete, delete 命令,他只是把这个数据的肌肉的位置或者这个数据页标记为一个可用的一个状态, 但磁盘文件的大小是不会发生变化的,你可以认为这是一个逻辑删除,逻辑删除,但物理的一个空间没有实际的一个释放,它只是标记的一个,可否用啊?表的文件大小是当然不会变的, 那我们看一下这个表的一些数据信息,首先我们看他介绍一个参数,比如 excel d b, 呃, file table off 的 话,一般就是表存放在系统空表空间,系统空间,系统共享共享空间或者数据字典一在一块 top 空间也不会回收, on 的 话一般放放放在这个 a, b, d, e 的 一个文件里面,方向操作 top 直接参照表空间 表达这个结构信息的话,在表结构信息定义中的一个表,呃,存储空间是比较小的,买这个八点零之前的话,这个表的结构信息,呃定义在的 fm 这个文件中,然后八点零之后的话,就把这表的表的定义信息放在这个系统表系统系统数据表里面。这 系统数据表是干啥呢?主要是存储这个 msc 的 一个系统数据,比如数据库的一个系统数据,比如数据库 log 默认的一个文件。对,那我这阵我们来看一下这个,为什么 删除这个?呃,就是这个,或者说这个如何才能删除这个表出去之后表的文件大小就变小呢?它主要是重重建表,小数表是因为 大量的一个增增删改操作产生的空洞,比如说我们使使用如下命令,比如 alt tab 呃 alt tab 它的名称,然后你呃引引圈等引到 d b, 它起这个模块的一个过程。 嗯,这个的话其实就是重建一个表的个流程,五点五和五点六,五点五和五点六之前的话呢, a d b 的 一个处理层是不一样的,比如说在搜索层,它会自动一个呃,创建一个弹出的 table, 然后把这个数据写入的。假如说有一个 a b a 的 一个数据插入 呃表,你的表数据插入时,一写入数据就会造成数据丢失。所以说这个 d d l 不是 偶然的,偶然的话就是在线的,对, 实时的。对,在 windows 之后的话,在 excel 它有个弹幕里的 file 文件,它支持 on line, d d r 对 它具体流程的话,就是新建一个临时文件,然后扫描 呃表 a 的 一个主键的所有的数据线,然后用数据 a 的 一个表数据线去记录,生成 b 加数,然后存到临时文件里面,然后生成临时文件的过程中,将所有对 a 的 一个操作记录在一个 on 独 log 里面,就是日文件里面, 然后临时文件生成之后,将文件中的一个操作到这个临时文件里面,然后重放这个数据,重放这个操作吧。对, 首先 alt 会获取个 d m l 的 一个解锁,然后转化成一个呃 d m l 读锁,然后因为需要实现这个 on line, 所以 读锁可以不影影响其他的 d m l 操作啊,为啥不解锁直接解锁呢?因为可能存在其他的县城,去 d l 区代表一个结构数据。对, 第二种的话就是一个 opt, optime is 一个 table, 它主要是一个 recreative, 一个重建表操作,加上一个,来来来就分析所有的情况。对, 最后这个的话一定要注意啊,它这个 track table, 它就主要是大照普加一个,呃,加个 create。 如果说这个表在心上在省,现在线上正在使用的话,大家一定要注意。照表之后的话,比如说一个业务访问请求就会中断,呃就会破异常。对, 在重建表过程中的话, online 等于 replace, 其实是原地操作。在这八点零之前的话,比如一些全文缩写,还有空间缩写的时候,呃 replace 的 话,就会组织一些 d m l 操作,因此呃,可以算上不为这个 online。 对, online 一定要设为 in replace。 对, 呃, in in place 不 一定认为这个 online。 对。 还有就是我们在删除这个数据的过程中的话,我们有些空洞。那么空洞是啥?空洞话其实就是那些被标记可使用,但是没有被使用的一个存储空间, 我们可以使用一个 delete, 呃,命令删除数据就会产生空洞标记。可否用查我新的数据也可能造成一些呃,呃,存储上的一个数据页的一个页分裂,也可能造成一些空洞。对,空洞的话,你看就是呃页分页分裂,或者页的一个呃删除,它都会 造成一些可分的一个数据。对,呃,也不是好多可分的数据吧,就是产生一些数据的空间吧。对,修改操作也也有时可能是一个删,先删后插的一个操作,也可能产生一个空洞。 当然我们要一定要注意一点,就是这个数据的一个服用跟这个记录的服用是不同的,因为记录是一个范围性的,而数据页是哪块需要去哪一块。 今天的话就是主要是分享了一个 my sql 删除表数据公删,删除表数据之后表文件大小,呃,没有发生变化,对,或者发生变化很小,对, 那么我然后我们再给大家讲讲的这个细节的措施,比如说 auto table 呀,还有 roku, 还有 onetime table 啊, tractor table 等等。这个,呃,几个相应的一个运营人员的相应的操作命令和我们掌握人员的一个操作命令。对,好,今天的一个分享就到这,好,谢谢大家。

你以为只喜欢 delete 操作,此盘空间就释放出来了?天真告诉你一个扎心的真相, myicycle delete 根本不是物理的删除,它只是把这一行数据打了一个删除的标签,就像是书架上的空位,书拿走了,但是位置还被占着呢, 这在数据库里面叫做裱碎片。怎么样把这些占着茅坑不拉屎的空间收回来呢?只需要执行一行简单的命令, 它的作用就像是把我们书架上的书重新整理一遍,把缝隙挤干。执行完后,你会发现表空间瞬间释放出来了,并且也重新收集了所有统计信息。 但是千万别在业务高峰期跑高版本的 macbook, 该操作虽然是昂莱 ddr, 但是对于大表操作可能会把 i o 跑满,建议放在业务低峰期进行。关注我,每天帮你少走一个弯路。

那好的朋友们,那这节呢,我们去把这个 excel 给做一下啊,那之前的视频当中呢,我们把 mha 什么的都讲了啊,然后我们来对比一下这个 excel, 好 吧,那来看一下我画的这个图,依然是我们做 mha 的 三台机器啊,七十,七十一,七十二啊,是我们的主存, 七十是主,然后七十一跟七十二是我们的两个存库,然后我们在七十三上去做这一个 excel, 去连接到我们的这一个集群,连接到集群之后呢,就把这个集群拓扑图给展示出来,然后我们再去模拟当主档机的时候,这 x 这样会做什么操作?好吧, ok, 那 我们就直接开始,其实也很简单啊,这个安装部署很简单,难难的配置上面 啊,中间要解决很多问题。那首先呢,我们要做的第一件事情就是我们要更改我们的主从配置啊,更改我们先编辑我们的 etc 慢的 cf 点地下的数据库配置 要怎么更改呢?其实我们只需要加一行啊,加一个什么呢?加一个 report host, 加一个 report host 的 目的是让他去上报的这个 ip 地址。可以啊,获取到,我们在主库可以获取到我们的 style host, 那 不然没有这个配置的话,我们在主库获取不到,然后我们 else 就是 通过这个来获取存库的,好吧,它查询不到,它就只显示一个, ok, 那 我们这个主库呢?就只加这一行就行。 set, 我 们 start 我 们的 my circle d, ok, 那 这个也需要更改啊,好的,那我们这三台都已经处理完,那我们做完这个操作之后呢,我们可以在主上面去连上我们的这个 masco 来看一下 show server host 啊,这样我们就能查到我们上报的两个这个存库, 这个 u i d 以及我们的 host ip 都是我们这里面去配置的。好吧,那我们这一个主存的基本上就配置就搞定。然后我们就来我们七十三上面啊,看我们的图,我们七十三上面要部署我们的 export, 好 吧, 去管理我们这个集群。首先呢,我们 export 要部署它之前,我们要在这台机器上去部署一个 masco, 为什么呢?因为 masco 它后面的数据也需要数据库的支持,好吧, ok, 我 们直接来安装一个 masco, 那 这个 masco 呢?它就没那么多的要求 啊,它只是用来给我们的这个 x ray 的 提供后端数据的啊,存储 x ray 的 数据,所以我们没有做主存的必要啊。如果说在生产环境当中,大家觉得这样做不稳妥啊,如果说他在当急了怎么办?如果感觉不稳妥,同样的也可以去做主存,也可以去监控自己的这个 进群。好吧,那好,那现在安装好之后呢,我们直接来启动就行了。 system ctl start, 我 的马斯科 d, ok, 启动之后呢,那我们就需要去创建一个数据库,直接来连上, 连上之后我们就需要创建一个数据库,创建哪个数据库呢?我们这个数据库就叫 autocreet, 好 吧,可以到 daleys autocreet, 然后我们需要去创建一个用户,创建一个用户专门用来我们 autocreet 这个数据库的连接, ok, 我 们叫 o r c, 然后我们去给这个数据库做授权, ok, 那 就这样,那最后呢,我们来刷新一下我们的权限,好的,那这个数据库和我们的用户就已经创建完成,然后我们就直接来安装我们的 excel 就 好了,这个就很简单了,直接压命令 excel, 然后打我们一个 gitlab 的 地址, gitlab 上面有我们的 rpm 包,直接来安装, ok, 这个速度非常的快啊,那这个安装之后,它默认的这个路径就在我们的 user local aux 这的下面, ok, 来看一下,那这下面呢,现在有一个音质文件啊,也看到了两个配置文件,那这两个配置文件呢?就是我们要更改的配置文件,我们主要更改的就是 aux setup com 的 接收啊,但是呢它默认的呢,我们不采用, 我们直接给它改名,好吧,正常情况下应该是 mv 把这个做一个备份,给它做成一个 back, 不 能删除啊,这里呢我是做实验,我就不管了,我直接给它删掉 啊,我不用它,我不用它的这个,我们直接 x 程序杠 simple 星,然后直接把这两个文件给它干掉,那现在没有了,就只用 x 程序跟一个目录,然后呢我们直接 v i 一个 x 程序 com 的 接收,那这也就是一个接收文件。那这进来之后呢,我们就需要去把一坨配置给它填上去来直接贴, 贴完之后来给大家说一下。那首先呢,我们就把 bug 这个设置给打开了啊,我们直接监听的地址跟端口啊,我们直接监听在本级的这个三千端口,那下面这两个是比较重要的啊, 一定要加,一定要加,不加的话他就报这个 ssr 错误了,直接就是叉五零九啊,就是你这个不跳过验证 他就会报这个错误,要么你就啊,你要说你这个集训 ssr 打开了,那没问题,那你就不用加,好吧,那再往下呢,就是忽略我们的这个主机名解析啊,直接用 ip 地址的,这个昨天折磨了我很久啊,这个选项一定要加,直接使用我们的 ip 地址, 不然他解析你的主机名解析出来就是 local host, 然后在下面就是这一个主存复制的用户名跟密码,那这个没啥说的。然后就是我们后端的数据库,我们 autodesk 后端的数据库是用的满色扣,然后同样这里我们也去跳过验证, 然后这个后端数据库的地址端口以及我们的用户名密码,还有数据库。好吧,那这下面呢是把我们的自动发现给打开啊,就它会自动检测我们的 同步的,然后那我们这里呢这个配置就这么多,那这后面这个配置呢?我也会放到我们共享档库当中,那 ok, 那 保存退出,保存退出之后,我们直接来一首 system ctl start 我 们的 autoscut 啊,直接来启动,启动之后我们看一下状态,那这里看到他没有报错,没有报错呢,我们来 直接这边观察我们的这个日制,然后一边打开浏览器去看我们的这一个日制,然后一边打开浏览器,直接访问我们的三千端口这台机器,然后回车 那发现这里我们 office 就 已经打开了,那怎么去展示这个拓扑图呢?那这里发现有一个 cs, cs, 这里有个 disco, 我 们去发现,发现什么呢?我们把这个主库地址给它填上去, 一点七十。好的,我们把主库地址填上去,然后这里点 submit, submit 它在转圈,然后我们这边看日期,就看到一个问题,他说你这个,呃,访问权限被拒绝了,你需要更高的权限呢?我们来看一下我们的配置啊, v i 我 们的 cs 这一个配置, 我们主从复制用的是这个 erp l 这个用户,那他用这个用户呢?他获取不到这一个啊状态,那怎么办呢?我们去给他授权更高的权限,那我们这边呢就直接把这个授权命令打上来 回车,然后这边我们给的权限是更高的啊,更高的权限。然后我们这边再重新来打开浏览器,然后我们这边呢再重新把我们的幺七点幺六点七十给填上去,然后再重新 submet, 然后这边他就发现有一个 discover 已经发现了,发现之后,但是他这个 ip 地址是我们另一个网卡的 ip 啊, 这个不影响,是因为我这个机器有两张网卡啊,我这机器有两张网卡,所以他发现的是另一张网卡的 ip 地址,这个很正常啊,不影响我们的使用啊。这里是幺九点幺六,八点幺幺七,这是第一张网卡的 ip 地址,他默认就解析这个 ip 地址,那好,那这里就看到他已经解析到这个实力了,那这里我们点开进去看一下,发现, 哎,他又多出来了两个,他自己把这个拓扑图给拉上去了,看到吗?那这个呢?就是我们的 master 给它列明白了,这是 master, 这是两个 style, 同样的呢,解析的也是另两张网卡的 ip, 那 这里我们这有一个小地球,我们可以点开看一下,可以看到这些详细的信息, 包括我们的这个啊,各种状态啊啊,这个 g t i d 的 mode 啊,什么都是打开的,我们在这里也可以去做操作。好吧, 这群显示的就是我们的幺幺七,也就是 master 的 地址,那这个方便,它就方便在我们可以通过这个外部端去管理我们这个 master 群。那好,那现在呢?我们主要来检测的是 aux 的 哪个能力呢?是我们主库宕机之后,它会不会像 mha 一 样 去把这个集群给重新做起来,对吧?正常来说,我们做 mha 的 时候,我们一个主库宕机了,它会从存库里面重新挑选出来一个主,然后让它们重新组成主从, 那我们现在就去做这个操作,我们首先去把这个点开啊,看一下,现在都没问题的。那么回到主上面,我们直接 c 上 ctl, 直接把这个数据库给停掉,跟我们做 mha 的 时候一样去模拟故障。那,那现在呢?这个主库已经荡掉了,那我们现在重新来看一下, 那现在看到我们这个幺幺七,这三三零六他已经找不到了,所以这一个幺幺七,这三三零六他已经找不到了,所以这一个 top 图他就显示一个了,他就坏掉了。 那,那我们来稍微的等一下,看他会做什么样操作。 ok, 那 我们再重新刷新一下,发现他又多出来了一个,对吧?多出来了一个,看这个多来了一个幺点二三幺,我们点进去看一下,那发现这边呢?他重新把这个二三幺作为主,把这个一点二作为存库了, 那说明我们这个 extra 它这个故障迁移是没有问题的,那在这里可能看的不清楚,我们来回到我们终端上重新来看一下,我们连到我们的曼斯扣上面,我们来修 step 姿势。 ok, 那 回头来继续看一下,往上翻,现在 step i o 线成没问题,缩口线成也没问题。那发现它的后色变成我们的二三一了,我们二三一是哪一台呢?来看一下 ip, 哎, 是不是我们的二三一,也就是我们的一点七十二,一点七十二是主,现在它是从。 ok, 那 现在这个都没问题了, 那同样的,我们在这上面也能看到我们这一个所有的状态。好的,那我们今天这个 off street 技术分享就到这里。那大家喜欢厨师长的视频呢?记得帮厨师长点点赞,点点关注,我们下期再见,谢谢观看。