【问题标题】:SSAS Connection String when deploying across multiple environments?跨多个环境部署时的 SSAS 连接字符串?
【发布时间】:2013-07-17 13:09:29
【问题描述】:

我有三种不同的环境;开发、测试和生产。

这三个 SSAS 环境连接到三个不同的 SQL Server 实例。

但是,服务器在 SSAS 数据源中是硬编码的,因此当您部署时,实例会损坏,因为它指向错误的、无法访问的 SQL 服务器。

如何配置 SSAS 数据源连接字符串,使其在部署时不会被覆盖,或者,如何使其可变,以便为部署到的环境查找正确的值?

在部署到每个环境之前,我一直在手动编辑 .asdatabase 文件,但这违反了变更控制程序,这是不可接受的,因此我必须建立一个更合适的机制。也许有一个非常简单的解决方案,但如果是这样,我还没有弄清楚。

【问题讨论】:

    标签: deployment connection-string datasource ssas


    【解决方案1】:

    一种方法可能是在部署 SSAS 多维数据集时,您可以运行 XMLA 脚本,在 SSAS 连接字符串中设置 SQL Server 数据源。另一种方法是您可以将源设置为在所有环境中具有相同名称的 System DSN,并在 ODBC 数据源控制面板中进行调整。由于各种原因,我更喜欢前者,但后者可以工作。

    【讨论】:

    • 使用系统 DSN 听起来很有希望,但是,我们在这里谈论的是理论还是实际实践? SSAS 数据源似乎是嵌入的,我看不到引用系统 DSN 的方法。有人能启发我吗?
    • 我上次这样做已经有一段时间了,但基本上你通过选择 OLEDB Provider for ODBC Drivers 选择了 Analysis Services 中的 DSN - 链接是一个示例:dbms.knowledgehills.com/Create-ODBC-DSN-for-Analysis-Services/…
    • 恐怕是 2000 年,我使用的是 SSAS 2008 R2。
    【解决方案2】:

    在 Visual Studio 2019 的 SSAS / SSDT 版本中,配置管理器在更改时似乎会偷偷更改。这保存在 .dwproj 文件中。每个配置都有一个这样的条目。

    <Configuration>
      <Name>Prod</Name>
      <Options>
        <ConnectionMappings>
          <ConfigurationSetting>
            <Id>SII DW</Id>
            <Name>SII DW</Name>
            <Value xsi:type="xsd:string">Provider=SQLNCLI11.1;Data Source=SERVER;Integrated Security=SSPI;Initial Catalog=SII_DW</Value>
          </ConfigurationSetting>
        </ConnectionMappings>
        <ConnectionSecurityMappings>
          <ConfigurationSetting>
            <Id>SII DW</Id>
            <Name>SII DW</Name>
            <Value xsi:type="xsd:int">0</Value>
          </ConfigurationSetting>
        </ConnectionSecurityMappings>
        <DeploymentServerEdition>Standard</DeploymentServerEdition>
        <DeploymentServerVersion>13.0</DeploymentServerVersion>
      </Options>
    </Configuration>
    

    【讨论】:

      【解决方案3】:

      最近这让我有点发疯,但我设法做到这一点的方式是使用部署向导部署到开发(我使用的是表格,所以我必须使用 v17)。然后在 SSMS 中,我连接到我的开发分析服务实例,右键单击数据源并在那里更改连接属性,然后手动处理。

      如果我以前在 SSDT 中做过,到目前为止由于某种未知原因无法正常工作(我希望我会深入了解它)。

      我觉得这不是最好的解决方案,我尝试使用部署脚本,但也没有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-07
        • 1970-01-01
        • 2017-04-07
        • 1970-01-01
        • 2012-11-05
        相关资源
        最近更新 更多