在服务器群集方案中启用SQL Server CLR集成是一种好习惯吗?我的组织的策略不允许在其生产服务器上部署CLR程序集; DBA告诉我这是因为CLR UDF在进程中运行,数据库在集群上。
我只是很好奇政策是要简化数据库管理员(并且可能确保所有代码都是开放供DBA审查的),或者是否有技术原因禁止在服务器群集方案中进行CLR集成?线程安全?
相关问题:
(顺便说一下,我的主要用例是字符串操作UDF,如this answer中所述)
答案 0 :(得分:1)
afaik集群sql server实例和CLR集成之间没有关联。 SQL Server充当CLR主机。当使用CLR功能(例如,调用CLR UDF)时,将从数据库加载程序集。 被动群集节点没有启动SQL Server服务,为什么要打扰?主动/主动群集将运行两个彼此独立的SQL Server实例。一个在节点一上是活动的,另一个在节点2上是活动的。
好吧,使用不安全的汇编代码肯定会导致问题并关闭sql server实例(并使其在集群环境中来回故障转移)。 DBA不一定有.net编程的线索,可能想避免处理这些问题。否则,我认为这项政策背后没有可靠的理由支持技术论证。请注意您希望在SQL Server上运行的代码。 CLR代码的安全门背后肯定有一个原因(安全,外部访问和不安全)。
Cheerio
答案 1 :(得分:0)
在这里,我发布了一篇文章为什么以及何时应该使用CLR集成 [http://www.queryingsql.com/2013/08/net-components-integration-with-sql.html][1] http://www.queryingsql.com/2013/08/net-components-integration-with-sql.html