EXEC sp_removedbreplication 'WR_YK1'; --- 引号里是发布数据库名称
SQL2008发布订阅报错“进程无法在WIN-SERVER 上执行 sp_replcmds”
执行以下SQL脚本
首先执行
ALTER AUTHORIZATION ON DATABASE::[数据库名] TO [sa] ALTER AUTHORIZATION ON DATABASE::[数据库名] TO [SQL登录用户名]
然后执行
USE 数据库名 GO sp_changedbowner 'SQL登录用户名'
最后执行
EXEC sp_repldone @xactid =NULL, @xact_segno =NULL, @numtrans = 0, @time =0, @reset =1 EXEC sp_replflush
如果还是不可以, 重启SQL Server Agent服务。
修改机器名后
--查看当前数据库服务器名称:
select @@ServerName
--查看当前服务器名称
select serverproperty('servername')
--修改数据库服务器名称
sp_dropserver 'old_servername'
sp_addserver 'new_servername','local'
--重启数据库服务,修改完成
--安全性->登陆名->右键,新建登陆名->选择Windows身份验证
select @@servername;
select serverproperty('servername')
如果这两个结果不一致,说明机器改过名字,在配置复制的时候就会报上面的错误。
--要修复此问题
--执行下面的语句,完成后重新启动SQL服务
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
最后别忘了重新启动服务哦,启动完后,在运行:
use master
go
select @@servername;
select serverproperty('servername')
发布订阅 新建发布结束时候提示 distributor_admin 登录失败
曾经有做过发布订阅,分发服务器已经产生此用户,在分发服务器上将此用户的密码策略取消即可。