SQL 2005 – Utilizzo del setup da riga di comando per upgrade/downgrade di versione
L’esecuzione del setup di SQL Server da riga di comando permette di specificare diversi parametri e configurazioni e viene principalmente utilizzato per effettuare un upgrade di versione o per aggiornare versioni “Evaluation” a quelle definitive; in casi eccezionali può essere usato anche per l’operazione inversa (downgrade) preservando i dati e le configurazioni esistenti.
prendiamo ora in considerazione il caso più “semplice”, l’upgrade di versione ed i relativi passi. Si fa riferimento ad un istanza di SQL Server in configurazione cluster, con le opzioni non necessarie alle configurazioni standalone commentate singolarmente
- E' necessario avere a disposizione il DVD della versione RTM o i file di installazione in una directory locale
- Aprire un Command Prompt e posizionarsi nella directory Servers del DVD o della copia locale
- eseguire il seguente comando:
start /wait setup.exe INSTANCENAME=SQL2005CU11 UPGRADE=SQL_Engine SKUUPGRADE=1 /qb VS=VSQL2005 ADMINPASSWORD=pwd GROUP="SQL 2005 ENG CU11" ADDNODE=W2K3NODE1_1,W2K3NODE2_2
Vediamo il significato dei vari parametri, applicati ad un cluster di laboratorio che ho usato per i test
- INSTANCENAME è il nome dell’istanza da aggiornare, specificare MSSQLSERVER nel caso si tratti di quella di default
- UPGRADE permette di specificare l’elenco delle componenti da aggiornare separati dalla virgola: in questo caso SQL_Engine informa il setup di aggiornare solo la parte di “Database Engine”
- SKUUPGRADE=1 è il parametro che permette l’aggiornamento
- VS è il nome del Virtual Server da aggiornare, ossia il nome della risorsa “Network Name” all’interno del gruppo del cluster che contiene SQL Server; questo parametro non serve per le configurazioni standalone
- ADMINPASSWORD è la password dell’account (con diritti amministrativi) correntemente logato al nodo del cluster che sta eseguendo il setup; serve per potere gestire il nodo remoto (o i nodi) durante il setup. Non è richiesto per le configurazioni Standalone
- GROUP è il gruppo del cluster all’interno del quale si trovano le risorse di SQL Server e nel caso in cui ci siano degli spazi il nome deve essere racchiuso tra doppi apici. Non è richiesto nelle installazioni Standalone
- ADDNODE è utilizzato per specificare l’elenco dei nodi che possono essere “owwer” dell’istanza. Non richiesto per le Standalone
- /qb abilita una modalità “semi silent” visualizzado solo richieste di input quando necessario
Vediamo ora le operazioni necessarie per potere fare il downgrade della versione mantenendo i database e le configurazioni esistenti; le operazioni sono un po’ più lunghe che nel precedente caso.
Per prima cosa occorre rimuovere l’istanza esistente usando il parametro SAVESYSDB, per cui lasciando inalterati i precedenti punti 1 e 2 la riga di comando diventa
start /wait setup.exe /qb INSTANCENAME=SQL2005CU11 VS=VSQL2005 REMOVE=All ADMINPASSWORD=pwd SAVESYSDB=1
Tutti parametri già visti tranne SAVESYSDB=1 che è quello che istruisce il setup di mantenere i database di sistema nella directory DATA originaria e REMOVE, che serve per indicare le componenti che devono essere rimosse, in questo caso tutte (All): è consigliabile comunque fare una copia dei file esistenti.
A questo punto si può procedere con l’installazione della nuova istanza seguendo i passi seguenti:
Riavviare i nodi dopo la rimozione di SQL effettuata in precedenza
Seguire i punti 1 e 2 gia visti per l’upgrade
eseguire la seguente riga di comando:
start /wait setup.exe /qb VS=VSQL2005 INSTANCENAME=SQL2005CU11 GROUP="SQL 2005 ENG CU11" ADDNODE=w2k3node1_1,w2k3node2_2 INSTALLVS=SQL_Engine ADDLOCAL=SQL_Engine,SQL_Replication,SQL_FullText,Client_Components,Connectivity,SQL_Tools90,SQL_Documentation,SQL_BooksOnline IP=10.10.10.80,ToHost INSTALLSQLDIR="C:\Program Files\Microsoft SQL Server" INSTALLSQLDATADIR="g:\Program Files\Microsoft SQL Server" ADMINPASSWORD=pwd SQLACCOUNT=CLUSTERDOM\sqlsvc SQLPASSWORD=pwd AGTACCOUNT=CLUSTERDOM\sqlsvc AGTPASSWORD=pwd SQLBROWSERACCOUNT="NT AUTHORITY\SYSTEM" SQLCLUSTERGROUP=CLUSTERDOM\CLUSTER AGTCLUSTERGROUP=CLUSTERDOM\CLUSTER FTSCLUSTERGROUP=CLUSTERDOM\CLUSTER USESYSDB="G:\Microsoft SQL Server\MSSQL.1\MSSQL"
Tra i vari parametri non ancora visti abbiamo:
- INSTALLVS indica per quale componente si vuole creare un Virtual Server (in questo caso il Database Engine). Non è richiesto nel caso di installazione locale
- ADDLOCAL permette di specificare quali componenti aggiungere alla parte locale dell’installazione: l’elenco riportato sopra corrisponde ad un’installazione tipica che comprende Database Enginge, Management Tools, Performance Tool e BooksOnline.
- IP serve a specificare l’IP assegnato all’istanza ed il nome assegnato alla connesione di rete da usare, separati da una virgola; devono rimanere identici all’ IP e al nome della rete dell’istanza rimossa in precedenza. Non richiesto per un server Standalone.
- INSTALLSQLDIR è la directory di installazione locale di SQL Server
- INSTALLSQLDATADIR e la directory predefinita per il posizionamento dei file di dati e deve coincidere con quella precedente
- SQLACCOUNT e SQLPASSWORD rappresentano l’account di servizio di SQL Server e relativa password
- AGTACCOUNT e AGTPASSWORD rappresentano l’account di servizio del SQL Server Agent e relativa password
- SQLBROWSERACCOUNT è l’account associato al servizio SQL Server Browser. Nel caso in cui si lascia l’account System (consigliato) non è necessario specificare la password
- SQLCLUSTERGROUP, AGTCLUSTERGROUP e FTSCLUSTERGROUP rappresentano i gruppo di dominio necessari per l’installazione di un’istanza cluster e non sono richiesti nel caso di Standalone
- USESYSDB permette di specificare il percorso base dal quale prendere i file di sistema e i database utente esistenti
Entrambe le modalità di "upgrade” riportano SQL Server alla versione RTM per cui al termine è necessario ri-applicare la stessa Service Pack e Cumulative Update esistenti prima dell’attività di manutenzione.
Mauro Munzi
Senior Support Engineer
Microsoft Enterprise SQL Support