知识大全 用SQL实现分布式数据复制

Posted 数据库

篇首语:内心简单,知足常乐,便是余生最美好的养生。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用SQL实现分布式数据复制相关的知识,希望对你有一定的参考价值。

用SQL实现分布式数据复制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     复制的概念         复制作为一个重要并且强大的技术 为分布式数据的存储和处理提供了有力支持 微软公司的SQL Server可以生成数据的拷贝 并能把这些数据的拷贝分发到不同的地方 自动进行数据的同步 保持所有的数据拷贝具有相同的数据 SQL Server采用一种称为 松散一致 的复制模式在两个数据库之间进行复制 这两个数据库既可以在同一台计算机上 也可以在不同的计算机上 彼此通过局域网(LAN) 广域网(WAN)进行连接         我们公司在开发 西安市国家税务局内部网络信息系统 中 正是利用了SQL Server的复制功能 实现全西安市分布的税收数据的复制同步 西安市国家税局包括市局机关和下属的 个基层征管分局 分布于西安市不同的地理位置 彼此通过DDN专线或X 专线连接 构成了西安国税局广域网 市局信息中心用Windows NT Server 构建一个Windows NT的单主域网络环境 下属每个分局有一台运行Windows NT Server 或Windows NT Server 的服务器 通过广域网加入到单主域的环境中作为一台独立的服务器运行 各分局建有本分局的局域网 网络环境为Novell和Windows NT的混合网络环境         全西安市所有的纳税人 均到指定的征管分局进行纳税登记 纳税申报 国税局用FoxPro开发了基于Novell网络环境的税收征管软件 在各分局征收大厅由Novell的无盘工作站负责税收数据的录入 写入到Novell服务器上的数个DBF文件中 由于税收征管数据分布在全市不同的征管分局 为全市范围纳税信息的检索和分析带来困难         新系统的开发 在原有基础上 编制专门的数据转换程序 把存储于Novell服务器上的DBF文件转换到本分局Windows NT上的SQL Server数据库中 每个分局的SQL Server数据库与市局信息中心的SQL Server数据库进行复制 及时把最新的税收数据传递到市局信息中心 这样在市局信息中心 就有了全市所有税收征管数据 信息中心建立Intranet Web站点 用户的计算机只要连上各分局的局域网 或者通过Modem拨号到信息中心的RAS服务器 就可以用IE浏览器访问IIS服务器 由IIS服务器向SQL Server服务器发出数据请求并把结果按HTML格式返回给用户浏览器         系统的设计采用客户浏览/服务器的多层结构方式 客户端采用标准的浏览器访问方式 用户在自己的计算机上安装IE浏览器(WIN WINNT 中已内置IE 浏览器) 输入Web 站点地址 就可以进入该系统         在中间层 由Internet Information Server完成大多数的用户业务规则的实现 例如对用户权限的限制 数据请求的生成等 IIS会根据不同的用户所拥有的不同的权限 生成不同的页面 将来当业务规则发生变化时 只需要在Internet Information Server上进行相应的更改 这种更改就会在系统的每一个用户下次访问系统时得到体现         在系统的最低层 由SQL Server大型关系数据库作为支撑 西安全市的税务数据是一个以GB为单位的大型数据库 纳税数据表中的数据记录超过数百万条 在如此大量的数据中进行快速的数据检索和数据分析 一般的数据库软件是难以完成的 SQL Server关系型数据库 较好地完成了用户提出的各种数据的检索要求 同时也正是利用了SQL Server的数据复制技术 把近二十个分局的数据通过广域网复制到信息中心来 使用户能快速获取全市的纳税信息         该系统实现的一个重要部分就是各分局税收征管数据的复制 SQL Server的复制有以下几个特点          基于事务         有复制标志的事务从源数据库的事务日志读出 并送到目的数据库 例如执行了一条Insert语句使源数据库的数据发生变化 这条Insert语句会被写入到一个数据库中 我们称之为发布数据库(Distrbution) 在适当的时候 这条Insert语句会送到复制的目的数据库并执行该Insert语句 以此保证两端的数据保持同步          以三种不同的方式使用服务器         ( )出版(Publication) 作为源数据服务器(在本系统中是各分局的SQL Server服务器) 当标志复制的表(Table)的数据发生变化时 产生该变化的事务被刻上复制标志 由日志阅读器(LogReader)把该事务送入分发数据库(Distribution Database) 这些事务寄存在分发数据库中直到被传送到目的服务器         ( )分发(Distribution) 包含有分发数据库 分发服务器接受出版服务器的更改事务 并保存到分发数据库中 在适当的时候 把这些事务送入订阅服务器 缺省情况下 分发服务器与出版服务器为同一台计算机 当然也可以是不同的计算机         ( )订阅(Subscription) 接受出版服务器的出版数据          使用专用的SQL Server数据库作为复制数据的可靠队列         SQL Server的复制采用 松散一致 复制模式 其特征是源数据与拷贝数据之间并不是在任何时刻都保持完全一致 它们之间有一个延时 源数据库的变化 不是立刻反应到订阅数据库中 而是把产生变化的事务写入一个专门的分发数据库中(Distribution) 当这些事务累计到设定值时 由事务分发器(Distribution task)把事务送到订阅服务器中 订阅服务器再执行这些事务来保持源数据与拷贝数据的一致 分发数据库完成了一种缓冲的作用 当因网络或其他问题使复制不能完成时 源数据的变化会一直保存在分发数据库中直到问题解决再自动把所有保存的事务送出 并且复制两端的数据仍保持一致 这种方式使SQL Server数据的复制有极大的自适应性和可靠性 最大限度减少用户的干预         SQL Server的复制主要组成部分有:日志阅读(Log Reader) 初始同步(Synchornization) 数据分发(Distribution)和分发数据库         初始同步是复制真正开始执行的第一步 类似于开始传送事务前 先给源数据库照一个快照 把传送事务前的那一时刻的数据拷贝到订阅数据库 其实质就是把那时刻的数据生成BCP文件 通过网络传到订阅数据库 完成初始同步后 再开始由日志阅读初始同步以后的事务 并由数据分发过程传送分发数据库中的事务到订阅服务器中去         复制的实现         下面我们结合在西安市国家税务局内部网络信息系统的实例 介绍SQL Server 的配置以及其中需要注意的事项         复制前的准备         ( )使用一种字符集 市局和分局的SQL Server的配置使用一种字符集         ( )允许分局服务器有足够的事务日志空间         ( )最好设置MSSQL Service 和SQLExecutive Service Auto Start at Boot time         复制的安装         ( )运行Microsoft SQL Enterprise Manage 在Server Manager窗口中选择源数据服务器         ( )从Server选单选择Replication Configuration 然后从所出现的子选单选择Install Publishing 出现Install Replication Publishing 对话框         ( )选择Local-Install New Local Distribution Database选项(配置该服务器充当自身的分发服务器)         在为分发数据库建立分发数据库设备时 要根据源数据的更新率估计分发数据设备的大小 尽量把分发数据库建大些         设置出版和订阅服务器和数据库         在前面的安装分发数据库中 如果在询问是否在本次配置服务器选项对话框中 选择YES 则出现Replication-Publishing对话框 在Enable Publishin to These Servers(左边列表)目录中选择订阅的服务器 在本实例中为信息中心的SQL Server 在Publishing Database下(右边列表) 选择被允许出版数据的数据库         回到Server Manager 选择订阅服务器 从Server选单选择Replication Configuration;然后从出现的下拉选单选择Subscribing 出现Replication-Subscribing对话框 在左侧的Publishing Server框中选择源数据SQL服务器 在右侧的框内选择拷贝的数据库         复制数据的设置         安装SQL Server复制并设置复制的服务器和数据库后 要进行出版物的设置 就是指定复制数据库中那些表要进行复制 一个出版物可以包括很多表         从Server Manager窗口 选择源数据服务器         从Manage选单 选择Replication 然后选择Publication对话框         选择 NEW 出现Edit Publications对话框 为该复制数据设置一个名字 选择要复制的表到右边的列表         这里要注意到这样一个情况 因为我们要从多个源数据库向一个中心服务器数据库复制数据 一定要保证源数据之间不会互相影响 复制的表中要有字段定义数据的来源         在Edit Publications对话框 选择右边列表中要复制的表 按 Edit 按钮 进入Manage Article对话框 在最下面的Restriction Clause中输入标识唯一源数据的条件         在Manage Article对话框中 选择Scripts标签 按 Generate 按钮 出现模式源设置画面 这里需要设置初始同步的模式 在多个源数据库向一个中心数据库复制数据时 这里一定要选择 DELETE DATA Using Restriction Clause cha138/Article/program/SQLServer/201311/22250

