日期:2014-05-18  浏览次数:20521 次

sql发布和订阅
我按照网上的资料,做了发布和订阅,若在一台机器上做发布和订阅就能成功.
要在2台机器就不成功了.
发布的机器:
进程无法连接到 Subscriber“20090904-2238”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20084)
获取帮助: http://help/MSSQL_REPL20084
用户 '' 登录失败。该用户与可信 SQL Server 连接无关联。 (源: MSSQLServer,错误号: 18452)
获取帮助: http://help/18452
订阅的机器: 我建立了订阅,他也提示我成功了,但在订阅下面什么都找不到,根本就找不到我建立的订阅.
       但我在重新建立的时候他还提示我说已经有了.

------解决方案--------------------
第一先来配置出版服务器
(1)选中指定[服务器]节点
(2)从[工具]下拉菜单的[复制]子菜单中选择[发布、订阅服务器和分发]命令
(3)系统弹出一个对话框点[下一步]然后看着提示一直操作到完成。
(4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution)

第二创建出版物
(1)选中指定的服务器
(2)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令。此时系统会弹出一个对话框
(3)选择要创建出版物的数据库,然后单击[创建发布]
(4)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)
(5)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器
(6)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表
(7)然后[下一步]直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。

第三设计订阅
(1)选中指定的订阅服务器
(2)从[工具]下拉菜单中选择[复制]子菜单的[请求订阅]
(3)按照单击[下一步]操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行复制操作的前提条件是SQL SERVER代理服务必须已经启动。
(4)单击[完成]。完成订阅操作。
完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?这里可以通过这种方法来快速看是否成功。展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。接下来就是判断复制是否成功了打开C:\Program Files\Microsoft SQL Server\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database下面看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表
------解决方案--------------------
SQL code
该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式, 
因此用户无法使用SQL Server的登录帐户(如 sa )进行连接.解决方法如下所示: 

1.在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server 
操作步骤: 
在企业管理器中 
--右键你的服务器实例(就是那个有绿色图标的) 
--编辑SQL Server注册属性 
--选择"使用windows身份验证" 

--选择"使用SQL Server身份验证" 
--登录名输入:sa,密码输入sa的密码 
--确定 

2.设置允许SQL Server身份登录 
操作步骤: 
在企业管理器中 
--展开"SQL Server组",鼠标右键点击SQL Server服务器的名称 
--选择"属性" 
--再选择"安全性"选项卡 
--在"身份验证"下,选择"SQL Server和 Windows ". 
--确定,并重新启动SQL Server服务. 

在以上解决方法中,如果在第 1 步中使用"使用 Windows 身份验证"连接 SQL Server 失败, 
那就通过修改注册表来解决此问题: 

1.点击"开始"-"运行",输入regedit,回车进入注册表编辑器 
2.依次展开注册表项,浏览到以下注册表键: 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer] 
3.在屏幕右方找到名称"LoginMode",双击编辑双字节值 
4.将原值从1改为2,点击"确定" 
5.关闭注册表编辑器 
6.重新启动SQL Server服务. 

此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册, 
但是仍然无法使用Windows身份验证模式来连接SQL Server. 
这是因为在 SQL Server 中有两个缺省的登录帐户: 
BUILTIN\Administrators 
<机器名>\Administrator 被删除. 
要恢复这两个帐户,可以使用以下的方法: 

1.打开企业管理器,展开服务器组,然后展开服务器 

2.展开"安全性",右击"登录",然后单击"新建登录" 

3.在"名称"框中,输入 BUILTIN\Administrators 

4.在"服务器角色"选项卡中,选择"System Administrators" 

5.点击"确定"退出 

6.使用同样方法添加 <机器名>\Administrator 登录. 

说明: 

以下注册表键: 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode 
的值决定了SQL Server将采取何种身份验证模式. 
1.表示使用"Windows 身份验证"模式 
2.表示使用混合模式(Windows 身份验证和 SQL Server 身份验证).

------解决方案--------------------
补充:
----
1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户
我的电脑
--控制面板
--管理工具
--计算机管理
--用户和组
--右键用户
--新建用户
--建立一个隶属于administrator组的登陆windows的用户

2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:

我的电脑--D:\ 新建一个目录,名为: PUB
--右键这个新建的目录
--属性--共享
--选择"共享该文件夹"
--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限
--确定

3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)
开始--程序--管理工具--服务
--右键SQLSERVERAGENT
--属性--登陆--选择"此账户"
--输入或者选择第一步中创建的wi