ミラーリングされたいくつかのデータベースでSSIS2012プロジェクトを構成しようとしています。OLEDBプロバイダーを使用できることを望んでいましたが、接続文字列のフェールオーバーパートナー属性をサポートしていないようです。キー「FailoverPartner」、「Failover_Partner」、「FailoverPartner」を追加しようとしましたが、いずれも機能しません。プリンシパルデータベースを保持している場合でも、接続がフェールオーバーパートナーに接続しようとはしません。私のテストはすべて、属性キーの3つのバリアントすべてを使用して実行されました。
ADO.NET接続を使用する場合、接続マネージャーに「フェイルオーバーパートナー」と呼ばれる組み込み設定があり、これは魅力のように機能し、プリンシパルがいずれかのサーバー上にあるデータベースに接続できます。 ...必要に応じて。
私の質問は次のとおりです。SSIS2012をSQLServer2012のミラーデータベースに対して使用する場合、ミラーデータベースでOLEDBがそのままでは機能しないのは正しいですか。
テスト方法 テストは非常に簡単です。次の接続文字列を持つOLEDB接続マネージャーを使用した「SQL実行タスク」があります。データソース=srv1;初期カタログ=MyDatabase;プロバイダー=SQLOLEDB.1;統合セキュリティ=SSPI;自動変換=False;アプリケーション名=マイアプリケーション; 上記のように、フェイルオーバーパートナーのさまざまなバージョンを追加してみました。
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。OLEDBエラーが発生しました。エラーコード:0x80004005。OLEDBレコードが利用可能です。ソース: "Microsoft OLE DB Provider for SQL Server" Hresult:0x80004005説明:"ログインによって要求されたデータベース"MyDatabase"を開くことができません。ログインに失敗しました。"
エラーログのsrv1に次のログが記録されます。ユーザー「DOMAIN\MyUser」のログインに失敗しました。理由:明示的に指定されたデータベース「MyDatabase」を開くことができませんでした。[クライアント:10.0.0.3]
私は何が間違っているのですか?または、期待どおりに100%動作するADO.NETに変更する必要がありますか?
サンクス、シャン