web-dev-qa-db-ja.com

SQL Server2012でSSISパッケージが32ビットとして実行されていない

VS2012で(SQLデータツールコンポーネントを使用して)開発したパッケージがあります。このパッケージは、VFPOLEDBプロバイダーを使用してDBFファイルからデータを収集し、SQL Server 2012X64サーバー上のデータベースに配置します。パッケージを含むプロジェクトでは、Run64BitRuntimeのDebugOptionがfalseに設定されています。このパッケージをテストサーバーとライブサーバーのSSISパッケージストアにインポートしました(同じセットアップ)。 VFPOLEDBプロバイダーは両方にインストールされており、両方のマシンのレジストリで、32ビットランタイム用に存在することがわかります。

パッケージはテストマシンでは正常に実行されますが、ライブマシンでは失敗します。 SQLのライブインスタンスは、インストールされている32ビットVFPOLEDBプロバイダーを認識していないようです。

SQLのインスタンスの唯一の違いは、ライブ環境にはIntegration Service Catalogが設定されているのに対し、テストには設定されていないことです。サーバーのログを見ると、ライブが開始されると、sp_ssis_startupが実行され、安全でないアセンブリが読み込まれていることに関するメッセージがログに記録されます。このSPは、テスト環境では実行されません。カタログ。

私が作成するジョブには、32ビットランタイムを使用するようにフラグが設定されていますが、SSISカタログで使用しているVFPOLEDBに問題があり、ロードされていないことを感じずにはいられません。

私はSSISカタログについて何も知らないので、誰かが私が進むことができる方向を提案することができますか?

更新:これが私のジョブステップ構成です。 32ビットランタイムフラグが設定されます。 SSIS Job Step Configuration

アップデート#2:

  1. OLEDBプロバイダーが適切にインストールされている。
  2. 同じバージョンのプロバイダーが両方のマシンにインストールされています。
  3. OBDCAD32.exeは、同じバージョンのVFPOLEDBプロバイダーを示しています。どちらのマシンにもDSNは定義されていません。私のローカルマシンにはDSNが定義されているので、dBASEファイル用にDSNを追加してみて、それが役立つかどうかを確認します。
  4. 現在、このステップを試す過程にあります。 SSISDBカタログを作成せずにdtexecツールを使用する方法を探しています。既存のSSISカタログを削除し、サービスの起動時にsp_ssis_startupの実行を停止しましたが。安全でないアセンブリに関するログエントリは表示されませんでしたが、ジョブは常に失敗し、いつもと同じエラーが発生しました。私は4について報告し、場合によってはさらにガイダンスを求めます。

アップデート#3:
確認したところ、テスト環境とライブ環境は最初に述べたものと同じではありません。ライブサーバーには32ビットバージョンのdtexec.exeがありません(ただし、これが問題になるとは思わなかったので、 TechNet は、SQL ServerAgentで実行されるジョブは常に64ビットバージョンを使用すると言っています。 x86およびi64ISOを使用してテスト環境をセットアップしましたが、ライブ用には64ビットのみのバージョンでした。これを変更するには、ライブボックスからIntegration Services共有コンポーネントをアンインストールし、デュアルISOで再インストールする必要があると思います。

「32ビットランタイムを使用する」オプションの設定は、使用する32ビットバージョンがある場合にのみ機能すると思いますか?それは物事を説明するかもしれません。

9
Adam H

64ビットSQLServerエージェントジョブからパッケージを32ビットモードで実行する場合は、ジョブステップタイプo->オペレーティングシステムを選択し、コマンドラインを入力するか、32ビットを呼び出すバッチファイルを使用しますdtexec.exeのバージョン

コマンド:CD "C:\ Program Files(x86)\ Microsoft SQL Server\120\DTS\Binn \" DTExec.exe/f "C:\ Download\Root\SQL Package.dtsx"

またはコマンド: "C:\ Program Files(x86)\ Microsoft SQL Server\120\DTS\Binn\DTExec.exe"/FILE "C:\ Download\Root\SQL Package.dtsx"/MAXCONCURRENT "-1"/CHECKPOINTINGオフ/レポートV/CONSOLELOG NCOSGXMT

注:SQL 201464ビットバージョンを使用していました。

0
Masud Ahmed