★★★关于SQL SERVER 复制的问题?(解决另开贴加分)★★★

cheng_young 2003-07-08 11:41:59
环境:WIN2000 ADVANCE SERVER + SQL SERVER 企业版
WIN2000个人版 + SQL SERVER 个人版

通过向导都建立两SQL SERVER之间的合并式复制,可在订阅时出现如下错误:

事件类型: 信息
事件来源: SQLAgent$YOUNG
事件种类: Job Engine
事件 ID: 203
日期: 2003-7-8
事件: 11:23:35
用户: N/A
计算机: YOUNG
描述:
SubSystem Message - Job 'TLDOMAINSERVER\BACKSVR-Northwind-Northwind-YOUNG\YOUNG-db_subscriptor- 0' (0x0CB9325D4E20084B894B3BDA7ED8E08D), step 1 - 进程未能连接到 Distributor“TLDOMAINSERVER\BACKSVR”。 合并进程在进行连接时超时。请重新配置 LoginTimeout 参数并重试操作。

我不熟悉SQL SERVER, 一切都是通过向导来的。
...全文
110 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng_young 2003-07-09
  • 打赏
  • 举报
回复
问题解决了,确实是超时的原因。
方法如下:
编辑订阅作业的步骤一(运行代理程序),添加-LoginTimeOut 90
谢谢两位!
benxie 2003-07-08
  • 打赏
  • 举报
回复
gzing
jeck_zhou 2003-07-08
  • 打赏
  • 举报
回复
up
pengdali 2003-07-08
  • 打赏
  • 举报
回复
try:

启动代理的域用户账号必须具有读取发布-分发服务器目录的权限
你用的账号没有读取\\ServerA\D$\Program Files\Microsoft SQL Server\MSSQL\repldata\unc\这个目录下的文件的权限。


启动代理的域用户账号必须具有读取发布-分发服务器目录的权限
----^^^^^^^^^^^^^^^在控制面板-->管理-->服务-->sqlagent-->属性里的那个启动用户
happydreamer 2003-07-08
  • 打赏
  • 举报
回复


一 配置发布服务器

在发布服务器上执行以下步骤:

(1) 从[工具]下拉菜单的[复制]子菜单中选择[配置发布、订阅服务器和分发]出现配置发布和分发向导
(2) [下一步] 选择分发服务器 可以选择把发布服务器自己作为分发服务器或者其他sql的服务器
(3) [下一步] 设置快照文件夹
一般采用默认\\servername\d$\Program Files\Microsoft SQL Server\MSSQL\ReplData
**(4) [下一步] 自定义配置
可以选择:
是,让我设置分发数据库属性启用发布服务器或设置发布设置
否,使用下列默认设置

建议采用自定义设置
(5) [下一步] 设置分发数据库名称和位置 采用默认值
(6) [下一步] 启用发布服务器 选择作为发布的服务器
(7) [下一步] 选择需要发布的数据库和发布类型
(8) [下一步] 选择注册订阅服务器
(9) [下一步] 完成配置


二 创建出版物

发布服务器上
(1)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令
(2)选择要创建出版物的数据库,然后单击[创建发布]
(3)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。
对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)

(4)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,
SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进行数据复制。
但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器

(5)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表

注意: 如果前面选择了事务发布 则再这一步中只能选择带有主键的表


(6)选择发布名称和描述

**(7)自定义发布属性

向导提供的选择:
是 我将自定义数据筛选,启用匿名订阅和或其他自定义属性
否 根据指定方式创建发布

建议采用自定义的方式

(8)[下一步] 选择筛选发布的方式
(9)[下一步] 可以选择是否允许匿名订阅

1)如果选择署名订阅,则需要在发布服务器上添加订阅服务器
方法: [工具]->[复制]->[配置发布、订阅服务器和分发的属性]->[订阅服务器] 中添加

否则在订阅服务器上请求订阅时会出现的提示:改发布不允许匿名订阅
如果仍然需要匿名订阅则用以下解决办法
[企业管理器]->[复制]->[发布内容]->[属性]->[订阅选项] 选择允许匿名请求订阅

2)如果选择匿名订阅,则配置订阅服务器时不会出现以上提示


(10)[下一步] 设置快照 代理程序调度
(11)[下一步] 完成配置


当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。


三 订阅服务器的配置


(一) 强制订阅的配置
在发布服务器上
[企业管理器]->[复制]->[发布内容]->[属性]->[订阅]->[强制新建]
然后出现强制订阅向导
选择订阅服务器->订阅数据库名->设置分发代理程序调度->初始化订阅->启动要求的服务
(发布服务器的agent要启动)->完成即可

(二) 请求订阅的配置

订阅服务器上执行以下操作

(1) 从[工具]下拉菜单中选择[复制]子菜单的[请求订阅]
(2) 选择[请求新订阅] 打开请求订阅向导
(3) [下一步]选择已注册的发布
(4) [下一步]选择创建订阅的数据库
(5) [下一步]选择匿名订阅或署名订阅
(6) [下一步] 初始化订阅 选择初始化架构和数据
(7) [下一步]选择快照文件的存放位置 一般采用发布服务器的默认快照文件夹
**(8) [下一步]设置分发代理程序调度 可以选择订阅更新内容的间隔
(9) [下一步]系统会提示检查发布服务器的代理服务的运行状态
(10) [下一步] 完成配置



完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?
这里可以通过这种方法来快速看是否成功。
展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——
状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生,
每一分钟,在0:00:00和23:59:59之间。
接下来就是判断复制
是否成功了打开C:\Program Files\Microsoft SQL Server\MSSQL
\REPLDATA\unc\XIAOWANGZI_database_database
下面看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。
要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表



快照复制:
强制订阅和请求订阅


事务复制
强制订阅和请求订阅

合并复制:
强制订阅和请求订阅

发现一个合并复制的问题

设A机器为发布服务器,B机器为订阅服务器,发布的表为table1
合并复制会在表上加上类型为uniqueidentifer的字段rowguid
测试时
如果A的table1 为空,B的tale1不为空,合并复制后B的table1变成空
如果A的table1 不为空,B的tale1为空,合并复制后B的table1会有A的tabel1的内容


pengdali 2003-07-08
  • 打赏
  • 举报
回复
选中Microsoft SQL Servers-->工具栏,工具-->选项-->高级-->连接超时-->改为0
cheng_young 2003-07-08
  • 打赏
  • 举报
回复
还是不行。但有时登陆后又操作成功,是不是因为超时的原因?
并且每次在客户端连接到服务器时,第一次都要超时,第二次才能连接成功。

错误信息里也有“合并进程在进行连接时超时。请重新配置 LoginTimeout 参数并重试操作”
应该在什么地方配置 合并进程的“LoginTimeout 参数”,我找了一圈, 都没找到
cheng_young 2003-07-08
  • 打赏
  • 举报
回复
我先试试看, 搞定之后就结贴
wangyanqiu 2003-07-08
  • 打赏
  • 举报
回复
up

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