Cambio server - sql2000 -> sql2005

martedì 03 novembre 2009 - 18.36

paolino Profilo | Newbie

Ciao.
Spero di non aver creato un thread doppio, non ho trovato qualcosa di analogo nel forum. Chiedo scusa nel caso io abbia fatto casino e vi sarei grato se mi poteste reindirizzare eventualmente ad un post dove possa trovare informazioni.

Ho questo tipo di problema:
dovrei "traslocare" i DB di una serie di applicativi da sql2000 a sql2005. Mi spiego meglio: i db, al posto del vecchio server su cui è installato sql server 2000 dovranno risiedere su un nuovo server con sql 2005 (che è fisicamente un'altra macchina, su cui verrano create una o più istanze).
Per quanto riguarda i DB credo di potermela cavare con un backup + restore (spero di non aver detto un'eresia... c'è da controllare qualcosa di particolare? collation? altro che mi sfugge o di cui magari non sono a conoscenza?).
Il problema in realtà sono gli utenti: come posso fare per "portarmeli dietro" con relativi permessi?
Esiste qualche utility specifica di sql2005 in grado di fare questa cosa?
C'è qualche cosa di particolare da sapere/fare per quanto riguarda invece gli utenti che utilizzano l'autenticazione di dominio?
Nel caso in cui dovessi ricrearli tutti, esiste un modo veloce per scriptare tutto quanto?

Ultima cosa.
Per quanto riguarda eventuali job schedulati, dts o cose simili esiste qualcosa per "migrarli" da sql2000 a sql2005? mi conviene rifare tutto manualmente?

Chiedo scusa per la mia ignoranza (e un po' mi vergogno in effetti :-)))).
Abbiate pietà, è il mio primo post! :-)
Vi sarei grato se poteste fornirmi qualche indicazione.

Grazie
Paolo

lbenaglia Profilo | Guru

>Ho questo tipo di problema:
>dovrei "traslocare" i DB di una serie di applicativi da sql2000
>a sql2005. Mi spiego meglio: i db, al posto del vecchio server
>su cui è installato sql server 2000 dovranno risiedere su un
>nuovo server con sql 2005 (che è fisicamente un'altra macchina,
>su cui verrano create una o più istanze).

Ciao Paolo,

Come prima cosa ti suggerisco di eseguire sulla istanza SQL Server 2000 il Microsoft SQL Server 2005 Upgrade Advisor che ti permette di identificare a priori le eventuali incompatibilità presenti nei db:
http://www.microsoft.com/downloads/details.aspx?FamilyID=1470e86b-7e05-4322-a677-95ab44f12d75

>Per quanto riguarda i DB credo di potermela cavare con un backup
>+ restore (spero di non aver detto un'eresia... c'è da controllare
>qualcosa di particolare? collation? altro che mi sfugge o di
>cui magari non sono a conoscenza?).
Prima di tutto ti conviene trasferire le login (SQL Server & Windows) seguendo le istruzioni presenti in questo articolo della KB:
http://support.microsoft.com/default.aspx/kb/246133

Poi puoi procedere al backup/restore. Successivamente dovrai rieseguire il mapping tra le login create in precedenza (SOLO SQL Server) e gli user accounts a livello di database mediante il comando:
ALTER USER userName WITH LOGIN = loginName;

Oppure ricorrendo alla stored procedure di sistema sp_change_users_login:
http://msdn.microsoft.com/en-us/library/ms174378.aspx

>Il problema in realtà sono gli utenti: come posso fare per "portarmeli
>dietro" con relativi permessi?
Gli user accounts con i relativi permessi "te li porti dietro" con il restore del db; quello che dovrai eseguire manualmente sarà la creazione delle login a livello di istanza ed il rimappaggio con gli user accounts di competenza.

>Esiste qualche utility specifica di sql2005 in grado di fare
>questa cosa?
Non che io sappia.

>C'è qualche cosa di particolare da sapere/fare per quanto riguarda
>invece gli utenti che utilizzano l'autenticazione di dominio?
Ricreare le login. Dato che il SID di tali account è presente in AD (quindi esternamente a SQL Server) non ci sarà bisogno di rieseguire il mapping con gli user accounts visto che non cambia.

>Nel caso in cui dovessi ricrearli tutti, esiste un modo veloce
>per scriptare tutto quanto?
Si ed è riportato nell'articolo della KB che ti ho segnalato sopra.

>Ultima cosa.
>Per quanto riguarda eventuali job schedulati, dts o cose simili
>esiste qualcosa per "migrarli" da sql2000 a sql2005?
I Job li puoi scriptare e rieseguire sulla nuova istanza oppure puoi utilizzare il comodissimo Transfer Jobs Task degli Integration Services (SSIS):
http://technet.microsoft.com/en-us/library/ms137568.aspx

Per i DTS il discorso si complica. In SQL Server 2005 i DTS sono deprecati e se sono semplici valuta la loro riscrittura tramite SSIS.
Se invece sono molti oppure particolarmente complessi, puoi pensare di installare il DTS Engine, il relativo editor sull'istanza 2005 e trasferirli seguendo uno dei metodi riportati qua:
http://blogs.msdn.com/psssql/archive/2009/02/19/how-to-copy-dts-2000-packages-between-servers-and-from-sql-2000-to-sql-2005-and-sql-2008.aspx

Personalmente utilizzo da anni con successo il metodo di Allan e Darren:
http://www.sqldts.com/204.aspx

>Chiedo scusa per la mia ignoranza (e un po' mi vergogno in effetti
>:-)))).
>Abbiate pietà, è il mio primo post! :-)
>Vi sarei grato se poteste fornirmi qualche indicazione.
>
>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

paolino Profilo | Newbie

Grazie!
Ho dato un'occhiata veloce, domani guardo con calma.
Mi sei stato di grande aiuto, spero di non doverti disturbare di nuovo.

Grazie ancora
Paolo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5