views:

249

answers:

1

We get a MYSQL 5.0 dataset each month (1.7gig) and I need to create a process to migrate this to a SQL Server 2008.

This seems a little harder than I first thought...

I've tried a few ways:

  1. Using the Import wizard
  2. Setting up a linked server

I've also tried different ways:

  1. Using the .net Framework Dataprovider for MYSQL
  2. Using MYSQL ODBC 5.1 driver.

If I try options 1 + 1 (Wizard, using odbc), I get "unable to retrieve column information", Option 2 + 4, I get a message: "Cannot get the column information from OLE DB provider "MSDASQL" for linked server "server name"."

This feels like a cache, or size issue, because if I limit the rows I return to less than 300,000 it works. This is more annoying as the main table is over 1.2 million rows.

So my questions two parts: Am I doing this the right or wrong way, and have I missed something obvious?

A: 

You can use SQL Server Integration Services to connect to the MySQL database and pull the data you need over. The SSIS team blog has a walk-through for connecting to MySQL at Connecting to MySQL from SSIS. Once you build your SSIS package, you can re-use it each time you get a new data dump.

JP Alioto
I found a few links like that. The problem is that they are fine for high level, but are light on, in the details. eg: I didn't get a chance to debug too deep into it, so I'm not sure if that's a problem on the SSIS side, or something about the metadata being returned by the provider. ALSO: The ADO.Net Destination worked fine, although I had to type in the table name as the list wasn't auto-populated, and I didn't run into any problems with the simple data set I was using. SO the author doesn't know what is going wrong and is using a simple dataset???
Christian Payne