[2003] .MDB naar MS SQL 2005 live*

Pagina: 1
Acties:

  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 11-02 21:49
korte omschrijving:

Ik heb een bestaande (draaiende) SQL 2005 server.
Ik wil mijn huidige .mdb database(s) kopieeren naar deze SQL server.

Hoe kan ik dit het best aanpakken?

Ik heb meerdere mogelijkheden gelezen:

1: De MSAccess wizard upsize.
nadeel: dit kan niet terwijl er nog mensen werken in het systeem. Kan maar 1 database tegelijk in principe. Dus geen optie.

2: de SQL database selecteren in 2005 en kiezen voor "import data"
nadeel:
- Is erg traag als de keys en indexes ook mee moeten.
- Bij tabellen zonder keys vraagt hij welke key het dan moet worden.
- Ik weet niet of dit 'live' kan.

Derde en best optie:
3: SSIS packages. (voorheen DTS)

Alleen:
Ik weet niet precies hoe het werkt. :+

Ik maak met de Microsoft Integration Services een nieuwe package gemaakt.

Ik wil hiermee ALLE tabellen uit de .mdb's in één keer kopieëren naar de nieuwe SQL database.
Zodra dit bijna klaar is hoef ik alleen een ODBC koppeling op één server om te gooien naar de SQL server en klaar.

Is die laatste manier de goede? En hoe kan ik het beste mijn package configureren?
Moet ik pér tabel een OLE DB source ---> SQL Server Destination maken?ja

you had me at EHLO


  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
Volgens mij moet je eerst eens kijken of je applicatie een migratie naar SQL wel zo makkelijk kan verwerken, want vaak moeten er toch wel wat dingen overgezet worden.

Je kan van de dingen die je niet weet natuurlijk niet verwachten dat wij ze je stap voor stap uit gaan leggen. We zien graag dat je zelf wat moeite doet, door bijvoorbeeld wat documenten door te lezen en wat te zoeken op het internet.

Verder ga ik er even vanuit dat je Server 2003 draait, dus zet ik even [2003] vooraan de topictitel. Dit per de Windows Servers en Server-Software - Policy

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters


  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 11-02 21:49
Ik heb hierover wat whitepapers gelezen van MS, maar ik kom er nog niet aan uit: volgens mij is wat ik wil véél simpeler dan er op het internet overal omschreven staat. Dat is allemaal pas later pas van belang.

Ik heb nu inderdaad een Win2k3 machine met Ms SQL server 2005 developer edition.
Mijn doel is om meerdere Access databases om te zetten naar SQL (vooral omdat de max van 2gb er aan zit te komen).
Mij is verteld dat dit gebeurde met DTS packages, iets wat in SQL 2005 "SSIS" heet. Ik heb nu een nieuw Integration Services Project gemaakt, en met de Import en Export wizard een data flow gemaakt. Mijn vraag is: is dit voldoende?

Kopieer ik nu ook de Index en Key's mee uit de .mdb? dit kon ik nl. niet definiëren..! En ik kan het niet echt testen hier.. (de debug wel liep wel goed btw)

you had me at EHLO


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Indexen en keys (en default waardes, en of NULLs toegestaan worden etc) kopieer je niet mee op deze manier (tenminste in SQL2000 niet). Dit gebeurt wel met de upsize wizard maar ook daar zitten/zaten nog foutjes in. Je zult er dan ook nog met de hand naar moeten kijken. Ik denk dat je je eis om het live te doen sowieso overboord moet zetten. Je zult toch ook wat dingen moeten controleren lijkt mij.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 11-02 21:49
is er een manier om indexxen en keys mee te nemen?

Ik kan bijvoorbeeld éérst een upsize wizard doen, en dan later de nieuwste records toevoegen met het SSIS project..?

you had me at EHLO


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ja, dat kan wel hoewel je op het moment dat er wel relaties zijn rekening moet houden met de volgorde van toevoegen.

Zij het allemaal dezelfde databases qua structuur?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 11-02 21:49
nee, helaas niet..!

Ik ben nu de volgorde inderdaad aan het bepalen, erg jammer is dat de database heel veel relaties hebben, en soms zelfs ook naar mijn andere SQL database (kleintje). Neemt hij dat ook mee?

Ik denk sowieso dat ik alles na moet gaan kijken, alle dbo's etc. maar het gaat er mijn om dat de meeste recente data bij wijze van spreken in een 10 minuten naar de nieuwe database gekopieerd kan worden

