您的位置: turnitin查重官网> 计算机 >> 处理技术 >阐述主从基于存储过程主以作器数据库同步实现

阐述主从基于存储过程主以作器数据库同步实现

收藏本文 2024-04-08 点赞:34701 浏览:158178 作者:网友投稿原创标记本站原创

摘要:数据库系统是信息系统的基础,为了保证信息系统的高可用性,需要对主从怎么写作器数据库进行同步,保证数据的一致性,本文根据实际需求摸索一种基于存储过程的主从怎么写作器数据库同步方法,首先介绍存储过程,然后用实例说明如何利用存储过程实现主从怎么写作器数据库同步,该方法对于特定系统具有一定的应用指导意义。

关键词:存储过程;数据库;数据同步
:A

Relization of the Master and Backup Server Database Synchronization Based on Store Procedure

JI Gang
(Anhui Meteorological Information Center Communication Department,Hefei230031,China)
Abstract:The database system is the foundations of the information system, In order to ensure the information system with high usability and the consistency of the data, the master and backup server database synchronization was need. According to the actual need, this paper explorated a master and backup server database synchronous method based on store procedure. Firstly, it introduced store procedure.And then, an example is presented for demonstrating how to use store procedure to realize the master and backup server database

源于:毕业设计论文模板www.udooo.com

synchronization.For some particular system, it had practical significance.

Key words:store procedure;database; data synchronization

1引言
随着计算机技术、网络技术的飞速发展,各行各业对计算机应用的广度和深度也不断提高,同时对计算机的依赖性也越来越强,如何提高计算机应用系统的及时性和准确性,这就需要在处理数据时要达到数据库同步处理。目前全省气象开发了大量的业务信息系统,在气象信息共享、气象信息综合处理、气象预报预警、各类统计乃至日常办公自动化应用,都有相应的信息系统支撑,任何系统如果不能够做到及时准确,那必将带来巨大的损失。本文根据实际需求摸索了一种基于存储过程的主从怎么写作器数据库同步方法,实现主从数据库的同步。
2存储过程介绍
存储过程是存储在怎么写作器上的一组预编译的Transact—SQL语句,是一种封装重复任务操作的方法,支持用户提供的变量,具有强大的编程功能。它类似于DOS系统中的批处理文件,在批处理文件中,可以包含一组经常执行的命令,这组命令通过批处理文件的执行而被执行。同样的道理,可以把要完成某项任务的许多Transact—SQL语句写在一起,组织成存储过程的形式,通过执行该存储过程就可以完成这项任务。存储过程与批处理文件又有差别,即存储过程己经进行了预编译。

2.1存储过程的创建

创建存储过程可以使用CREATE PROCEDURE语句,其语法形式如下:
CREATE PROC[EDURE] procedure_name[;number]
[{@parameter data_type} [output] [VARYING] [=default] [OUTPUT] ][ ,…n]
[WITH 
{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION} ] 
[FOR REPLICATION]
AS sql_statement [… n]
在上面的CREATE PROCEDURE语句中,方括号“[]”中的内容是可选的,花括号“{}”中的内容是必须出现的,不能省略,[ ,…n]表示前面的参数样式,可以重复出现。竖线“|”表示两边的选项可以任选一个。
存储过程参数的命名必须以@开头。参数按其用途可分为入口参数和出口参数两大类。入口参数可以用来把值传递给存储过程使用。可以使用多种方式向存储过程传递参数,可以按值传递,可以按名传递,还可以使用变量传递。出口参数采用变量的形式向过程或程序返回结果值。调用带有出口参数的存储过程时,必须在调用过程中声明一个类型相同的变量来存储返回值。SQL Server 提供了几个可在编制存储过程中使用的全局变量,全局变量使用前缀@@来与标准变量进行区别,@@error是最常见的全局变量之一。

2.2存储过程的优点

存储过程的执行在数据库怎么写作器中,应用程序只需传递相关的存储过程的命令至数据库怎么写作器即可执行[2—6],其优点如下:
1)执行速度快,存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编泽,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2) 存储过程可以很方便的接收参数,进一步增强了数据库处理的灵活性。3)减少了网络通信量,当客户端发出执行存储过程的请求时,只有执行存储过程的命令在内部网络上传送,当它们到达数据库怎么写作器时,运行存储过程,客户端在网上只接收返回结果或状态信息,使得客户机与怎么写作器的通信量降至最小,大大减少了网络通信量。
4)安全性高,把对数据进行的操作编写成存储过程存放在SQL Server数据库中,通过数据库加密技术,使这些操作代码更安全,从而提高了数据的安全性。
5) 存储过程可以重复使用,可减少开发人员的工作量。
3主从怎么写作器数据库同步的实现

3.1主从怎么写作器数据库同步原理

主从怎么写作器数据库同步原理主要是先由从怎么写作器捕获主怎么写作器数据的变化,包括数据添加、数据更新和数据删除,然后从怎么写作器根据捕获的变化来更新自己的数据库,从而达到主从怎么写作器数据库的复制或是同步功能,具体数据同步过程如图1所示:
计算技术与自动化2012年9月
第31卷第3期季刚:基于存储过程的主从怎么写作器数据库同步的实现
图1同步过程