相关参考

知识大全 利用SQL Server复制技术实现数据同步更新[1]

利用SQLServer复制技术实现数据同步更新[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 利用SQL Server复制技术实现数据同步更新[2]

利用SQLServer复制技术实现数据同步更新[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 解决更改计算机名称之后,数据库复制失败问题

  最近又在做三个SQL服务器的数据库对等复制测试发现一个问题在服务器更改计算机名称以后数据库的复制就出现了失败尝试删除复制关系重新配置也不成功报错如下    奇怪的是其他的服务甚至是SQL服务本身都

知识大全 asp+access sql insert into select表复制

  这里是把一个同的数据一次性保存到另一个表用的是sqlinsertinto select另一张同结构的新表  subappend()callopendb()dimzsqlzdysqlzsq

知识大全 两台SQL Server数据同步解决方案

两台SQLServer数据同步解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  复制的概念

知识大全 用Forall与bulkcollect快速复制表数据

用Forall与bulkcollect快速复制表数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 用SQL语句完成SQL Server数据库的修复

用SQL语句完成SQLServer数据库的修复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使

知识大全 用SQL Storage Compress压缩SQL Server数据库文件

用SQLStorageCompress压缩SQLServer数据库文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶

知识大全 用SQL测试具有百万条记录的数据库

用SQL测试具有百万条记录的数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果没有现实的

知识大全 用DELPHI编程访问SQL SERVER数据库

用DELPHI编程访问SQLSERVER数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  D