>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