数据库表格字段值数据不准确

背景:2019.05.05   正在悠哉悠哉的梦游,忽然开发说数据对不上,问我是不是线上升级服务时候把数据误删了,现在数据都没了(注意:数据没丢失,是表格字段值更新为了null,这老哥表述有点小问题)

解决思路:一脸懵逼,但是想有binlog日志,抱着试试的想法去把binglog日志拉取出来

  1>通过开发确定哪条数据有问题

  2>通过数据的更新时间从binlog日志里边拉取当时执行的SQL,然后发给开发群,看一下是谁代码里SQL的问题

读取binlog日志的命令行:

基于开始/结束时间:

查询2019-04-02 14:04:09到2019-04-02 14:06:50 数据库为XX的操作日志,输入如下命令将数据写入到一个备用的文件即可。

[[email protected] mysqlbin]# mysqlbinlog --no-defaults --database=XX--start-datetime="2019-04-02 14:04:09" --stop-datetime="2019-04-02 14:06:50" mysql-bin.000105 > /mydata/prod.log

查看提出来的日志:

[[email protected] mysqlbin]# less /mydata/prod.log

基于pos值,注:XX是库名,/mysql-bin.000001是二进制文件路径

[[email protected] ~]# mysqlbinlog --start-position=1111--stop-position=2222-d XX  /mysql-bin.000001

原文地址:https://www.cnblogs.com/byfboke/p/10814733.html

时间: 2024-08-07 22:10:31

数据库表格字段值数据不准确的相关文章

DBChart中获得X、Y坐标值和数据库相关字段值

DBChart中获得X.Y坐标值和数据库相关字段值 一般来说想要获得DBChart中的X.Y坐标值都是非常简单的,这里简单说下,双击DBChart,弹出对话框,选择tools标签,加入光标工具,然后选中光标工具,找到光标工具的事件(光标工具事件一共两个)一个是OnChange()另一个是OnSnapChange(),这两个的区别跟光标设置中的Snap选项有关,Snap是让光标保持在Series上,通常功能OnChange中就可以得到X.Y轴坐标,但是这时如果你想要显示数据库中和X.Y轴同行的数据

前端页面添加表格,实现每一行能上下移动,还可修改数据库排序字段值

var up = "<a href=\"javascript:void(0)\" onclick=\"moveUp(this)\">上移</a>"; var down = "<a href=\"javascript:void(0)\" onclick=\"moveDown(this)\">下移</a>"; <tr id="t

s验证数据库中字段值是否重复

daoImpl: public String isVipCode(String vipcode) { String sql = "from FfzjUserEntity where vip_code='"+vipcode+"' "; Query queryObject = getSession().createQuery(sql.toString()); List<FfzjUserEntity> list = queryObject.list(); if

关于SQLServer数据库中字段值为NULL,取出来该字段放在DataTable中,判断datatable中该字段值是否为NULL的三种方法

1. DataTable dt;                               //假设字段为name, dt已经保存了数据dt.rows[0]["name"] == System.DBNull.Value;  //判断第一行数据的name字段是否为空 2. DataTable dt;                          //假设字段为name, dt已经保存了数据   dt.rows[0]["name"].ToString() == &

去掉Oracle数据库中字段值前后空格

发现oracle字段钟包含了空格,可能是前空格,也可能是后空格,因为是历史数据,需要特殊处理.但是中间的空格可能是一些特殊人员的姓名含有,这种情况不能处理.所以我们只需要处理前后空格即可.使用如下sql,即可解决. update t_pwm_bind set customer_nm = trim(customer_nm), crd_no = trim(crd_no), certif_id = trim(certif_id), phone_no = trim(phone_no) where cus

mongodb 的js脚本或pymongodb脚本修改数据库的字段值

使用 data$ mongo localhost:27017/jd_51job_raw updateName.js --shell js 脚本: updateName.js var cursor = db.getCollectionNames(); for(i=0;i<cursor.length;i++){ if("system.indexes"==cursor[i]||"system.profile"==cursor[i]){ print("Fin

C#三种判断数据库中取出的字段值是否为空(NULL) 的方法

最近操作数据库,需要判断返回的字段值是否为空,在网上收集了3种方法供大家参考 1 通过System.DBNull判断,网上大部分都使用这个方法. 复制代码代码如下: DataTable dt;                               //假设字段为name, dt已经保存了数据dt.rows[0]["name"] == System.DBNull.Value;  //判断第一行数据的name字段是否为空 2 通过IsNull判断 复制代码代码如下: DataTabl

使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据

应用场景: 我们需要设计一个数据库来保存多个文档中每个文档的关键字.假如我们每个文档字符都超过了1000,取其中出现频率最大的为我们的关键字. 假设每个文档的关键字都超过了300,每一个文件的0-299号存储的是我们的关键字.那我们要建这样一个数据库,手动输入这样的一个表是不现实的,我们只有通过程序来帮我实现这个重复枯燥的操作. 具体的示意图如下所示: 首先图1是我们的原始表格: 图1 这个时候我们需要程序来帮我们完成自动字段的创建和数据的插入. 图2 上图是我们整个表的概况.下面我们就用程序来

C#获得数据库指定字段的值

获得数据库指定字段的值,赋给本地变量 如下,获得userinfo数据表里的字段"userid"."orgid", string userid=""; string orgid=""; using (SQLiteConnection con = new SQLiteConnection(Constants.DATA_SOURCE)) { con.Open(); using (SQLiteCommand cmd = new SQL