欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

SQL Server服务器之间数据同步操作指南

程序员文章站 2022-05-01 18:26:25
...

在SQLServer2000里设置和使用数据库 复制之前,应先检查相关的几台SQLServer服务器下面几点是否满足: 1、MSSQLserver和Sqlserveragent服务是否是以域用户身份启动并运行的(.\administrator用户也是可以的) 如果登录用的是本地系统帐户local,将不具备网络

在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客户端网络实用工具里建立别名,例如:

SQL Server服务器之间数据同步操作指南微信