• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

NTP方式保证以时间戳同步可靠性

mysql 搞代码 4年前 (2022-01-09) 13次浏览 已收录 0个评论

数据库同步的方式有设置标志位同步方式、以时间戳同步的方式,对于一对一的同步这两种方式都满足,但是对于一对多的同步,则只能选择时间戳的同步方式了,但是已时间戳同步的方式的一个问题是如何可靠的保证数据可以不丢失的同步到数据库中。下面有两种方式

数据库同步的方式有设置标志位同步方式、以时间戳同步的方式,对于一对一的同步这两种方式都满足,但是对于一对多的同步,则只能选择时间戳的同步方式了,但是已时间戳同步的方式的一个问题是如何可靠的保证数据可以不丢失的同步到数据库中。下面有两种方式来保证以时间戳同步的可靠性。

1、计算服务器与客户端两台电脑的时间差,将该时间差记入在同步时间的比对当中,下图是使用kettle做的一个计算同步的时间差的思路:

该思路的xml代码为:

      getLeadValue                Normal    0    /downloadServerData/commonData            <table />ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDTRANSNAMEYTRANSNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD<table />ID_BATCHYID_BATCHSEQ_NRYSEQ_NRLOGDATEYLOGDATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSINPUT_BUFFER_ROWSYINPUT_BUFFER_ROWSOUTPUT_BUFFER_ROWSYOUTPUT_BUFFER_ROWS<table />ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID<table />ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSLOG_FIELDNLOG_FIELD                    <table />            0.0      0.0        10000    50    50    N    Y    50000    Y        N    1000    100                                  -  2012/11/16 13:59:51.117  -  2014/05/12 15:22:12.008            backupConn    ${CLIENT_DATABASE_IP}    ORACLE    Native    ${CLIENT_DATABASE_NAME}    ${CLIENT_DATABASE_PORT}    ${CLIENT_DATAB<em style="color:transparent">本文来源[email protected]搞@^&代*@码网(</em>ASE_USERNAME}    ${CLIENT_DATABASE_PASSWORD}                      <code>FORCE_IDENTIFIERS_TO_LOWERCASE</code>N      <code>FORCE_IDENTIFIERS_TO_UPPERCASE</code>N      <code>IS_CLUSTERED</code>N      <code>PORT_NUMBER</code>${CLIENT_DATABASE_PORT}      <code>QUOTE_ALL_FIELDS</code>N      <code>SUPPORTS_BOOLEAN_DATA_TYPE</code>N      <code>USE_POOLING</code>N            serverConn    ${SERVER_DATABASE_IP}    ORACLE    Native    ${SERVER_DATABASE_NAME}    ${SERVER_DATABASE_PORT}    ${SERVER_DATABASE_USERNAME}    ${SERVER_DATABASE_PASSWORD}                      <code>FORCE_IDENTIFIERS_TO_LOWERCASE</code>N      <code>FORCE_IDENTIFIERS_TO_UPPERCASE</code>N      <code>IS_CLUSTERED</code>N      <code>PORT_NUMBER</code>${SERVER_DATABASE_PORT}      <code>QUOTE_ALL_FIELDS</code>N      <code>SUPPORTS_BOOLEAN_DATA_TYPE</code>N      <code>USE_POOLING</code>N            wardConn    ${CLIENT_DATABASE_IP}    ORACLE    Native    ${CLIENT_DATABASE_NAME}    ${CLIENT_DATABASE_PORT}    ${CLIENT_DATABASE_USERNAME}    ${CLIENT_DATABASE_PASSWORD}                      <code>FORCE_IDENTIFIERS_TO_LOWERCASE</code>N      <code>FORCE_IDENTIFIERS_TO_UPPERCASE</code>N      <code>INITIAL_POOL_SIZE</code>50      <code>IS_CLUSTERED</code>N      <code>MAXIMUM_POOL_SIZE</code>500      <code>PORT_NUMBER</code>${CLIENT_DATABASE_PORT}      <code>QUOTE_ALL_FIELDS</code>N      <code>SUPPORTS_BOOLEAN_DATA_TYPE</code>N      <code>USE_POOLING</code>Y           增加常量增加常量 2Y    计算器Set Variables 2Y    调用DB存储过程调用DB存储过程 2Y    调用DB存储过程 2增加常量Y    增加常量 2计算器Y         Set Variables 2    SetVariable        Y    1                    none                                        TIMEDIFF        DOWNLOAD_SERVER_COMMON_DATA_LEAD        JVM                          Y                             118      273      Y                增加常量    Constant        Y    1                    none                                        DIVIDEND        Integer                                        86400000        -1        -1                                       388      241      Y                增加常量 2    Constant        Y    1                    none                                        DEVIATION        Integer                                        10000        -1        -1                                       364      362      Y                计算器    Calculator        Y    1                    none                             TEMPSUBTRACTLOCAL_DATESERVER_DATEBigNumber-1-1N       TEMP2ADDTEMPDEVIATIONBigNumber-1-1N       TIMEDIFFDIVIDETEMP2DIVIDENDBigNumber-1-1N                             251      272      Y                调用DB存储过程    DBProc        Y    1                    none                          serverConn    F_GET_SYSDATE2INT                  SERVER_DATE      BigNumber        Y                             140      134      Y                调用DB存储过程 2    DBProc        Y    1                    none                          wardConn    F_GET_SYSDATE2INT                  LOCAL_DATE      BigNumber        Y                             353      132      Y                    N

2、通过NTP方式校对系统时间

1)如果可以连接到Internet网中,则可以采用国际上的校时服务器去校对时间

2)如果在内网中且不能上网,则可以自己定义一台都可访问到的台式机作为NTP服务器,其他机子与该计算机教士即可,下面是window NTP校时服务器的设置。

可以参考文章:NTP服务同步时间方案


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:NTP方式保证以时间戳同步可靠性

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址