使用镜像的SSIS 2012 oledb connectionstring

时间:2012-09-14 08:09:39

标签: ssis sql-server-2012 mirroring database-mirroring

我正在尝试在几个镜像数据库上配置SSIS 2012项目。 我希望能够使用OLEDB提供程序,但这似乎不支持connectionstring中的Failover Partner属性。 我试图添加密钥“Failover Partner”,“Failover_Partner”和“FailoverPartner”,但它们都不起作用 - 连接永远不会尝试连接到故障转移器,即使它保存主体数据库。我的所有测试都是使用属性键的所有三种变体执行的。

如果我使用ADO.NET连接,在Connection Manager中有一个名为“Failover Partner”的内置设置,它就像一个魅力,它可以连接到数据库,主体位于任何一个服务器......就像它应该的那样。

我的问题是:当使用SSIS 2012再次成为SQL Server 2012镜像数据库时,OLEDB不能与镜像数据库一起使用是否正确?

我如何测试 我的测试非常简单:我有一个带有以下连接字符串的OLEDB连接管理器的“执行SQL任务”: Data Source = srv1; Initial Catalog = MyDatabase; Provider = SQLOLEDB.1; Integrated Security = SSPI; Auto Translate = False; Application Name = My Application; 我已尝试添加上述不同版本的故障转移合作伙伴:

Data Source = srv1.domain.local; Initial Catalog = MyDatabase; Provider = SQLOLEDB.1; Integrated Security = SSPI; Auto Translate = False; Application Name = My Application; Failover Partner = srv2.domain.local;

如果MyDatabase是srv1上的主体,那么它可以工作。如果数据库是srv2上的主体,则SSIS将失败并显示以下错误: 错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“用于SQL Server的Microsoft OLE DB提供程序”Hresult:0x80004005描述:“无法打开数据库”MyDatabase“登录请求。登录失败。”。

并在错误日志中的srv1上记录以下内容: 用户'DOMAIN \ MyUser'登录失败。原因:无法打开显式指定的数据库'MyDatabase'。 [客户:10.0.0.3]

我做错了什么?或者我是否需要更改为按预期工作100%的ADO.NET?

感谢名单, Sjang

1 个答案:

答案 0 :(得分:0)

如果使用OleDB / SQLNCLI11.1连接字符串,则存在故障转移伙伴参数:

Data Source=srv1;Initial Catalog=myDB;Provider=SQLNCLI11.1;Integrated Security=SSPI;Failover Partner=failover_partner_name;