记录一次准备给客户预演示出现的问题

事故的背景:

当所以功能开发完成后,开发人员在本地进行了测视已经没问题了。就把所有开发的功能模块合并到 dev 分支,进行打包,发布到预演示的线上环境。当在给相关人员进行演示的时候,出现了问题。

我们使用 https 调用对方的接口发送 Json 数据,对方进行校验马上返回校验的响应结果。问题出现在我们每次发送数据都是成功的,但是对方发送回来的数据,一直不能正常插入 DB(使用的是 Oracle)

事故的真正原因:

因为有个同事在进行了 delete 后没有进行 commit 提交。导致表一直被锁住,不能被其他人使用。

但是杀死进程和本地 commit 几次后,依旧无法插入数据,提示还是 DB 被这个同事锁住。

最后查出的真正原因是,这个同事首先使用了 无线网络 进行了 DB 的操作,当时并没有 commit 提交操作。而后又插上网线继续工作,问题就出现在这里。

首先,当我们使用无线网络操作 DB 时,Oracle 会默认这是一次会话(session),当开发人员对 DB 进行操作后(没有 commit ),又切换到了有线网络状态下,而这 2 种状态下的本机 IP 是不一样的(有兴趣的朋友可以试试使用无线和有线连接状态下,同一台电脑的 IP 地址是否一样)。

Oracle 会认为第一次 session 没有关闭,会将表锁住,等待这次 session 会话的提交直到结束。

所以当同事再连接上网线,使用有线网络进行 commit 时候会提示操作失败。因为 Oracle 数据库认为这又是一次新的 session 会话。而第一次的 session 会话并没有结束,就会导致出现了 DB 一直被锁的情况。

事故的解决办法:

首先使用语句查询(只有 Admin 用户才可以)出被锁住的表和锁表的开发人员的工号。

然后杀死这个进程或者进行 DB 重启即可。

Oracle 、MySql 数据库表被锁的原因分析的更多相关文章

  1. 将Hive统计分析结果导入到MySQL数据库表中(一)——Sqoop导入方式

    https://blog.csdn.net/niityzu/article/details/45190787 交通流的数据分析,需求是对于海量的城市交通数据,需要使用MapReduce清洗后导入到HB ...

  2. mysql数据库表的基本操作sql语句总结

    1,命令行登录命令 mysql -h localhost -u root -p C:\Users\lenovo>mysql -u root -p Enter password: ***** We ...

  3. Mysql的表级锁

    我们首先需要知道的一个大前提是:mysql的锁是由具体的存储引擎实现的.所以像Mysql的默认引擎MyISAM和第三方插件引擎 InnoDB的锁实现机制是有区别的.可根据不同的场景选用不同的锁定机制. ...

  4. mysql数据库表的自增主键号不规律,重新排列

    mysql数据库表的自增主键ID乱了,需要重新排序. 原理:删除原有的自增ID,重新建立新的自增ID. 1.删除原有主键: ALTER TABLE `table_name` DROP `id`; 2. ...

  5. 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表

    创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...

  6. 用户中心mysql数据库表结构的脚本

    /* Navicat MySQL Data Transfer Source Server : rm-m5e3xn7k26i026e75o.mysql.rds.aliyuncs.com Source S ...

  7. mysql数据库表结构导出

    mysql数据库表结构导出 命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 导出整个数据库结构和数据 mysqldump -h localh ...

  8. 关于mysql数据库行级锁的使用(一)

    项目上一个业务需要对某条数据库记录加锁,使用的是mysql数据库 因此做了一个关于mysql数据库行级锁的例子做测试 package com.robert.RedisTest; import java ...

  9. Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题

    Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...

随机推荐

  1. grep中正则表达式使用尖括号表示一个单词

    比如 grep '\<bin\>' /etc/passwd --color

  2. openstack一些介绍

    最近刚考完redhat 的 openstack,就想来这里简单介绍一下. openstack涉及到overcloud和undercloud两个层面的操作,undercloud需要一些技术操作,然后来创 ...

  3. std::wcout输出1遍不输出

    std::wcout输出1遍不输出 程序明明在执行地方执行 wcout无法输出到控制台 cout就可以 添加中文支持即可

  4. Typora 精美而强大的Markdown编辑器 转

    Typora 精美而强大的Markdown编辑器 Markdown编辑器千千万,可是有颜值.功能强并且免费的,就没有几个了.之前一直在用Mou,分屏预览模式方便得很,是一个非常好的选择.不过这篇可不是 ...

  5. mysql 日期函数大全

    对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型. 这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: my ...

  6. throws/throw Exception 异常应用

    throws通常用于方法的声明,当方法中发生异常的时候,却不想在方法中对异常进行处理的时候,就可以在声明方法时, 使用throws声明抛出的异常,然后再调用该方法的其他方法中对异常进行处理(如使用tr ...

  7. IntelliJ IDEA2016.1 + maven 创建java web 项目[转]

    最近开始使用idea 来写java项目了,这个很流行,相比Eclipse方便了很多.功能多了,相对应的使用的复杂度也较高了,因为网上很多的使用和创建项目的简单教程,都是基于老版本的,每个新版本都有不一 ...

  8. 云栖PPT下载 | 开源界大咖集体现身,开源数据库专场重点再回眸!

    阿里云开源数据库项目最新发布 阿里巴巴集团副总裁.阿里云智能数据库事业部总裁.高级研究员李飞飞(飞刀).阿里云数据库资深技术专家楼方鑫(黄忠)以及阿里云数据库技术专家傅宇(齐木)三位阿里云技术专家为大 ...

  9. Android中对消息机制(Handler)的再次解读

    今天遇到一些关于在子线程中操作Handler的问题,感觉又要研究源代码了,但是关于Handler的话,我之前研究过,可以参考这篇文章:http://blog.csdn.net/jiangwei0910 ...

  10. 2019杭电多校第一场hdu6579 Operation(线性基)

    Operation 题目传送门 解题思路 把右边的数尽量往高位放,构造线性基的时候同时记录其在原序列中的位置,在可以插入的时候如果那个位置上存在的数字的位置比新放入的要小,就把旧的往后挤.用这种发现构 ...