none
2003群集+sql2000在备份机上的服务有点问题,有人能帮我么? RRS feed

  • 问题

  •  

    最近做点试验进行2003群集+sql群集,环境是2台服务器装的都是2003企业版,一台磁盘陈列.

    2003的群集做好了,没问题,SQL2000的企业版也在主机上完全按照

    http://www.microsoft.com/china/CTC/Newsletter/05/ctc2.htm

    这里安装完成,只是最后打的补丁是SP4的

     

    问题是主机模拟出问题或重新启动时,服务切换到备份机后,SQL SERVER这个服务就联机失败,切回主机主机就能联机成功

     

    备份机能接管除了SQL SERVER ,sql server agent和全文检索外的全部组件

     

     

    补充:本来群集IP为192.168.10.253,后来因为SQL IP需要这个(装完SQL后),后来的操作就是把整体集群IP脱机了更改IP后又把SQL IP更改为192.168.10.253 .更改SQL IP后有用SQL安装盘走过配置,还进行过删除备份机SQL节点再添加上.

     

    不知道是不是这里不应该这么做,希望有过这样经历的朋友能帮个忙,谢谢了。

    2008年7月25日 9:42

答案

  •  

    一般来讲,MS SQL服务器更改服务器IP(或计算机名称)后,可能会导致SQL SER数据库中关于此项的记录没有更新.然后可能会导致您现在的问题.同步SQL SER数据库中计算机名和IP对应关系需要一个脚本:

    在查询分析器里执行:
             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服务才能生效。

    2008年7月26日 6:13
  • You can get sql instance name with 'select @@servername', this is name stored in sql and may differ from existing instance name. Ip address of sql instance is stored in registry. In this case, don't need change instance name at all.

     

    2008年7月26日 22:12

全部回复

  • Did you get any error? Is sql listening on that ip address? Check sql server log, cluster log file and windows event logs for details.

    2008年7月25日 13:31
  •  

    一般来讲,MS SQL服务器更改服务器IP(或计算机名称)后,可能会导致SQL SER数据库中关于此项的记录没有更新.然后可能会导致您现在的问题.同步SQL SER数据库中计算机名和IP对应关系需要一个脚本:

    在查询分析器里执行:
             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服务才能生效。

    2008年7月26日 6:13
  • You can get sql instance name with 'select @@servername', this is name stored in sql and may differ from existing instance name. Ip address of sql instance is stored in registry. In this case, don't need change instance name at all.

     

    2008年7月26日 22:12