Oracle 更新某一个字段没有变化,也不报错

求各位老哥帮帮忙,我有一个a表,里面有7个字段是char(1)类型的,只填写1或0,对这个表更新数据,或者插入新的数据 ,前6个char(1)的字段没有异常,正常更新,但最后一个char(1)字段,就是为空,怎么更新都没有用,也没有报错,也没有锁表

img

以前都很正常 就今天开始出现这种情况了,各位老哥帮忙想想有什么会这么影响的吗 ,我在自己本地测试完全正常的

你把sql贴出来

把表结构和insert语句放出来看,保证是你没有给最后一个字段赋值

登陆数据库,准备环境

mysql> create database testdb;
mysql> delete from testdb.t1;
mysql> insert into testdb.t1 values(1);    #插入数据1,模拟周一
mysql> select * from testdb.t1;

1、完整备份:周一

[root@mysql-server ~]# innobackupex --user=root --password='123' /xtrabackup

2、差异备份:周二 —— 周三

语法: # innobackupex --user=root --password=888 --incremental /xtrabackup --incremental-basedir=/xtrabackup/完全备份目录(周一)

3.在登陆mysql:

mysql> insert into testdb.t1 values(2);  #插入数据2,模拟周二
差异备份周二的
[root@mysql-server ~]# innobackupex --user=root --password='123' --incremental /xtrabackup --incremental-basedir=/xtrabackup/2019-08-20_15-42-02/  #备份目录基于周一的备份
4

.再次登陆mysql

mysql> insert into testdb.t1 values(3);  #插入数据,模拟周三
[root@mysql-server ~]# innobackupex --user=root --password='123' --incremental /xtrabackup --incremental-basedir=/xtrabackup/2019-08-20_15-42-02/  #还是基于周一的备份

查看一下备份目录

[root@mysql-server ~]# ls /xtrabackup/

差异备份恢复流程

  1. 停止数据库
  2. 清理环境
  3. 重演回滚redo log(周一,某次差异)--> 恢复数据
  4. 修改权限
  5. 启动数据库
  6. binlog恢复
    停止数据库
[root@mysql-server ~]# systemctl stop mysqld
[root@mysql-server ~]# rm -rf /var/lib/mysql/*

恢复全量的redo log

[root@mysql-server ~]# innobackupex --apply-log --redo-only /xtrabackup/2019-08-20_15-42-02/

语法: # innobackupex --apply-log --redo-only /xtrabackup/完全备份目录(周一)
2.恢复差异的redo log
语法:# innobackupex --apply-log --redo-only /xtrabackup/完全备份目录(周一)–incremental-dir=/xtrabacku/某个差异备份
这里我们恢复周三的差异备份
[root@mysql-server ~]# innobackupex --apply-log --redo-only /xtrabackup/周一目录/ --incremental-dir=/xtrabackup/周三目录/
#我们恢复周三的差异备份
3.恢复数据

语法:# innobackupex --copy-back /xtrabackup/完全备份目录(周一)
[root@mysql-server ~]# innobackupex --copy-back /xtrabackup/周一目录/

修改权限:

[root@mysql-server ~]# chown -R mysql.mysql /var/lib/mysql
[root@mysql-server ~]# systemctl start mysqld

登陆查看一下