probleem is: de databases mogen niet (lang) down: er zit namenlijk kaartverkoop van een webserver aan gekoppeld.

you had me at EHLO


Verwijderd

TheNymf schreef op donderdag 16 november 2006 @ 15:41:
korte omschrijving:

Ik heb een bestaande (draaiende) SQL 2005 server.
Ik wil mijn huidige .mdb database(s) kopieeren naar deze SQL server.

Hoe kan ik dit het best aanpakken?

Ik heb meerdere mogelijkheden gelezen:

1: De MSAccess wizard upsize.
nadeel: dit kan niet terwijl er nog mensen werken in het systeem. Kan maar 1 database tegelijk in principe. Dus geen optie.

2: de SQL database selecteren in 2005 en kiezen voor "import data"
nadeel:
- Is erg traag als de keys en indexes ook mee moeten.
- Bij tabellen zonder keys vraagt hij welke key het dan moet worden.
- Ik weet niet of dit 'live' kan.

Derde en best optie:
3: SSIS packages. (voorheen DTS)

Alleen:
Ik weet niet precies hoe het werkt. :+

Ik maak met de Microsoft Integration Services een nieuwe package gemaakt.

Ik wil hiermee ALLE tabellen uit de .mdb's in één keer kopieëren naar de nieuwe SQL database.
Zodra dit bijna klaar is hoef ik alleen een ODBC koppeling op één server om te gooien naar de SQL server en klaar.

Is die laatste manier de goede? En hoe kan ik het beste mijn package configureren?
Moet ik pér tabel een OLE DB source ---> SQL Server Destination maken?ja
upsize wizard gebruiken. Worden gewoon netjes de tabellen aangemaakt, indexes gezet etc. Bij de andere 2 opties zal je toch eerst een db moeten designen. Pas als je een database hebt kan je hier data ingooien :P

Verwijderd

TheNymf schreef op vrijdag 17 november 2006 @ 11:02:
nee, helaas niet..!

Ik ben nu de volgorde inderdaad aan het bepalen, erg jammer is dat de database heel veel relaties hebben, en soms zelfs ook naar mijn andere SQL database (kleintje). Neemt hij dat ook mee?

Ik denk sowieso dat ik alles na moet gaan kijken, alle dbo's etc. maar het gaat er mijn om dat de meeste recente data bij wijze van spreken in een 10 minuten naar de nieuwe database gekopieerd kan worden

probleem is: de databases mogen niet (lang) down: er zit namenlijk kaartverkoop van een webserver aan gekoppeld.
als je upsize wizzard draait, wordt je access db niet verwijderd ofzo en totdat je de code van je applicatie wijzigt, blijft gewoon de oude db gebruikt worden. Waarschijnlijk wordt wel de access db gelocked tijdens de actie.

  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 11-02 21:49
nee, ik wil nu:

één DB als test.

de mdb kopieeren (totaal).
deze kopie upsizen (database wordt aangemaakt incl keys en index).
in SQL 2005 de database scripten.
de database verwijderen.
het nieuwe script draaien.
dán een SSIS package draaien zodat de recente data erin gezet wordt.

is dit de oplossing?

het scripten is noodzakelijk kwaad, omdat anders auto-encriment nummers read-only zijn, en dus kunnen ze dan niet overschreven worden door SSIS

[ Voor 34% gewijzigd door sjongenelen op 17-11-2006 14:42 . Reden: extra stap toegevoegd ]

you had me at EHLO


  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 11-02 21:49
nieuwe update post:


Ik heb nu de database gebouwd met de upsize wizard. De database gescript (incl. logins, tabellen ed.) en toen de SQL database verwijderd.
Opnieuw aangemaakt, script laten lopen.

SSIS package gemaakt. Speciale (non-fast load compatible) in aparte packages gezet.
SSIS packages uitgevoerd.
mdb's vervangen door mdb's met koppelingen (via een file-dsn) naar de SQL tabellen teruggeplaatst. relaties gelegd en de boel weer live gegooid.

problemen zijn nu met query's. er wordt door SQL afgerond (integer). daardoor kloppen eindberekeningen niet meer.

wat ik nu wil:

hoe kan ik met SSIS een package schedulen die data uit de SQL server kopieert naar een tijdelijke mdb. - Dit MOET updaten zijn - en dagelijks gaan gebeuren... help?

you had me at EHLO


Verwijderd

sql gaat natuurlijk niet afronden, tenzij dat zo gespecificeerd is.
Pagina: 1