以下内容转自http://www.cnblogs.com/littlebamboo/archive/2006/04/27/386384.html,由原作者保留权利!
经过两天的查找和实践,终于对-如何同步两个sql server的数据有了一个比较粗略的了解。
不是使用写sql 的方式来实现,而是采用-强制订阅实现数据库同步操作,大量和批量的数据可以用数据库的同步机制处理。
说明:
为方便操作,所有操作均在发布服务器(分发服务器)上操作,并使用推模式,在客户机器使用强制订阅方式。
测试通过:
==1:环境
服务器环境:
机器名称: serverDB
操作系统:Windows 2000 Server
数据库版本:SQL 2000 Server 企业版
客户端
机器名称:Joy
操作系统:Windows 2000 Server
数据库版本:SQL 2000 Server 企业版
==2:建用户帐号
在服务器端建立域用户帐号
我的电脑管理->本地用户和组->用户->建立
UserName:Joy
UserPwd:Joy
==3:重新启动服务器MSSQLServer
我的电脑->控制面版->管理工具->服务->MSSQLServer 服务
(更改为:域用户帐号,我们新建的joy用户 .\joy,密码:joy)
==4:安装分发服务器
A:配置分发服务器
工具->复制->配置发布、订阅服务器和分发->下一步->下一步(所有的均采用默认配置)
B:配置发布服务器
工具->复制->创建和管理发布->选择要发布的数据库(pubs)->下一步->快照发布->下一步->
选择要发布的内容->下一步->下一步->下一步->完成
C:强制配置订阅服务器(推模式,拉模式与此雷同)
工具->复制->配置发布、订阅服务器和分发->订阅服务器->新建->SQL Server数据库->输入客户端服务器名称(joy)->使用SQL Server 身份验证(sa,sa)->确定->应用->确定
D:初始化订阅
复制监视器->发布服务器(serverDB)->双击订阅->强制新建->下一步->选择启用的订阅服务器->joy->
下一步->下一步->下一步->下一步->完成
==6:测试数据
--在服务器执行:
选择表stores,手动或者通过sql语句修改其中的数据,insert ,update ,delete均可。
复制监视器->发布服务器(serverDB)->->快照->启动代理程序
->ZLP:SZ(强制)->启动同步处理
去查看同步的 joy:stores 是否插入了一条新的记录
测试完毕,通过。
==7修改数据库的同步时间,一般选择夜晚执行数据库同步处理
(具体操作略) :D
〔注意说明〕
服务器一端不能以(local)进行数据的发布与分发,需要先删除注册,然后新建注册本地计算机名称
卸载方式:工具->复制->禁止发布->是在"ZehuaDb"上静止发布,卸载所有的数据库同步配置服务器
注意:发布服务器、分发服务器中的SQLServerAgent服务必须启动
采用推模式: "D:\Microsoft SQL Server\MSSQL\REPLDATA\unc" 目录文件可以不设置共享
拉模式:则需要共享~!
少量数据库同步可以采用触发器实现,同步单表即可。
===========================================
配置过程中可能出现的问题
在SQL Server 2000里设置和使用数据库复制之前,应先检查相关的几台SQL Server服务器下面几点是否满足:
1、MSSQLserver和Sqlserveragent服务是否是以域用户身份启动并运行的(.\administrator用户也是可以的)
如果登录用的是本地系统帐户local,将不具备网络功能,会产生以下错误:
进程未能连接到Distributor '@Server name'
(如果您的服务器已经用了SQL Server全文检索服务, 请不要修改MSSQLserver和Sqlserveragent服务的local启动。
会照成全文检索服务不能用。请换另外一台机器来做SQL Server 2000里复制中的分发服务器。)
修改服务启动的登录用户,需要重新启动MSSQLserver和Sqlserveragent服务才能生效。
2、检查相关的几台SQL Server服务器是否改过名称(需要srvid=0的本地机器上srvname和datasource一样)
在查询分析器里执行:
use master
select srvid,srvname,datasource from sysservers
如果没有srvid=0或者srvid=0(也就是本机器)但srvname和datasource不一样, 需要按如下方法修改:
USE master
GO
-- 设置两个变量
DECLARE @serverproperty_servername varchar(100),
@servername varchar(100)
-- 取得Windows NT 服务器和与指定的 SQL Server 实例关联的实例信息
SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'))
-- 返回运行 Microsoft SQL Server 的本地服务器名称
SELECT @servername = CONVERT(varchar(100), @@SERVERNAME)
-- 显示获取的这两个参数
select @serverproperty_servername,@servername
--如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的
--删除错误的服务器名
EXEC sp_dropserver @server=@servername
--添加正确的服务器名
EXEC sp_addserver @server=@serverproperty_servername, @local='local'
修改这项参数,需要重新启动MSSQLserver和Sqlserveragent服务才能生效。
这样一来就不会在创建复制的过程中出现18482、18483错误了。
3、检查SQL Server企业管理器里面相关的几台SQL Server注册名是否和上面第二点里介绍的srvname一样
不能用IP地址的注册名。
(我们可以删掉IP地址的注册,新建以SQL Server管理员级别的用户注册的服务器名)
这样一来就不会在创建复制的过程中出现14010、20084、18456、18482、18483错误了。
4、检查相关的几台SQL Server服务器网络是否能够正常访问
如果ping主机IP地址可以,但ping主机名不通的时候,需要在
winnt\system32\drivers\etc\hosts (WIN2000)
windows\system32\drivers\etc\hosts (WIN2003)
文件里写入数据库服务器IP地址和主机名的对应关系。
例如:
127.0.0.1 localhost
192.168.0.35 oracledb oracledb
192.168.0.65 fengyu02 fengyu02
202.84.10.193 bj_db bj_db |
或者在SQL Server客户端网络实用工具里建立别名,例如:
5、系统需要的扩展存储过程是否存在(如果不存在,需要恢复):
sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll'
go
sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll'
go
sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll'
go
sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
接下来就可以用SQL Server企业管理器里[复制]-> 右键选择
->[配置发布、订阅服务器和分发]的图形界面来配置数据库复制了。
分享到:
相关推荐
### 如何在两个SQLSERVER之间实现数据同步 在IT领域,特别是对于企业级应用而言,数据同步是一项重要的技术,能够确保不同地理位置的数据中心之间数据的一致性和可用性。本文将详细介绍如何通过SQL Server的复制...
在IT领域,数据库同步是一个常见的...在实际工作中,"同步两个SQLServer数据库.doc"文档可能会提供更详细的操作指南、配置示例以及可能遇到的问题和解决方案。请查阅该文档以获取更全面的信息,确保同步过程顺利进行。
SqlServer数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置 SqlServer数据库同步是个比较好的解决方案。SqlServer数据库同步的...
对于使用WinCC (Windows Control Center) 的应用场景来说,能够实现多个站点之间的数据同步是非常关键的功能之一。然而,WinCC 自带的 SQL Server 数据库并不直接支持数据库同步功能。本文将详细介绍如何通过修改...
### 两台SQL Server数据同步解决方案详解 #### 一、概述 在当今信息化时代,数据同步成为企业级应用中不可或缺的一部分。特别是在分布式环境中,确保不同地理位置的数据库保持一致性和实时性变得尤为重要。本文将...
SQLServer 数据库 SSH 配置是将 SQLServer 数据库与 Secure Shell(SSH)协议集成,以实现加密的数据传输和身份验证。本文将详细介绍 SQLServer 数据库 SSH 配置的实现步骤和相关配置文件的解释。 一、SQLServer ...
在开发过程中,有时我们需要在不同的SQL Server 2005数据库之间进行数据同步,例如在测试环境和生产环境之间同步数据,或者在多个分部的数据库间共享信息。本教程将详细讲解如何在Visual Studio 2008(VS2008)环境...
通过这种方式,KEPServer充当了一个桥梁,使PLC能够实时访问和操作SQL Server数据库中的数据,这对于实现基于数据库的自动化控制策略至关重要。例如,可以使用PLC读取数据库中的状态信息,根据这些信息执行控制逻辑...
在SQL Server数据库管理中,备份和恢复是两个至关重要的操作,它们确保了数据的安全性和可恢复性。在本文中,我们将深入探讨如何使用C#语言来实现这些功能。C#结合SQL Server的API,如SqlClient和Smo,可以方便地...
1. **触发器与轮询**:在 ASA 和 SQL Server 数据库中设置触发器,当数据发生变化时,触发器会启动同步过程。同时,可以设定定时任务进行定期轮询,检查是否有未同步的数据。这种方法简单但效率较低,适用于数据变化...
在这个场景中,我们关注的是如何在SQL Server数据库环境下安装配置Oracle GoldenGate(OGG),并将数据从SQL Server实时同步到Oracle数据库。以下是对整个过程的详细说明: 首先,确保你的SQL Server是企业版,并且...
4. DBDiff.Schema.SQLServer.dll:这个库文件专注于SQL Server数据库的架构处理,说明SQL-DBDiff支持与SQL Server数据库的交互。 5. MeneesDiffUtils.dll 和 Menees.dll:这些都是由Menees软件公司提供的实用工具...
SQL Server 数据库巡检知识点 通过对 SQL Server 数据库巡检的重要性,我们可以了解到数据库的健康状态和安全性。以下是数据库巡检的知识点: 一、数据库巡检报告 * 数据库巡检报告是对数据库当前状态的总结,...
SQLServer 2000 数据库同步详细步骤 两个服务器;SQLServer 2000 数据库同步详细步骤 两个服务器
1.SQL Server 2014简介.mp4 10.SQL Server 2014定义表主键、外键.mp4 11.SQL Server 2014新增表记录.mp4 12.SQL Server 2014查询表记录.mp4 13.SQL Server 2014修改表记录.mp4 ...SQL Server 2014数据类型
在软件的安装目录下找到 SQL Server 数据库脚本(文件名:sqlserver.sql),用记事本打开,然后把里面的脚本程序全部复制。注意,复制粘贴时不要通过快捷键操作,点鼠标右键复制粘贴。 步骤 4:执行数据库脚本 在...
【SqlServer数据库同步】是项目中常见的一种技术需求,特别是在数据分散在不同的服务器上,并需要跨网域调用的场景下。数据库同步能够确保数据的一致性和实时性,提高系统的稳定性和可靠性。 首先,进行SqlServer...
Sql Server 2000 数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置 Sql Server 数据库同步是个比较好的解决方案。配置 Sql ...