3.2主从怎么写作器数据库同步实现步骤

下面以gps数据库同步为例介绍主从怎么写作器数据库同步的实现步骤,gps数据库主从怎么写作器上分别安装了sql server 2005企业版,gps数据库表结构如下:
表名
sd2012
列名
数据类型
空/非空
约束条件
站号char(10)not nullprimary key
观测时间alldatetimenot nullprimary key
天顶总延迟float
null
气压float
null
温度float
null
湿度float
null水汽总量floatnull
(1) 创建数据库链接
if exists(select 1from master..sysservers where srvname= ''srv_lnk '') 
execsp_dropserver ''srv_lnk '', ''droplogins '' 
go 
exec sp_addlinkedserver''srv_lnk '', '' '', '' SQLOLEDB '', ''192.168.

1.16'' 

exec sp_addlinkedsrvlogin ''srv_lnk '', ''false '', null, ''sa '' ,''123''
go
(2)创建同步处理的存储过程
if exists (select * from dbo.sysobjects whereid = object_id(N ''[dbo].[p_synchro] '') and OBJECTPROPERTY(id, N ''IsProcedure '')=1) 
drop procedure [dbo].[p_synchro] 
GO 
create proc p_synchro 
as 
启动远程怎么写作器的MSDTC怎么写作 
exec master..xp_cmdshell ''isql /S "192.168.1.16" /U "sa" /P "123" /q"exec master..xp_cmdshell '' ''net start msdtc '' '', no_output " '', no_output 
启动本机的MSDTC怎么写作 
exec master..xp_cmdshell ''net start msdtc '',no_output 

源于:标准论文格式范文www.udooo.com

步删除的数据 
delete from [sd].[dbo].[sd2012] 
where not exists (select * from srv_lnk.[sd].[dbo].[sd2012] A where A. 站号=站号and A.观测时间=观测时间)
同步新增的数据 
insert [sd].[dbo].[sd2012]
select * from srv_lnk.[sd].[dbo].[sd2012] A
where not exists (select * from [sd].[dbo].[sd2012] where站号=A. 站号and观测时间=A. 观测时间) 
同步修改的数据 
update B set 天顶总延迟=A.天顶总延迟, 气压=A.气压, 温度=A. 温度, 湿度=A. 湿度,水汽总量=A. 水汽总量 from [sd].[dbo].[sd2012] B , srv_lnk.[sd].[dbo].[sd2012] A
where (B.站号=A. 站号and B.观测时间=A. 观测时间) and (B. 天顶总延迟<>A.天顶总延迟or B.气压<>A.气压 or B. 温度<>A. 温度or B. 湿度<>A. 湿度orB. 水汽总量<>A. 水汽总量)
GO
(3) 创建作业和调度,定时执行数据同步的存储过程
if exists(SELECT 1 from msdb..sysjobs where name= ''数据处理 '') 
EXECUTE msdb.dbo.sp_delete_job @job_name= ''数据处理 '' 
execmsdb..sp_add_job @job_name= ''数据处理 '' 
——创建作业步骤 
declare @sql varchar(800), @dbname varchar(250) select@sql= ''exec p_synchro '' ——数据处理的命令 
,@dbname=db_name() ——执行数据处理的数据库名 
execmsdb..sp_add_jobstep@job_name= ''数据处理 '', 
@step_name = ''数据同步 '', 
@subsystem = ''TSQL '', 
@database_name=@dbname, 
@command = @sql, 
@retry_attempts = retry_attempts,——重试次数
@retry_interval = retry_interval,——重试问隔
创建调度 
exec msdb..sp_add_jobschedule@job_name = ''数据处理 '', 
@name = ''name'', 
@freq_type =freq_type,每天/每周/每月 @freq_interval = freq_interval, 间隔
@freq_recurrence_factor = freq_recurrence_factor,
@active_start_time=active_start_time开始时间
go
4结论
数据库存储过程具有执行速度快、网络通信量小、安全性高、可重复使用等优点,通过数据库的存储过程技术实现主从怎么写作器数据库同步,可以大大提高数据库系统的稳定性和可用性,满足气象系统中各种业务系统的怎么写作需求。
参考文献
高守传.SQL—结构化查询语言详解[M].北京:人民邮电出版社,2007:303—317.
汪维富.基于存储过程的高性能数据库应用模型研究[J].计算机工程与设计,2008,29(10):

学术论文下载www.udooo.com

2573—2575.
[3]何健.树型层次结构数据中遍历子树结点的方法[J].计算机技术与发展,2008,18(4):95—97.
[4]夏义全.数据库应用系统优化方法的研究[J].计算机技术与发展,2008,18(7):149—152.
[5]孙伟东.利用存储过程实现简单分布式计算的方法[J].沈阳航空工业学院学报,2008,25(1):53—55.
[6]郭琳.SQL Server中的存储过程研究[J].重庆文理学院学报:自然科学版,2007,26(4):48—49.

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号