SQL异机异表结构数据同步备份的实现
实用第一f智慧密集
@0®回回回回国回gjia®回国回@国回fiisiaiaia国回回回回国回国国国回回回回回国国国国回回回回®目国国国目国回回回国国回国能
SQL异机异表结构数据同步备份的实现
江龙,方夏馨,王菲
(昆明市气象局,昆明650501)
摘要:在SQL数据库应用中,通常需要将数据库接口提供给前台程序以提供多种形式的应用、查询、调取。利用SQL数据库提供的代理功能实现异机异表结构数据同步。
关键词:SQL数据库;代理作业;数据同步
1概述
气象数据通常是采集观测数据和应用观测数据同步
进行,在气象区域自动观测气象站的数据使用维护中,
既要满足实时和历史数据的使用,又要注重数据库本身
的安全性。在以往的应用中,常常因为前台程序设计的
因素,造成后台数据库的故障甚至崩溃。那么,实现前
台程序使用的数据库和后台核心数据库的分离就显得尤
为重要遥通过SQL数据库的代理作业功能,来实现异
机异表结构数据同步。
2数据库环境和达到的目标
2.1数据库环境
气象数据采集分布于两个不同的服务器,且各服务器
SQLServer版本不一致,采集库1为SQLServer2005,采集
库2为SQLServer2008,目标数据库为SQLServer2012。同
2021年1月7日是几九
时,两个采集库存在表结构不一致的情况,但又有相同的
气象要素数据和站点信息数据。其中采集库1存储的是气
象两要素(气温、雨量)数据,采集库2为气象六要素(温
度、雨量、气压、风速、风向、湿度)数据。如图1所示。
SQL代理作业目标数据库
应用系统1 -应用系统2[应用系统3,应用系统4
图1
2.2达到的目标
目标数据库独立运行于另一台服务器;目标数据库具备统一的数据表格式;目标数据库需支持定时或随时差异性同步;具备较高的稳定性,为前台程序开发提供后台数据支撑。
3实现步骤
3.1网络测试
由于实现异机数据同步,务必保证使用的服务器处于网络连通状态,服务器名尽可能用较容易识别的英文名,后期在编写SQL脚本时会用到服务器名,采集库1对应服务器名为DATA-SERVER,采集库2对应服务器名为AWS-SERVER。简单连通性测试使用PING、TRACERT等。
3.2链接服务器
为实现多个SQL Server之间的数据访问,各SQL Server之间需建立链接服务器并测试连接成功。在链接服务器安全性选项中建议配置专用的数据库连接登录用 户名和密码,且密码尽可能使用复杂密码策略。如图2所示。
图2
3.3新建SQL Server代理作业
(1)链接服务器连接成功后,在应用服务器的SQL Server中新建符合应用需求的目标数据库和对应的目标数据表,文中目标数据库包含3张数据表:站点信息
作者简介:江龙(1987-),男,工程师,学士,研究方向:气象资料和计算机技术综合应用;方夏馨(1986-),女,工程师,学士,研究方向:气象资料和计算机技术综合应用;王菲(1985-),女,工程师,学士,研究方向:气象资料和计算机技术综合应用
数据库与借息管理
表、分钟数据表、小时数据表,表格式设计按照采集库中字段最多的表格设计,数据类型与采集库中相对应。此时,可以开始新建SQL Server代理作业。新建名为“站点信息表更新”、“自动站应用数据库同步”的两个作业。如图3所示。
图3
(2)在作业“站点信息表更新”中新建步骤,并编写数据库脚本,核心代码如下:
delete from[dbo].[CollectorPar]〃在每次更新站点信息//表前删除之前的数据
delete from[dbo].[StationPar]
insert into[dbo].[CollectorPar]〃写入新数据
select*from[DATA-SERVER].[AWS1204].dbo.Col-lectorPar//读取采集库1的站点信息数据
UNION//此处用到联合查询方式
select*from[AWS-SERVER].[AWS].dbo.Collector-Par//读取采集库2站点信息数据
insert into[dbo].[StationPar]
刀怒斩雪翼雕<此处省略字段名…
FROM[DATA-SERVER].[AWS1204].[dbo].[StationPar] insert into[dbo].[StationPar]
<此处省略字段名...
FROM[AWS-SERVER].[AWS].[dbo].[StationPar]在作业“自动站应用数据库同步”中新建步骤1至4,并编写符合需求的数据库脚本。
步骤1同步采集库1的分钟数据,T-SQL脚本核心代码如下:
insert into dbo.tabminutedata〃插入目标数据库分钟数//据表
select…此处省略字段名…
from[DATA-SERVER].AWS.dbo.tabminutedata//读取〃采集库1的分钟数据
where observtime>=CONVERT(varchar(100),dateadd (hour,-1,getdate()),121)
and observtime<=CONVERT(varchar(100),GETDATE (),121)//设置更新数据时段
步骤2同步采集库1的小时数据,T-SQL脚本核心代码如下:
insert into dbo.tabhourdata//插入目标数据库小时数//据表
<此处省略字段名...
from[DATA-SERVER].AWS.dbo.tabhourdata〃读取采〃集库1的小时数据
where observtime>=CONVERT(varchar(100),dateadd (hour,-2,getdate()),121)
and observtime<=CONVERT(varchar(100),GETDATE (),121)//设置更新数据时段
步骤3同步采集库2的分钟数据,T-SQL脚本核心代码如下:
insert into dbo.tabminutedata〃插入目标数据库分钟数//据表
<此处省略字段名...
from[AWS-SERVER].aws.dbo.tabminutedata//读取采〃集库2分钟数据
where observtime>=CONVERT(varchar(100),dateadd (hour,-1,getdate()),121)
and observtime<=CONVERT(varchar(100),GETDATE (),121)//设置更新数据时段
步骤4同步采集库2的小时数据,T-SQL脚本核心代码如下:
insert into dbo.tabhourdata//插入目标数据库小时数据//此处省略字段名...
from[AWS-SERVER].aws.dbo.tabhourdata〃读取采集〃库2小时数据
where observtime>=CONVERT(varchar(100),dateadd (hour,-2,getdate()),121)
搞笑电影大全国语版and observtime<=CONVERT(varchar(100),GETDATE (),121)//设置更新数据时段
图4
在脚本的编写中,可以根据数据需求的具体时效、间隔进行调整,以达到定时更新数据的要求。
三更半夜的意思
脚本编写
完成后,由于SQL  Server 在执行步骤时是分布执行,所 以此处需要设置开始步骤为步骤1,每次执行成功或失
败后进入下一步骤,直至所有步骤全部执行完毕。如
果此处步骤与步骤之间不存在数据交叉的问题,那从任
何一个步骤开始执行都是可以的。如图4所示。
(3)在完成所有步骤1至4后,需要设置代理作业
的执行计划,按需求设置计划类型、频率、时间间隔、 执行日期等。气象自动观测站采集的分钟数据频率为每
5分钟采集一个数据,所以采用5分钟间隔执行所以步
骤。注意:此处设置的计划执行会执行所有的步骤,文
中将全部4个数据同步步骤放在一个作业中的原因是防 止个别自动观测站在整点出现网络信号差而延迟采集的
情况,只需要在一个小时内补足的数据都可以正常同
步。如果把小时数据和分钟数据分开建立为两个作业, 那么执行效率会有所提高。如图5所示。
图5默认网关
3.4作业活动监视
完成以上所有设置后,在保证SQL  Server 代理服务
启动的前提下,就可以开始代理作业执行。作业开启后(上接第72页)
法中具体方式的特点是不一样的,同时开发一个计算机 软件需要用到多种开发方式,这个过程是复杂而漫长
的。为了在开发过程中更好地溯源和开发工作的简洁清
晰,这些开发方式本身来说应需要建立一个辅助模型,
辅助模型的建立能够帮助软件开发管理人员更好地掌握
软件开发使用的情况,总结出更好的软件开发方式,对
软件开发的进度和可能存在的风险更好地把握。
5结语结合所有开发资源对开发需求进行了分析,合理采
用软件工程方法,不过于拘泥各方法的应用条件,才能 不断适应当今逐渐复杂的软件开发需求。各种方法不是
只需在作业活动监视器中查看所有作业的执行情况。如
图6所示。
图6
4结语
主要介绍了利用SQL  Server 代理作业执行T-SQL  脚本来实现多个数据源异机数据同步。所采用的数据同
步方式经过较长时间实测运行,相比较于开发独立应用 程序进行数据同步具有较高的稳定性,为气象业务服务 的开展提供有力的保障。
参考文献
[1] SQL 进阶教程:MICK.电子工业出版社,2017, 11.[2] 王璐,周佳星等.SQL 即查即用:明日科技.吉林
大学出版社,2018, 04.
[3] 肖帅领,窦西河.网络工程与实施.中国林业出版
社, 2006, 05.
[4] 陈贻品,贾蓓,和晓军.SQL 从入门到精通.水利
水电出版社,2020, 01.
⑸韩立刚.SQL  Server 数据库设计与开发•水利水电
出版社, 2017, 04.
独立的,需要结合实际灵活运用,并在此基础上不断创
新,以适应时代软件需求的发展,保证保障软件开发过
程更为有效、成果更有质量。销魂什么意思
参考文献
[1] 覃雷•计算机软件开发中软件工程方法的运用[J].
电子世界,2020, (18) : 62-63.
[2] 马麟.软件工程方法在计算机软件开发中应用研究
[J].电子测试,2020, (06) : 78-79+73.
[3] 彭凯.软件工程方法在计算机软件开发中的运用[J].
电子技术与软件工程,2018, (08) : 50.
[4] 孙宇.软件工程方法在计算机软件开发中的应用[J].
无线互联科技,2019, 16 (21) :
41-42.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。