• 创建发布时无法生成快照,解决方法


    引用 
    主要是要注意权限的问题,一般做发布/订阅,建议你做如下准备工作: 


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

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

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


    3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置) 

    开始--程序--管理工具--服务 
    --右键SQLSERVERAGENT 
    --属性--登陆--选择 "此账户 " 
    --输入或者选择第一步中创建的windows登录用户名 
    -- "密码 "中输入该用户的密码 

    4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置) 

    企业管理器 
    --右键SQL实例--属性 
    --安全性--身份验证 
    --选择 "SQL Server 和 Windows " 
    --确定 

    5.在发布服务器和订阅服务器上互相注册 
    企业管理器 
    --右键SQL Server组 
    --新建SQL Server注册... 
    --下一步--可用的服务器中,输入你要注册的远程服务器名--添加 
    --下一步--连接使用,选择第二个 "SQL Server身份验证 " 
    --下一步--输入用户名和密码 
    --下一步--选择SQL Server组,也可以创建一个新组 
    --下一步--完成 

    6.对于只能用IP,不能用计算机名的,为其注册服务器别名 
    (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP) 
    开始--程序--Microsoft SQL Server--客户端网络实用工具 
    --别名--添加 
    --网络库选择 "tcp/ip "--服务器别名输入SQL服务器名 
    --连接参数--服务器名称中输入SQL服务器ip地址 
    --如果你修改了SQL的端口,取消选择 "动态决定端口 ",并输入对应的端口号 
    ------解决方案--------------------
    在SQL Server 2000里设置和使用数据库复制之前,应先检查相关的几台SQL Server服务器下面几点是否满足: 

    1、MSSQLserver和Sqlserveragent服务是否是以域用户身份启动并运行的(.administrator用户也是可以的) 

    如果登录用的是本地系统帐户local,将不具备网络功能,会产生以下错误: 

    进程未能连接到Distributor '@Server name ' 

    (如果您的服务器已经用了SQL Server全文检索服务, 请不要修改MSSQLserver和Sqlserveragent服务的local启动。 
    会照成全文检索服务不能用。请换另外一台机器来做SQL Server 2000里复制中的分发服务器。) 

    修改服务启动的登录用户,需要重新启动MSSQLserver和Sqlserveragent服务才能生效。 

    2、检查相关的几台SQL Server服务器是否改过名称(需要srvid=0的本地机器上srvname和datasource一样) 

    在查询分析器里执行: 
    use master 
    select srvid,srvname,datasource from sysservers 

    如果没有srvid=0或者srvid=0(也就是本机器)但srvname和datasource不一样, 需要按如下方法修改: 

    USE master 
    GO 
    -- 设置两个变量 
    DECLARE @serverproperty_servername varchar(100), 
    @servername varchar(100) 
    -- 取得Windows NT 服务器和与指定的 SQL Server 实例关联的实例信息 
    SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY( 'ServerName ')) 
    -- 返回运行 Microsoft SQL Server 的本地服务器名称 
    SELECT @servername = CONVERT(varchar(100), @@SERVERNAME) 
    -- 显示获取的这两个参数 
    select @serverproperty_servername,@servername 
    --如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的 
    --删除错误的服务器名 
    EXEC sp_dropserver @server=@servername 
    --添加正确的服务器名 
    EXEC sp_addserver @server=@serverproperty_servername, @local= 'local '

    修改这项参数,需要重新启动MSSQLserver和Sqlserveragent服务才能生效。 

    这样一来就不会在创建复制的过程中出现18482、18483错误了。 

    3、检查SQL Server企业管理器里面相关的几台SQL Server注册名是否和上面第二点里介绍的srvname一样 

    不能用IP地址的注册名。 

    (我们可以删掉IP地址的注册,新建以SQL Server管理员级别的用户注册的服务器名) 

    这样一来就不会在创建复制的过程中出现14010、20084、18456、18482、18483错误了。 

    4、检查相关的几台SQL Server服务器网络是否能够正常访问 

    如果ping主机IP地址可以,但ping主机名不通的时候,需要在 

    winntsystem32driversetchosts (WIN2000) 
    windowssystem32driversetchosts (WIN2003) 

    文件里写入数据库服务器IP地址和主机名的对应关系。 

    例如: 

    127.0.0.1 localhost 
    192.168.0.35 oracledb oracledb 
    192.168.0.65 fengyu02 fengyu02 
    202.84.10.193 bj_db bj_db 

    或者在SQL Server客户端网络实用工具里建立别名,例如: 



    5、系统需要的扩展存储过程是否存在(如果不存在,需要恢复): 

    sp_addextendedproc 'xp_regenumvalues ',@dllname = 'xpstar.dll ' 
    go 
    sp_addextendedproc 'xp_regdeletevalue ',@dllname = 'xpstar.dll ' 
    go 
    sp_addextendedproc 'xp_regdeletekey ',@dllname = 'xpstar.dll ' 
    go 
    sp_addextendedproc xp_cmdshell ,@dllname = 'xplog70.dll ' 


    接下来就可以用SQL Server企业管理器里[复制]-> 右键选择 
    -> [配置发布、订阅服务器和分发]的图形界面来配置数据库复制了。

  • 相关阅读:
    分页插件加MVC
    在ASP.NET MVC中,有使用angularjs
    EF比较权威的一篇
    WEBFORM中添加bootstrap套件
    MVC统一设置命名空间
    重新生成索引及重新组织索引
    Dapper.Contrib.Extensions问题
    API Test WebApiTestClient工具安装及使用
    API Test Postman接口测试之高级篇2
    API Test Postman接口测试之高级篇1
  • 原文地址:https://www.cnblogs.com/lenther2002/p/6814513.html
Copyright © 2020-2023  润新知