zoukankan      html  css  js  c++  java
  • inset插入时间不一致问题记录

    今天业务反应有一个表intime、senddate两个字段的设置是取默认值sysdate。
    但是我们在plsql中插入一条记录(这两个字段为空不填数值),系统中生成的默认时间是sysdate +10分钟。
     
    插入测试数据后时间的确+10分钟
     
    使用dbms_metadata.get_ddl 查看该表创建语句发现该表为同义词并且使用DB_LINK连接到另一个库
     
    在查看两主机时间,发现的确有时差
    oracle@nadian:/home/oracle> date
    Thu May 28 16:55:07 EAT 2020
     
    oracle@nadian1:/home/oracle> date
    Thu May 28 17:04:13 CST 2020
     
    使用DB_LINK和本地时间对比,结果是一致的
    select sysdate from dual union all select sysdate from dual@nadian_A1.nadian.MOBILE.COM
    2020/5/28 16:56:12
    2020/5/28 16:56:12
     
    -----nadian
    SQL> select sysdate from dual;
    SYSDATE
    -----------------
    20200528 17:00:48
     
    SQL>  select sysdate from dual@nadian_A1.nadian.MOBILE.COM;
    SYSDATE
    -----------------
    20200528 17:00:50
     
    ------nadian1
    SQL> SQL> select sysdate from dual;
     
    SYSDATE
    -----------------
    20200528 17:10:14
     
    如下实验可以证明
     
    创建表
     SQL>  CREATE TABLE "DBMT"."SMNOTIFY_TEST"
      2     (    "REGION" NUMBER(4,0) NOT NULL,
      3          "INTIME" DATE DEFAULT sysdate NOT NULL ,
      4          "SENDDATE" DATE DEFAULT sysdate
      5     );
    Table created.
       
     
    远端库创建该表同义词,并插入测试数据
    SQL>     CREATE OR REPLACE SYNONYM "DBMT"."SH_SMNOTIFY_TEST" FOR "DBMT"."SMNOTIFY_TEST"@"LNK_SMS_A1.HEBEI.MOBILE.COM";
     
    Synonym created.
     
    SQL> SQL> insert into DBMT.SH_SMNOTIFY_TEST(region) values(311);
     
    1 row created.
     
     
    查看时间确实为源表段的系统时间,问题一目了然
    SQL> select * from  DBMT.SH_SMNOTIFY_TEST;
     
        REGION INTIME            SENDDATE
    ---------- ----------------- -----------------
           311 20200528 17:09:36 20200528 17:09:36
     
    解决方案:肯定是得修改系统时间的
     
    该RAC共有4个节点,其中问题节点1时间快了10分钟
     
    风险:
    1.如果直接将1节点系统时间往回调10分钟,首先oracle不推荐在数据库和集群启动的时候大幅度调整时间,特别是往后调,一些进程会通过系统时间判断无响应然后就.....节点驱逐
    2.业务部分使用时间的应用可能会受影响,比如短信发送时间,发送成功时间,时间回调可能导致发送成功时间小于短信发送时间.
     
    建议:
    1.建议NTP 增加 -x   微调 慢调
    2.停库和CRS , os 调大跨度的时间
     
     

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

  • 相关阅读:
    函数表达式
    BOM
    让超出容器高度的内容滚动显示但不出现滚动条
    插件书写示例
    php中redis的安装
    日常工作bug总结
    pip freeze requirements.txt命令迁移模块
    Django18-中间件和cache实现限制用户访问频率
    Django17-文件上传下载
    Django16-cache缓存
  • 原文地址:https://www.cnblogs.com/nadian-li/p/12982399.html
Copyright © 2011-2022 走看看