none
SQL SERVER2005搭建镜像和复制后的问题 RRS feed

  • 问题

  • ABCDE,都为一台数据库服务器

    A为主,B为镜像,C为见证,D为分发,E为订阅服务器

    功能已大部分实现

    A,B服务器实现自动故障切换

    但是当A,B两台服务器都运行的时候,无伦谁是主数据库,E服务器都可以订阅到。

    但当 A为主,B断线  或 A断线,B为主 时,订阅服务器却接受不到。

    下面代码也在D分发服务器上执行了还是没用,请赐教。

    
    exec sp_help_agent_profile
    
    exec sp_add_agent_parameter @profile_id = 1, 
    @parameter_name = N'-PublisherFailoverPartner', 
    @parameter_value = N'sql2005-write-m'--镜像服务器名称
    
    exec sp_add_agent_parameter @profile_id = 6, 
    @parameter_name = N'-PublisherFailoverPartner', 
    @parameter_value = N'sql2005-write-m'--镜像服务器名称


    • 已编辑 frankjie 2012年9月24日 5:33
    2012年9月24日 5:30

答案

  • 将复制与数据库镜像一起使用时,注意以下要求和注意事项:

    • 主体数据库和镜像数据库必须共享分发服务器。 建议此处使用远程分发服务器,如果发布服务器有意外故障转移,则远程分发服务器可以提供较大的容错能力。

    • 发布服务器和分发服务器必须为 Microsoft SQL Server 2005 或更高版本。 订阅服务器可以为任意版本,但早于 SQL Server 2005 的版本的合并复制请求订阅不支持故障转移,在这种情况下代理在订阅服务器中运行,并且早期版本的代理不能识别镜像。 如果数据库从镜像数据库故障恢复到主体数据库,则对此类订阅服务器的复制将继续进行。

    • 对于合并复制,以及对于使用只读订阅服务器或排队更新订阅服务器的事务复制,复制支持对发布数据库进行镜像。 不支持即时更新对等拓扑中的订阅服务器、Oracle 发布服务器、发布服务器并重新发布。

    • 存在于数据库外部的元数据和对象不复制到镜像数据库,包括登录名、作业、链接服务器等等。 如果要求镜像数据库中有元数据和对象,则必须手动复制它们。 在角色切换后管理登录名和作业(数据库镜像)

    请参考这个链接进行配置

    http://msdn.microsoft.com/zh-cn/library/ms151799.aspx

    –PublisherFailoverPartner 代理参数的镜像名称。 下列代理在故障转移后需要使用此代理参数来标识镜像:

    • 快照代理(对于所有发布)

    • 日志读取器代理(对于所有事务发布)

    • 队列读取器代理(对于支持排队更新订阅的事务发布)

    • 合并代理(对于合并订阅)

    • SQL Server 复制侦听器(replisapi.dll:用于使用 Web 同步进行同步的合并订阅)

    • SQL 合并 ActiveX 控件(对于与控件同步的合并订阅)

    分发代理和分发 ActiveX 控件没有此参数,因为它们不连接到发布服务器。

    对代理参数所做的更改在下次启动代理时生效。 如果代理连续运行,则必须停止该代理,然后重新启动。 可以在代理配置文件中和从命令提示符指定参数。

    –PublisherFailoverPartner 添加到代理配置文件,然后在配置文件中指定镜像名称

    2012年9月26日 10:57

全部回复

  • Many manual processes are involved as I know, did you get any error?
    2012年9月24日 15:22
  • 没有任何的错误提示,一切看起来都很正常。
    2012年9月25日 6:13
  • 你说ABCDE 5个数据库都在一台数据库服务器

    A为主,B为镜像,C为见证,D为分发,E为订阅服务器


    A,B服务器实现自动故障切换?

    请问究竟多少台服务器呢?


    给我写信: QQ我:点击这里给我发消息


    2012年9月25日 11:33
  • 

    5台服务器

    ABCDE都为单独的服务器

    2012年9月26日 1:13
  • 将复制与数据库镜像一起使用时,注意以下要求和注意事项:

    • 主体数据库和镜像数据库必须共享分发服务器。 建议此处使用远程分发服务器,如果发布服务器有意外故障转移,则远程分发服务器可以提供较大的容错能力。

    • 发布服务器和分发服务器必须为 Microsoft SQL Server 2005 或更高版本。 订阅服务器可以为任意版本,但早于 SQL Server 2005 的版本的合并复制请求订阅不支持故障转移,在这种情况下代理在订阅服务器中运行,并且早期版本的代理不能识别镜像。 如果数据库从镜像数据库故障恢复到主体数据库,则对此类订阅服务器的复制将继续进行。

    • 对于合并复制,以及对于使用只读订阅服务器或排队更新订阅服务器的事务复制,复制支持对发布数据库进行镜像。 不支持即时更新对等拓扑中的订阅服务器、Oracle 发布服务器、发布服务器并重新发布。

    • 存在于数据库外部的元数据和对象不复制到镜像数据库,包括登录名、作业、链接服务器等等。 如果要求镜像数据库中有元数据和对象,则必须手动复制它们。 在角色切换后管理登录名和作业(数据库镜像)

    请参考这个链接进行配置

    http://msdn.microsoft.com/zh-cn/library/ms151799.aspx

    –PublisherFailoverPartner 代理参数的镜像名称。 下列代理在故障转移后需要使用此代理参数来标识镜像:

    • 快照代理(对于所有发布)

    • 日志读取器代理(对于所有事务发布)

    • 队列读取器代理(对于支持排队更新订阅的事务发布)

    • 合并代理(对于合并订阅)

    • SQL Server 复制侦听器(replisapi.dll:用于使用 Web 同步进行同步的合并订阅)

    • SQL 合并 ActiveX 控件(对于与控件同步的合并订阅)

    分发代理和分发 ActiveX 控件没有此参数,因为它们不连接到发布服务器。

    对代理参数所做的更改在下次启动代理时生效。 如果代理连续运行,则必须停止该代理,然后重新启动。 可以在代理配置文件中和从命令提示符指定参数。

    –PublisherFailoverPartner 添加到代理配置文件,然后在配置文件中指定镜像名称

    2012年9月26日 10:57