SQL复制:拒绝访问快照文件夹(SQL Server 2008)

时间:2017-02-08 09:07:14

标签: sql-server sql-server-2008 replication

当我创建分发服务器时,快照文件夹与此路径共享到网络: \计算机名\ REPLDATA

但是当我使用pull方法进行合并复制时,会触发此消息:

  
    

资料来源:mscorlib

  
     

目标网站:无效WinIOError(Int32,System.String)

     

消息:访问路径'C:\ Program Files \ Microsoft SQL   服务器\ MSSQL12.SQL2014 \ MSSQL \ REPLDATA \ UNC \ VLASERVER $ SQL2014_TESTDB_TESTDB \ 20170208090120 \”   被拒绝。 Stack:at System.IO .__ Error.WinIOError(Int32 errorCode,   String maybeFullPath)       在System.IO.Directory.InternalCreateDirectory(String fullPath,String path,Object dirSecurityObj,Boolean checkHost)       在System.IO.Directory.InternalCreateDirectoryHelper(String path,Boolean checkHost)       在Microsoft.SqlServer.Replication.Utilities.CreateDirectoryWithExtendedErrorInformation(String   目录)       在Microsoft.SqlServer.Replication.Snapshot.SnapshotProvider.CreateSnapshotFolders()       在Microsoft.SqlServer.Replication.Snapshot.MergeSnapshotProvider.CreateSnapshotFolders()       在Microsoft.SqlServer.Replication.Snapshot.SqlServerSnapshotProvider.GenerateSnapshot()   在   Microsoft.SqlServer.Replication.SnapshotGenerationAgent.InternalRun()   在Microsoft.SqlServer.Replication.AgentCore.Run()(来源:mscorlib,   错误号码:0)获取帮助:http://help/0

2 个答案:

答案 0 :(得分:2)

您需要将快照文件夹的访问权限授予您用于复制的任何帐户。这可以是单独的帐户,也可以是运行SQL Server的帐户。可能最容易做的就是只授予对“Everyone”的完全访问权限,看看是否有效,如果确实如此,那就是你的问题,你只需要追踪复制正在运行的帐户。

答案 1 :(得分:1)

您必须提供用于复制帐户的“完全控制”访问快照文件夹。与此同时,您必须为创建快照文件夹的同一台服务器配置分发,并且分发服务器的名称应与SQL SERVER的名称相同(sql服务器实例应该是分发服务器的)。这对我有用。