范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Oracle不同数据库之间同步处理方案

  背景:项目中遇到的问题,需要二区两台数据库之间同步一些表,以及导出sql文件同步至三区数据库。1 SQL文件目录
  新建SQL文件生成的目录D:mptmsudataDNLTBDIR。
  二区数据库中执行下列语句: create or replace directory DNL_TB_DIR as "D:mptmsudataDNLTBDIR";2 数据库修改
  1)新建二区数据库服务器到二区数据库服务器的数据库DATABASE LINK文件。
  二区数据库中执行下列语句: create public database link XQDNJL connect to YPTMS using "192.168.10.8/mptmsu";
  2)二区数据库服务器新建表DNL_TBJL。
  二区数据库中执行下列语句: -- Create table create table DNL_TBJL ( id VARCHAR2(25) not null, tables VARCHAR2(25) not null, czlx VARCHAR2(25), sql VARCHAR2(2000) not null, time DATE not null, bak VARCHAR2(128) not null ) tablespace MPTMSU pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); -- Add comments to the columns comment on column DNL_TBJL.id is "ID"; comment on column DNL_TBJL.tables is "同步表名"; comment on column DNL_TBJL.czlx is "操作类型"; comment on column DNL_TBJL.sql is "SQL内容"; comment on column DNL_TBJL.time is "操作时间";3 触发器
  在二区数据库服务器说新建相关表的触发器,触发器实现的功能是东区2区向西区直接通过DBLINK直接执行;东区2区向东区3区通过生成SQL文件到D:mptmsudataDNLTBDIR目录下;触发器的每次操作都记录到表格DNL_TBJL(id, tables,czlx, SQL, TIME, BAK)内。
  下面以AEMTINFO表为例,具体的触发器代码如下:create or replace trigger SYN_AEMTINFO after insert or update or delete on AEMTINFO for each row /*------------------------------------------------------------------ 功 能:东区2区向西区、东区3区传送数据库变化 功能说明:东区2区向西区直接通过DBLINK直接执行;东区2区向东区3区通过生成SQL文件到 D:mptmsudataDNLTBDIR目录下;触发器的每次操作都记录到表格DNL_TBJL (id, tables,czlx, SQL, TIME, BAK)内。 -------------------------------------------------------------*/ declare integrity_error exception; errno integer; errmsg char(200); tmp varchar2(1000); tmpval varchar2(1000); val varchar2(4000); id varchar2(20); dnltb utl_file.file_type; begin if inserting then insert into AEMTINFO@XQDNJL (EMTID, SID, SNAME, STIME, ETIME, INTERVAL, EARGS, ADDDATE, REMARK, FLAG) values (:NEW.EMTID, :NEW.SID, :NEW.SNAME, :NEW.STIME, :NEW.ETIME, :NEW.INTERVAL, :NEW.EARGS, :NEW.ADDDATE, :NEW.REMARK, :NEW.FLAG); select "insert into AEMTINFO (EMTID,SID,SNAME,STIME,ETIME,INTERVAL,EARGS,ADDDATE,REMARK,FLAG) values (" ||""""||:NEW.EMTID||""""||"," ||""""||:NEW.SID||""""||"," ||""""||:NEW.SNAME||""""||"," ||"to_date("||""""||to_char(:NEW.STIME,"yyyy-mm-dd hh24:mi:ss")||""""||","||"""yyyy-mm-dd hh24:mi:ss"""||")," ||"to_date("||""""||to_char(:NEW.ETIME,"yyyy-mm-dd hh24:mi:ss")||""""||","||"""yyyy-mm-dd hh24:mi:ss"""||")," ||""""||:NEW.INTERVAL||""""||"," ||""""||:NEW.EARGS||""""||"," ||"to_date("||""""||to_char(:NEW.ADDDATE,"yyyy-mm-dd hh24:mi:ss")||""""||","||"""yyyy-mm-dd hh24:mi:ss"""||")," ||""""||:NEW.REMARK||""""||"," ||""""||:NEW.FLAG||""""||");" into val from dual; select (select to_char(sysdate, "yyyyMMddHH24miss") from dual) || lpad(DNL_TBXL.nextval, 3, "0") into id from dual; insert into DNL_TBJL (id, tables,czlx, SQL, TIME, BAK) values (id,"AEMTINFO", "INSET", val, sysdate, id); dnltb := utl_file.fopen("DNL_TB_DIR", "INSET-"||"AEMTINFO-"||id || ".sql", "w"); utl_file.put_line(dnltb, val); utl_file.put_line(dnltb, "commit;"); utl_file.put_line(dnltb, "exit;"); utl_file.fclose(dnltb); elsif updating then update AEMTINFO@XQDNJL set EMTID = :NEW.EMTID, SID = :NEW.SID, SNAME = :NEW.SNAME, STIME = :NEW.STIME, ETIME = :NEW.ETIME, INTERVAL = :NEW.INTERVAL, EARGS = :NEW.EARGS, ADDDATE = :NEW.ADDDATE, REMARK = :NEW.REMARK, FLAG = :NEW.FLAG where emtid = :OLD.emtid; select "update AEMTINFO set " ||"EMTID = "||""""||:NEW.EMTID||""""||"," ||"SID = "||""""||:NEW.SID||""""||"," ||"SNAME = "||""""||:NEW.SNAME||""""||"," ||"STIME = "||"to_date("||""""||to_char(:NEW.STIME,"yyyy-mm-dd hh24:mi:ss")||""""||","||"""yyyy-mm-dd hh24:mi:ss"""||")," ||"ETIME = "||"to_date("||""""||to_char(:NEW.ETIME,"yyyy-mm-dd hh24:mi:ss")||""""||","||"""yyyy-mm-dd hh24:mi:ss"""||")," ||"INTERVAL = "||""""||:NEW.INTERVAL||""""||"," ||"EARGS = "||""""||:NEW.EARGS||""""||"," ||"ADDDATE = "||"to_date("||""""||to_char(:NEW.ADDDATE,"yyyy-mm-dd hh24:mi:ss")||""""||","||"""yyyy-mm-dd hh24:mi:ss"""||")," ||"REMARK = "||""""||:NEW.REMARK||""""||"," ||"FLAG = "||""""||:NEW.FLAG||""""|| "where emtid = "||:OLD.emtid||";" into val from DUAL; select (select to_char(sysdate, "yyyyMMddHH24miss") from dual) || lpad(DNL_TBXL.nextval, 3, "0") into id from dual; insert into DNL_TBJL (id, tables,czlx, SQL, TIME, BAK) values (id,"AEMTINFO", "UPDATE", val, sysdate, id); dnltb := utl_file.fopen("DNL_TB_DIR", "UPDATE-"||"AEMTINFO-"||id || ".sql", "w"); utl_file.put_line(dnltb, val); utl_file.put_line(dnltb, "commit;"); utl_file.put_line(dnltb, "exit;"); utl_file.fclose(dnltb); elsif deleting then delete from AEMTINFO@XQDNJL where emtid = :OLD.emtid; tmp := :OLD.emtid; tmpval := "delete from AEMTINFO where emtid="; val := concat(tmpval, tmp || ";"); select (select to_char(sysdate, "yyyyMMddHH24miss") from dual) || lpad(DNL_TBXL.nextval, 3, "0") into id from dual; insert into DNL_TBJL (id, tables,czlx, SQL, TIME, BAK) values (id,"AEMTINFO", "DELETE", val, sysdate, id); dnltb := utl_file.fopen("DNL_TB_DIR", "DELETE-"||"AEMTINFO-"||id || ".sql", "w"); utl_file.put_line(dnltb, val); utl_file.put_line(dnltb, "commit;"); utl_file.put_line(dnltb, "exit;"); utl_file.fclose(dnltb); end if; exception when integrity_error then raise_application_error(errno, errmsg);  end; 4 sql文件入库批处理
  通过Windows系统自带的计划任务执行下面批处理实现数据入库
  1)三区区数据库服务器新建表DNL_SQLJL。
  三区数据库中执行下列语句: -- Create table create table DNL_SQLJL ( id VARCHAR2(25), tables VARCHAR2(25), czlx VARCHAR2(25), sqlml VARCHAR2(2000), sql VARCHAR2(2000), time DATE, bak VARCHAR2(128) ) tablespace MPTMSU pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); -- Add comments to the columns comment on column DNL_SQLJL.id is "ID"; comment on column DNL_SQLJL.tables is "同步表名"; comment on column DNL_SQLJL.czlx is "操作类型"; comment on column DNL_SQLJL.sqlml is "SQL文件目录"; comment on column DNL_SQLJL.sql is "SQL内容"; comment on column DNL_SQLJL.time is "操作时间";
  2)三区区数据库服务器新建计划任务定期执行DQ3QRK-ZXWJ.bat批处理。
  3)DQ3QRK-ZXWJ.bat批处理调用DQ3QRK-ZXSQL.bat来执行入库操作。
  DQ3QRK-ZXWJ.bat语句如下: @echo off REM set Log=logDQ3QRKSQL-%date:~0,4%.%date:~5,2%.%date:~8,2%.log REM rem 第一步 dir D:mptmsudataDNLTBDIR* /b /a|findstr ".sql>" >D:mptmsudataDNLTBDIRDQ3QRKWJ.TXT rem cd /d %~dp0 && for /f "tokens=1-3 delims=-. " %%i in (D:mptmsudataDNLTBDIRDQ3QRKWJ.TXT) do %~dp0DQ3QRK-ZXSQL.bat %%i %%j %%k >>%Log% 2>&1 pause exit
  DQ3QRK-ZXSQL.bat语句如下: @echo off REM REM set Log=logDQ3QRKSQL-%date:~0,4%.%date:~5,2%.%date:~8,2%.log set RQ=%date:~0,4%%date:~5,2% set SQLWJ=D:mptmsudataDNLTBDIR%1-%2-%3.sql set SQLJL=D:mptmsudataDNLTBDIRsqljl.sql REM sqlplus -s yptms/yptms@mptmsu @%SQLWJ% for /f "tokens=1 delims=;" %%i in (%SQLWJ%) do (set tmpsql=%%i goto aa) :aa echo insert into DNL_SQLJL (ID,TABLES,CZLX,SQLML,SQL,TIME) values("%3","%2","%1","D:mptmsudataDNLTBDIR%RQ%%1-%2-%3.sql","%tmpsql%",SYSDATE); >%SQLJL% echo commit; >>%SQLJL% echo exit; >>%SQLJL% sqlplus -s yptms/yptms@mptmsu @D:mptmsudataDNLTBDIRsqljl.sql del /f /q D:mptmsudataDNLTBDIRsqljl.sql IF NOT EXIST D:mptmsudataDNLTBDIR%RQ% md D:mptmsudataDNLTBDIR%RQ% move /Y %SQLWJ% D:mptmsudataDNLTBDIR%RQ%

数字电网建设是数字中国建设的基础性环节数字化转型是实现电网变革的必由之路,当前,引领电网数字化转型的一个重要标志是基于云平台的互联网人工智能大数据物联网等新技术的深度应用。从全球范围看,世界主要国家均把能源技术视为新一农村电商催生新产业农村电商拓展了乡村既有产业的网络销售。可以实现由一个农户的特色产品变为一个当地的特色产业,有力地带动了产业发展和农民增收。从实践来看,农村电商促进了乡村原有产业的市场拓展,加快了它Ubuntu18。04下部署k8s一更新Ubuntu源mvetcaptsources。listetcaptsources。list。bakcatetcaptsources。list。bakgrepvgrepv34sIBM和AWS扩大云合作聚焦于软件战略IBM今天宣布与AWS扩大合作伙伴关系,让客户更轻松地在AWS云平台上运行IBM的软件。IBM拥有广泛的涵盖数十个类别的软件产品组合,其中有30多种产品可以通过AWSMarketp田间地头显身手北斗系统引领农业精细化来源人民网原创稿编者按北斗卫星导航系统是支撑我国经济社会发展的重要空间基础设施,北斗三号系统开通后,提高北斗产业支撑能力扩大北斗应用普及率已成为促进北斗产业发展保障国家安全的重要任汽车早报马斯克称特拉斯最近没有在中国新增工厂计划丰田2021财年营业利润达日企史上最高水平IDC一季度国内乘用车L2级自动驾驶渗透率达23。25月11日,据IDC最新发布中国自动驾驶汽车市场数据追踪报告显示,2022年一季度,我国乘用车市场中,L2级自动驾驶新车渗透率达杨开忠第四产业,未来已来当前,新一轮科技浪潮正在席卷全球,突破性技术集群不断涌现,产业形态以智能化网络化数字化为核心特征,正在开启前所未有的巨变。可以说,世界经济即将到达新的历史分流节点,正如经济史上农业田间地头显身手北斗系统引领农业精细化来源人民网每年五月是苹果幼果的发育时期,在山东省淄博市沂源县南麻街道中以智慧果园内,几位新农人并没有检查幼果的生长情况,而是弯腰检查埋在田里的探测器。与传统果园不同,通过数字化手段java实战之仿天猫商城系统的实现这篇文章主要介绍了如何利用Java制作一个基于SSM框架的迷你天猫商城系统,文中采用的技术有JSPSpringbootSpringMVCSpring等,需要的可以点击下方链接。Ja性价比首选!机械师M7二代双模游戏鼠标上手体验鼠标,已经成为日常办公最基础的单元,它的好坏性能直接影响我们工作的心情与效率。机械师这个品牌相信大家都很熟悉了,之前我们介绍过它家的游戏手柄和游戏耳机,性价比都非常高。今天我就给大荣耀70量产,天玑9000骁龙7Gen1天玑8100,还有12512G售价不高现如今新荣耀已涅槃重生,可以说荣耀应该是目前国内发展速度最快的手机厂商之一,尤其是在推出荣耀50系列荣耀60系列之后,凭借着不错的销量成绩,以略低于vivo的销量,环比上涨54。4
想要在咸鱼上卖货,加了一个老师说要交钱,大家觉得靠谱吗?不靠谱!你得先了解闲鱼和淘宝拼多多的区别,做咸鱼更多的是选品思路。闲鱼是一个二手交易平台,这是阿里官方的定位,当然也可以卖新品,事实上大部分人卖的是新品,就像是我,淘宝拼多多和闲鱼小米憋大招,5月份主场小米12ultra被爆料大家都知道,小米有一款数字型号的旗舰机还未发布,至今也未预热小米12ultra。小米12ultra作为小米的数字系列的王牌,拥有旗舰机最高的配置,不论性能拍照充电功能等,都是顶配。苹果正在继续扩大其mini一位分析师称,苹果正在继续扩大其miniLED面板的供应链,以期增加MacBookPro显示屏的产量。苹果的14英寸MacBookPro和16英寸MacBookPro都使用mini给你揭秘很多二手手机贩子的黑幕,最近3个月换了8部手机的经历我的换机经历告诉你,一定不要贪小便宜,觉得自己可以换更好的,你可以精明过二手手机老板吗?你只会越来越亏。我可能是一个对手机特别感兴趣的爱好者,发烧友算不上。起初用的是苹果12,因为红米K50使用一周,有些话不得不说红米K50的性价比很高,2000多块钱几乎可以体验到高端机该有的配置。回顾一下红米K50的硬件参数处理器天玑8100屏幕6。67英寸E42K屏DC调光前摄2000万像素后摄4800硬核小尾巴水解贰式几个月前听说水月要出个小尾巴,当时我想不会又像隔壁某天xxx(二次元品牌)出入门级别吧,入门级别的小尾巴我是真的没太多兴趣,当知道是使用CS43198的解码,这玩意不是没货了吗?,通信能力惊人的华为P50系列手机,带来全新配色与大家见面万物复苏,生机勃勃,愿这个春天所有的美好都如期而至,华为P50系列手机也踏着春意如期而至。作为引领手机潮流的华为P系列,在科技的加持下,不断推动着美学设计理念的进化。要说美是什么?首发150W闪充!天玑8100IMX766,红米K50也不香了?长期以来红米都是性价比的代表,从诞生之初就有着自己的目标,如今还是把持着3000元以内市场,无论是口碑还是销量,基本没有友商可以匹敌,但成绩是成绩,时间毕竟是往前走的,如今市面上已小米最强钉子户手机,雷军公开喊话换新机都没用,22年依旧能打俗话说的好买新不买旧,除非小米6作为一款17年上市的旗舰手机,不得不说,小米6是yyds,没想到四年过去了,仍这么受捧,保值率仍这么高。不过小米6说来也确实不错,就算放在现在也有很如果你想要看DVD或者蓝光4K电影请不要升级PC10年前笔记本电脑开始去DVD光驱化,但英特尔一直没有放弃对SGXDRM技术(用于解码光盘)的支持。不过在第12代处理器的规格表中,英特尔确认不再支持该技术。出于这个原因,Cybe高配置OPPOFindX5Pro来袭,Reno6跌至大米价,网友欢呼疯抢推荐购买一款旗舰安卓5G手机OPPOFindX5Pro版本在拍摄夜景功能之下,推荐购买一款旗舰安卓5G手机OPPOFindX5Pro版本可以明显感觉到拍出的夜景画面亮度更高,推荐购