SQL 2005 复制不起作用

SQL 2005 复制不起作用

我正在创建 2 个远程服务器之间的复制,服务器 1 是分发服务器和发布服务器,服务器 2 是订阅服务器

  1. 服务器 1 Windows 2003 服务器 192.168.10.1 通过 vpn 连接 SQL 2005 domain1.local

  2. 服务器 2 Windows 2003 服务器 192.168.10.1 通过 vpn 连接 SQL 2005 domain2.local

当我设置复制时,一切看起来都很好,直到我查看同步状态并说:

无法启动代理执行 transact-sql 语句或批处理时发生异常 sqlserveragent 错误请求运行作业 server1-username blah blah blah

来自用户 sa 的拒绝,因为该作业已在运行,来自用户 sa 的请求将数据库上下文更改为技术错误 22022

我已经清除了服务器代理中的作业并重新启动了服务。

这可能与两个不受信任的域之间的身份验证有关,因为我可以通过 SQL Studio 浏览甚至控制每个 SQL 服务器,但只是不能设置复制?

我似乎无法找出问题所在,如能得到任何帮助我将非常感激。

克雷格

答案1

这可能是分发代理尝试将数据写入远程订阅者的权限问题,但无法完成。

一般来说,复制代理只是 SQL 服务器外部的应用程序:snapshot.exe、logread.exe、distrib.exe。Windows 帐户用于启动这些应用程序中的每一个,您可以在复制向导中配置哪个帐户(通常是 SQL 代理帐户)。每个代理所需的权限大致如下:

  • Snapshot.exe - 连接到发布者,读取发布数据库,写入预先确定的快照位置
  • Logread.exe - 连接到发布者和分发者,写入分发数据库,
  • Distrib.exe - 从预定的快照位置读取,从分发数据库读取,写入订阅者数据库

所需的一些权限是访问 SQL 服务器,其他权限是快照位置的 Windows 文件夹级别权限。

如果您可以包含完整的错误消息,我可以确认并将相应地编辑我的答案。

答案2

您必须等待同步作业完成。通过查看快照代理状态检查它。它在您创建复制后自动启动

相关内容