简体   繁体   中英

Using SSIS 2005 to retrieve data from SQL Server 2008 R2 database

I have a SSIS package that runs on a SQL Server 2005 instance that currently migrates data from one SQL Server 2000 database on another server to a SQL Server 2005 database on the server running the SSIS package. The database on SQL Server 2003 is migrating to SQL Server 2008 R2. When I try to run the current SSIS package on the SQL Server 2005 database (after changing the connection strings), I receive the following error:

Error: 2011-10-20 15:09:45.85 Code: 0xC0202009 Source: SSIS_Job Connection manager "2008R2Conn" Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040154. An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered". End Error Error: 2011-10-20 15:09:45.85 Code: 0xC020801C Source: Step [121] Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "2008R2Conn" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. End Error Error: 2011-10-20 15:. The step failed.,00:00:17,0,0,,,,0

I changed the connection string from:

<Configuration ConfiguredType="Property" Path="\Package.Connections[2008R2Conn].Properties[ConnectionString]" ValueType="String">
        <ConfiguredValue>Data Source=TargetDB;User ID=;Initial Catalog=TargetCatalog;Provider=SQLNCLI.1;Integrated Security=SSPI;Auto Translate=False;</ConfiguredValue>
    </Configuration>

to:

<Configuration ConfiguredType="Property" Path="\Package.Connections[2008R2Conn].Properties[ConnectionString]" ValueType="String">
        <ConfiguredValue>Data Source=TagetDB\Instance,<Port #>;User ID=;Initial Catalog=TargetCatalog;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;</ConfiguredValue>
    </Configuration>

I know I had to change the SQL Server Native Client provider b/c the original one is not included in SQL Server 2008 R2.

I set up a test instance of SQL Server 2008 R2 and ran the package from there and it worked successfully, but my client doesn't want to run the SSIS package from one of the servers with SQL Server 2008 R2 on it, so I'm stuck trying to get the SQL Server 2005 SSIS package to call the SQL Server 2008 DB. Any suggestions?

I know I had to change the SQL Server Native Client provider b/c the original one is not included in SQL Server 2008 R2.

You only need to change the SQL Native Client provider if you're going to run the package on a SQL Server 2008 box, because the SQLNCLI.1 provider doesn't ship with SQL Server 2008. (We're in the middle of a 2005->2008R2 upgrade and got bit by this.)

However, the SQLNCLI.1 provider is perfectly capable of communicating with SQL Server 2008 R2, so you should be able to run the package on your SQL Server 2005 box and have it update the data on the SQL Server 2008R2 database. (I just tried it on a Windows 2003 server running SQL Server 2005 and it worked fine.)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM