none
事务复制,订阅服务器使用ftp获得快照,ftp端口修改,不为21后,为什么无法复制? RRS feed

  • 问题

  • 平台:
    ms sqlserver 2005,sp3补丁
    发布服务器和分发服务器1台数据库服务器上,
    订阅服务器在另一个不同地区的机房里,
    事务复制,使用在订阅服务器拉的方式订阅,快照文件选择ftp方式从分发服务器获得,

    现象:
    当设置ftp服务器的端口为21时,复制完全成功,当把ftp端口改为其他如:990时,始终出错,
    分发代理程序连接ftp服务器的时间很长,最后错误提示"进程未能检索文件XXXX,".

    我的分析:
    因为配置端口为21时是正常,因此快照文件在发布服务器上生成是正常的,并且在发布--属性上也对ftp的端口
    也设置为990,订阅创建好后,检查快照文件夹,确实生产了快照文件,ftp的路径等都设置是正确的,
    因为端口为21时都正常,只是改动了端口就不正常.

    我做的相关检查:
    在订阅服务器上telnet发布服务器的和990端口.能够连接,所有机器的防火墙都关闭了.在订阅服务器上,使用ie浏览器
    登陆ftp的990端口,完全能下载文件.

    真是太奇怪了,莫非sql 的ftp复制只支持21端口?但发布属性的ftp设置里面明确的有端口的配置啊!!
    有哪位修改了ftp端口复制成功的朋友,给点建议吗?
    2010年2月23日 2:45

答案

  • 默认情况下 FTP需要开2个端口, 一个是数据端口,一个是控制端口,控制端口一般为21,而数据端口不一定是20,这和FTP的应用模式有关,如果是主动模式,应该为20,如果为被动模式,由服务器端和客户端协商而定。

    看起来是你的数据端口没开通。控制端口正常。
    2010年2月26日 8:22

全部回复

  • Did you check ftp server's port setting? Can you ftp file via port 990 in dos prompt?
    2010年2月23日 3:15
  • yes, already...

    我用FlashFXP(FTP工具),或者用IE的FTP 都可以访问到生成的快照文件,
    但唯独sqlserver访问的时候不行,
    提示:

    尝试的命令:
    if @@trancount > 0 rollback tran
    (事务序列号: 0x0000012700000099000300000002,命令 ID: 8)

    错误消息:
    进程无法从 FTP 站点“xxx.xxx.xxx.xxx”检索文件“MELS_OPENMEETINGS_OPEN/20100223094956/snapshot.cab”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20033)
    获取帮助: http://help/MSSQL_REPL20033
    200 Type set to I
    200 Port command successful
    213 528804
    425 Can't open data connection.
     (源: MSSQL_REPL,错误号: MSSQL_REPL12003)
    获取帮助: http://help/MSSQL_REPL12003
    进程无法从 FTP 站点“xxx.xxx.xxx.xxx”检索文件“MELS_OPENMEETINGS_OPEN/20100223094956/snapshot.cab”。 (源: MSSQL_REPL,错误号: MSSQL_REPL)
    获取帮助: http://help/MSSQL_REPL



    请看这句话:

    200 Port command successful
    213 528804
    425 Can't open data connection.

    “Port command successful” 。。。 是不是代表端口正常?

    2010年2月23日 3:23
  • Did you check ftp server's port setting? Can you ftp file via port 990 in dos prompt?

     不好意思,刚刚没有用DOS模式,
    现在用DOS测试, 发现可以登录990, 但是当列文档的时候,出错,
    提示:

    用户(***.***.***.** none)): sql__123
    331 Password required for sql__123
    密码:
    230 Logged on
    ftp> ls
    200 Port command successful
    425 Can't open data connection.
    2010年2月23日 3:38
  • Can't open data connection

    可能是
    是否有数据访问权限?
    防火墙是否容许访问?


    family as water
    2010年2月23日 9:17
  • 默认情况下 FTP需要开2个端口, 一个是数据端口,一个是控制端口,控制端口一般为21,而数据端口不一定是20,这和FTP的应用模式有关,如果是主动模式,应该为20,如果为被动模式,由服务器端和客户端协商而定。

    看起来是你的数据端口没开通。控制端口正常。
    2010年2月26日 8:22