SQL Server 2008发布订阅常见问题
来源:本站添加时间:2022-05-04 点击:
SQL 2008两台机器进行联机复制数据库,假设有两台SQL服务器 A和B,它们同在一个局域网,常见问题闭坑:
1.最好把两台机器设置同样的用户名和密码,如都是使用管理员账号administrator 密码都是使用 password,这样它们通过SQL Server Management Studio 互相访问的时候,直接输入对方的计算机名称,身份验证:WIndows身份验证(不需要输入密码),非常方便
2.如果想修改计算机名称,要在安装SQL之前修改,安装好SQL后修改计算机名称,会带来众多问题,如实例服务名称与计算机名称不同,服务名称为空等
通过如下SQL脚本可以查看 服务名称是否=计算机名称
use master
go
select @@servername
select serverproperty('servername')
如果SQL服务名称 不等于 计算机名称,通过如下脚本修改,使服务名称=计算机名
USE master
GO
if serverproperty('servername') <> @@servername
begin
declare @server sysname
set @server = @@servername
exec sp_dropserver @server = @server
set @server = cast(serverproperty('servername') as sysname)
exec sp_addserver @server = @server , @local = 'LOCAL'
end
3.文件同步问题 ,加入A 服务器进行发布数据库db1,B服务器进行订阅db1,则A B需有都可以访问的文件目录。当然也可以通过其他同步工具进行文件夹同步,或者使用ftp
如:把A 服务的 C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLReplData 目录进行共享,B服务器增加对A服务器db1的订阅后,修改快照位置为备用位置,快照文件夹输入A的计算机名ReplData 如下图
A服务器上的server 服务是是打开状态,否则无法共享
在A服务器进行目录共享后,需要在B服务器进行访问\a服务器计算机名称ReplData 输入administrator 账号,密码 且记住密码 ,否则下一步设置无效
图2
4.SQL Server Agetn 代理 一定要启动,并且设置为自动,且权限给的足够大,如使用管理员权限,否则无法自动同步,或者提示权限不足

开始,运行,输入services.msc 把SQL代理设置为自动,且启动
5. 在以上步骤进行完成后,需要重新在B服务器上进行数据同步,本地订阅, 选中需要同步的数据库,查看同步状态

点击启动 开始同步
6.日志的查看
查看日志,应该A服务器(发布服务器)上查看,SQL管理控制台,SQL代理日志
或 右键 本地发布的数据库,启动复制监视器
7.如需删除发布的订阅,通过sql管理控制台非常卡,通过sql脚本很快
sp_removedbreplication 'dbname'
这里dbname 是A服务器上的'被发布数据库名称' ,而不是'发布名称'