任何人都可以帮助我...
我有一个3节点的sql server集群,比如说N1,N2和N3。三节点集群的名称是SQLCLUS。 应用程序使用连接字符串名称中的名称SQLCLUS连接到数据库。
该应用程序使用SQL Server会话管理。所以我远程桌面到N1(这是活动的,而N2和N3是被动的)和来自locaiton
C:\的Windows \ Microsoft.NET \ Framework64 \ V2.0.50727
我执行了以下命令
aspnet_regsql.exe -S SQLCLUS -E -ssadd -sstype p
命令执行成功。然后我可以登录SQLCLUS并查看使用2个表创建的ASpState数据库。
然后,我测试了使用SQL Server会话的applciation,它也可以正常工作。
现在我的问题是......
如果故障转移到节点N2或N3,我的应用程序仍然有效吗?我没有从N2执行上述命令(aspnet_regsql.exe)。
我是否应该在N2和N3中执行命令aspnet_regsql.exe -S SLCLCLUS -E -ssadd -sstype p?
执行上述命令后,sql server会发生什么变化?我的意思是,是否可以看到任何类型的服务设置更改?
非常赞赏任何有关此事的评论......
提前致谢...
答案 0 :(得分:2)
Sql Server故障转移群集在概念上可以解释为烟雾和镜像dns hack。用熟悉的术语来思考聚类会让你意识到它真正的技术是多么简单。
想象一下,你有两台电脑:SrvA和SrvB
将外部HD(F :)插入SrvA,安装Sql Server并将其配置为将其数据库文件存储在f:\(可执行文件位于C:\ Program Files下)。
拔下HD,将其插入SrvB,安装Sql Server并将其配置为将其数据库文件存储在完全相同的F:\位置。
现在,您创建一个dns别名“MyDbServer”,指向SrvA,将外部HD插回SrvA,然后启动sql server。
直到有一天,当SrvA上的电源出现故障并且机器发生故障时,一切都很好。
要从此灾难中恢复,请执行以下操作:
你现在已经开始使用SrvB了,你的客户端应用程序幸福地意识到SrvA失败了,因为他们只使用名称“MyDbServer”进行连接。
SrvA和SrvB是群集节点。 外部HD是共享SAN存储。 三步恢复过程是在群集故障转移期间发生的,并由 Windows故障转移群集服务自动管理。
剩下的 .01%必须在每个节点上完成的事情(因为它们不存储在共享存储上)就像应用Service Pack一样(请记住,可执行文件是在c :),某些注册表设置(一些Sql Server注册表设置是“检查点”和故障转移,有些不是),注册第三方COM dll(没有人真的这样做了)并更改Sql Server在其下运行的服务帐户。
如果要验证不需要在每个节点上运行aspnet_regsql,请尝试故障转移并验证您的应用程序是否仍然有效。如果你确实在每个节点上运行aspnet_regsql并引用了集群名称(SQLCLUS),那么你将有效地覆盖数据库,所以如果它没有错误输出,它就会消灭你现有的数据。