zoukankan      html  css  js  c++  java
  • sql2008发布订阅 问题汇总

     1.如何修改一个已经发布的表的属性?

      将发布所有订阅删除,(发布不用删除),就可以在发布属性的项目中取消表,然后就

      可以修改该表了,修改后,再将表加入发布内就可以了.

      2.常用的操作界面:

      (1)一般都在监视器--发布项目,可以看到快照 分发和订阅的即时信息.

      (2)另外一个操作地方是发布的属性,(在属性--状态里可以启动代理)

      (3)还有一个是工具--复制--配置发布、订阅服务器和分发,需要订阅的服务器必

      须在这里指定授权后订阅才能成功.

      ============

      问题:

      数据库无法登陆的老问题:数据库属性-安全里面,不要选仅windows登陆,换另外一

      个模式.

      0.订阅一个快照发布(不是事务复制)出错," 名称xxx在TransP lication集

      合上没有找到",在企业管理器中,将发布数据库和订阅数据库都停止或者断开,再

      启动,重新连接就可以订阅快照发布了.真是希奇,有莫名其妙的问题可以尝试重启

      服务器试试,有时后一台机器上可以正常控制订阅操作,而另外一台机器上却订阅

      操作出错,也重新连接服务器试试.

      1.一开始碰到的问题是,注册的local服务器不能用,删除后重新命名搞定,

      2.sql server代理正在使用系统帐户,它会导致复制失败,. 这个提示点确定后,

      本账户的选项为灰色,

      原来是配置发布的服务器不是本机,到本机上操作发布,就可以选"本账户"了.

      3.又遇到不能署名订阅,"不允许请求的署名订阅",明明发布和订阅服务器双方都

      注册了,也双方都建立了

      订阅的用户帐号,原因:在这步,点注册服务器,然后不能选默认的模拟sql登陆,而

      是要选"使用sql 身份验证",然后输入名称和密码.

      如果始终弹出"不允许请求的署名订阅",不能进到选择登陆模式的界面,退出订阅

      向导,在企业管理器中,进入发布服务器,复制-右键-"配置发布、订阅服务器和分

      发"-订阅服务器-添加订阅服务器机器名和帐号,如果已经有了,直接确定下.再在

      进订阅服务器订阅就不会显示不能署名订阅了.

      以上过程可能发现明明订阅服务器名字已经在发布服务器添加了,还是出现这个问

      题,就一定要在订阅服务器进入发布服务器,然后添加订阅服务器的名字,为什么会

      这样,可能是在发布服务器指定了改订阅服务器的名字后,但订阅服务器没有刷新,

      可以断开一次订阅服务器和发布服务器,再来订阅,也可以解决.

      4.请求订阅已经建立好了,但订阅状态显示"正在重试", 上次动作"进程未能连接

      到s scriber SHD-SHD",

      原因是我安装sql后,曾经改过电脑的名字,改回SHD-SHD.(有的人是因为sql服务器

      端口修改过造成).还有可能是MSSQLserver和Sqlserveragent服务没有用域用户身

      份启动并运行,减肥药哪个好

      (于是我把B加到A所在的域,安利减肥产品并且把A的管理员用户加到B的SQLServerAgent服务的

      登陆用户中,)

      5.但订阅状态显示"请求共享代理程序失败", "进程未能连接到distributor

      ...",怀疑是订阅设置时,连接

      发布数据库的帐号有问题,在订阅(右键)的历史记录中查看具体的错误原因.帐号

      正确后,历史记录又说

      订阅端机器没有配置,于是全部删除订阅和发布来试,结果发布确无法删除发布,出

      现错误,原来是订阅

      的机器通过局域网,打开了快照的共享目录没有封闭,封闭后,成功删除发布.

      如果还无法删,干脆把共享的快照目录取消共享,再删,然后重新配置快照目录共享

      .

      6.订阅服务器上的订阅又无法删除了,提示"无法更新或删除从 MSX 服务器上

      发起的作业",

      这是因为:计算机更换名之后就出现这种错误,自己不能修改自己创建的作业。什么减肥产品最好

      解决办法:

      在msdb的sysjobs表中把originating-server中的值全部改为更改后的计算机名

      update msdb..sysjobs set originating_server = '现服务器名'

      有时可以到管理-sql server代理--作业,查看更多情况和操作.

      7.全部重新创建发布和订阅成功,执行却又出现"发布内容 null"的提示,是因为订

      阅服务器没有连接到分发服务器,(1)SQLSERVERAGENT没启动.(2)MSSQLserver和

      Sqlserveragent服务必须以域用户身份启动并运行,

      以上问题检查中随时留意SQLSERVERAGENT(控制面板-管理-服务)服务是否已经启

      动,

      8.订阅服务器已经登陆上发布服务器,但在建立订阅时看不见该服务器的发布,是

      因为没有配置分发

      服务器,工具-复制-"配置发布、订阅服务器和分发",再检查SQLSERVERAGENT是否

      运行.

      然后再在发布属性-发布访问列表,添加订阅服务器登陆的登陆名,订阅端终于看见

      发布了.

      9.发布 'xxx' 的初始快照尚不可用。

      保证SQLSERVERAGENT已经运行,

      复制=》发布内容=》发布项目mytab=》右击右侧的订阅=》重新初始化

      如果还不行,

      复制监视器--发布服务器--xxx--发布的项目--快照,看到

      进程未能创建文件“\\XXZ\SQLP \unc”,到该文件夹重新配置sql的帐号对该文

      件夹权限为"完全".

      10.订阅端产生 "快照尚不可用 发生操作系统错误 53",订阅服务器帐号访问快照

      文件

      夹出权限不够,分配权限,还有检查防火墙,被禁止了访问.

      11.有个表无法发布,选择框显示红叉,没有主键的表无法发布.

      12.进程未能从表“[dbo].[syncobj_0x]”向外大容量复制。

      在写 BCP 数据文件时发生 I/O 错误(源: ODBC SQL Server Driver (ODBC); 错

      误代码: 0)

      解决方法:就是字符类型全部改为n类型的解决问题(char-nchar,varchar-

      nvarchar,ntext).

      13、在数据发布时报如下错误信息:

      在BCP数据文件中遇到意外的EOF(源:ODBC SQL Server Driver(ODBC):错误代码 :S1000)

      这是因为数据库中含有TEXT或nTExt或Image字段引起的,只要在某项发布

      属性页中选择<快照>-<快照格式>-<字符模式格式>,即可解决该问题.

      14、另外,在建数据发布时,报如下错误:

      违反了Primary Key约束'PK_@snapshot_seqnos_7fab3fda'.不能在

      对象'#7EB71BA1'中插入重复键.

      (源:zzb_stockserver(数据源);错误代码:2627)

      这是因为在建发布时,数据库数据正在执行插入或修改动作引起的,只要该

      发布的快照重新运行一下即可。

      15、对某些大型数据表无法生成快照的问题,数据库报如下错误:

      进程未能从表"[dbo].[syncobj_0x]"向外大容量复制

      ,在写 BCP 数据文件时发生 I/O 错误(源: ODBC SQL Server Driver (ODBC);

      错误代码: 0)

      这是因为该表有问题或表数据太大造成的,可用如下方法试着解决一下:

      a、用DBCC checktable 对该表检查一下,数据表是否有问题,然后再试一

      下重新生成数据快照。

      b、如果上述问题仍无法解决,可以用数据导出功能将数据表导到订阅服务

      器中。

      c、然后重建一个针对该数据表的数据发布,选择不生成快照功能,然后运

      行下述问题4的解决方法,解决出现的问题。

      16、在建立订阅时,选择不初始化订阅方数据表,则在订阅服务器不产生相应的

      复制存贮过程,运行该发布时,会报如下错误:

      未能找到存贮过程'sp_MSupd_XXX'...

      原因如下:

      Problem Deion :

      ======

      Replication Distribution Agent reports error. The error message is "It

      could not

      find the stored procedure sp_MSins_***".

      Reason :

      ======

      If we choose "the s scriber has schema and data already" option when

      we create the

      s ion, those three system auto created stored procedures will not be

      created

      in the s scribing database side, they are

      "sp_MSins_***"/"sp_MSupd_***"/"sp_MSdel_***".

      Soltuion :

      ======

      We could use the system command "sp_p licationcustomprocs

      'pulication_name'"

      to create the s of those three system stored procedures. Then we run

      these

      s in the s scribing database. The problem will be resolved.

      解决方案:

      在发布服务器上运行如下命令:sp_p licationcustomprocs 'xxxx', 其中

      xxxx为发布名称,该命令会生成创建上述三个存贮过程的脚本,然后在订阅服务

      器运行生成三个存贮过程即可。

      17、在订阅数据时,发生如下错误:

      该订阅已标记为不活动,必须重新初始化该订阅。需要删除并重新创建 NoSync

      订阅。

      (源: zzb_stockserver (数据源); 错误代码: )

      解决方案:

      在发布服务器上,选择某项发布,在属性-》订阅-》重新初始化。可以解决上

      述问题

      18、在数据发布时,发生如下错误:

      不能在具有唯一索引 'PK_tbMeetingMemo' 的对象 'tbMeetingMemo' 中插入

      重复键的行。

      (源: ZZB-XHSTOCK (数据源); 错误代码: 2601)

      原因:可能是在发布该表时,在不同的发布中存在多次发布该表的情况.

      解决方法:

      a、查明是否有多次发布该表的情况.

      在发布服务器的发布数据库中用运行如下SQL语句:select * from sysarticles

      order by dest_table

      查看在dest_table列中是否出现多次该表的信息,如是,则说明该表已被多次

      发布,可以用下一步中说明的方法来查看是哪些发布发布了该表。

      b、运行语句:select * from sysp lications,查看p id与上述信息相同的

      p id的内容,则就能确定是何种发布发布了相同的数据表。

      c、找到了发布后,如果是增加数据表,则不用删除该发布下的所有订阅,如果是

      去除发布的数据表,则需删除该发布下的所有的订阅信息,修改相应的发布内容

      ,重新制定相应的订阅.

      19.创建发布,错误,"请提供@job_id标识作业",

      是因为你删除了以前系统自动生成的作业。方法:工具-复制--禁用发布,重新配置

      发布、订阅服务器和分发,完成后,发布的数据库显示为一个手型的共享图标,再创

      建发布

      20.订阅和发布都删除完了,但禁用发布不成功,提示:无法除去分发数据

      库'distribution',该数据库正在使用.停止数据库,再启动数据库,再禁止发布.

      21.配置发布和分发向导,最后完成时错误:配置分发服务器:未能连接到

      服务器,因为distributor_admin未在该服务器上定义为远程登录

      你肯定在装完SQL SERVER以后,改了计算机名,虽然sql server 还可以用,但一用

      复制时,SQL SERVER读取了旧的计算机实例名,不信,你试试

      select @@SERVERNAME

      显示出来的,肯定不是你现在的计算机名.

      于是,你用

      sp_dropserver <(用select @@SERVERNAME显示出来的旧名)>

      go

      sp_addserver <你现在的计算机名>, LOCAL

      go

      例如:sp_dropserver 'E0184DF\SQL2K'

      go

      sp_addserver 'deboywang\SQL2K', LOCAL

      go

      重启sql server服务,问题就可以解决了

      除此之外,如果要修改@@Servername还可以使用下面的方法:

      1. exec sp_helpserver 检查你的server名字

      2. 如果不正确,用exec sp_setnetname修正

      另外,当注册的名字改为其他名字后,注册登记是成功的(在客户端工具里添加

      了匿名),发布时就会出现这个问题。

      22.强制订阅无法删除:在发布服务器上先后删除订阅和发布后,订阅服务器上该强

      制订阅始终存在,无法删除,问微软支持,得结论:

      sp_removedbreplication 'job'

      JOB为订阅复制的数据库名称。

      其他问题:

      =============

      注:

      0.不要去乱删 管理--sql server代理--作业的内容.严格按照先删订阅,再删发布

      来进行.

      1、如何忽略在分发中出现的报错

      a、在发布服务器的管理-》SQL server代理->作业->中,找到该发布的发布

      JOB,在属性->步骤->2运行代码程序-》编辑->命令->在命令语句最后添加 -

      skiperrors xxxx(xxxx是分发时报的错误号) , 指的是忽略该错误的意思。

      b、然后重新启动分发引擎.

      2.如何输出出错的信息?

      在待输出出错信息的JOB命令最后加入 -Output c:\temp\error.txt, -Output

      是命令,后面是待输出的文件路径和文件夹名.

      ================

      因为该发布不允许使用可更新的订阅,当 IDENTITY 列被传输到订阅服务器时,

      不会传输 IDENTITY 属性。(例如,在发布服务器上定义为 INT IDENTITY 的列

      在订阅服务器上将定义为 INT。)

      如果想将 IDENTITY 属性传输到订阅表,则必须进行如下操作:

      ? 使用 IDENTITY 属性和 NOT FOR REPLICATION 选项手工创建订阅表。您

      可以通过让 SQL Server 在应用快照之前执行自定义脚本来执行该操作。若要指

      定自定义脚本,请先创建发布,再创建脚本,然后在发布属性的“快照”选项卡

      上输入该脚本的名称。

      ? 设置名称冲突项目属性,以便 SQL Server 在订阅服务器上应用快照时不 会除去现有的表。该属性在项目属性的“快照”选项卡上。

      下列已发布表包含“标识”列:

      [dbo].[BookIndex]

      ===================

      SQL Server 要求发布的存储过程所引用的所有对象(如表和用户定义函数)在订

      阅服务器上都可用。如果引用的对象在此发布中未作为项目发布,则它们必须在

      订阅服务器上手工创建。

      在此发布中发布了下列存储过程:

      [dbo].[getChaNameList]

      [dbo].[setUpWebsite]
  • 相关阅读:
    环形链表II 找环入口
    最短无序连续子数组 复制数组排序后与原数组相比
    和为K的子数组 暴力 或 hash+前缀
    在排序数组中查找元素的第一个和最后一个位置 二分法+递归
    NodeJs 批量重命名文件,并保存到指定目录
    NodeJs 批量图片瘦身,重设尺寸和图片质量并保存到指定目录
    NodeJs 获取照片拍摄日期和视频拍摄日期,并按日期目录存档
    Oracle迁移记录
    Oracle数据库迁移前的准备工作(创建用户并且分配权限及表空间)
    Oracle 11g R2性能优化 10046 event【转载】
  • 原文地址:https://www.cnblogs.com/y0umer/p/3839312.html
Copyright © 2011-2022 走看看