3

ミラーリングされたいくつかのデータベースで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に変更する必要がありますか?

サンクス、シャン

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 に答える