3

我正在尝试在几个镜像数据库上配置 SSIS 2012 项目。我希望能够使用 OLEDB 提供程序,但这似乎不支持连接字符串中的故障转移伙伴属性。我尝试添加键“Failover Partner”、“Failover_Partner”和“FailoverPartner”,但它们都不起作用——即使保存了主体数据库,连接也不会尝试连接到故障转移部分。我的所有测试都是使用属性键的所有三个变体执行的。

如果我使用 ADO.NET 连接,连接管理器中有一个名为“故障转移伙伴”的内置设置,它的作用就像一个魅力,它可以连接到数据库,主体位于任一服务器上......就像它应该的那样。

我的问题是:当使用 SSIS 2012 和 SQL Server 2012 镜像数据库时,OLEDB 在镜像数据库中不能开箱即用是否正确?

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

数据源=srv1.domain.local;初始目录=MyDatabase;Provider=SQLOLEDB.1;集成安全=SSPI;自动翻译=False;应用程序名称=我的应用程序;故障转移伙伴=srv2.domain.local;

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

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

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

谢谢,Sjang

4

1 回答 1

0

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

Data Source=srv1;Initial Catalog=myDB;Provider=SQLNCLI11.1;Integrated Security=SSPI;Failover Partner=failover_partner_name;
于 2012-10-22T10:35:29.837 回答