SQL 2000 - Spostamento della directory FTDATA su un altro disco per un istanza Cluster

Mi è capitato alcune volte di incontrare clienti che hanno avuto problemi durante lo spostamento della directory FTDATA di SQL Server 2000 da un disco all’altro (così come da una directory all’altra all’interno dello stesso disco); praticamente tutti hanno fatto riferimento all’articolo tecnico http://support.microsoft.com/kb/240867/en-us e si sono scontrati con alcuni punti che sembrano essere un po’ difficili da applicare, in particolare quelli relativi alle modifiche sulle chiavi di registry.

A tal proposito già diverse volte mi sono trovato a suggerire una procedura alternativa, che non vuole rimpiazzare l’articolo tecnico, che i feedback ottenuti fino ad ora mi hanno confermato essere di più semplice implementazione; in questo caso ci stiamo riferendo ad una istanza di SQL Server 2000 in configurazione Cluster, ma le stesse informazioni possono essere applicate anche ad un server stand-alone.

Vediamo in dettaglio le azioni da fare: in questo caso si parte da una FTDATA posizionata in G:\Program Files\Microsoft SQL Server\MSSQL$SQL2000SP4\FTDATA, riferita a una Named Instance “SQL2000SP4”. Nel caso di un istanza di default non avremo MSSQL$SQL2000SP4 ma semplicemente MSSQL. La directory FTDATA alla fine della procedura si troverà su un nuovo disco Y: mantenendo lo stesso percorso, ma le stessa procedura può essere utilizzata per spostarla in qualsiasi directory senza però modificare la struttura delle cartelle al di sotto di FTDATA.

Ecco le azioni:

  1. posizione originaria in G:\Program Files\Microsoft SQL Server\MSSQL$SQL2000SP4\FTDATA
  2. La risorsa FullText all’interno del gruppo di SQL Server deve rimanere Online in questa fase (o semplicemente il servizio FullText in caso di installazione Standalone)
  3. Sul nodo con in carico l’istanza occorre modificare tutte le ricorrenze del disco G: in Y: all’interno della chiave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0. Come già anticipato si può modifare anche il percorso in qualsiasi modo, ma fino alla cartella FTDATA e non oltre.
  4. Offline della risorsa Fulltext: in questa fase nei file CLUSTX.X che si trovano in FTDATA vengono salvate la chiavi di registry che abbiamo modificato al punto 3, evitando così di dovere caricare i vari file nel registry per fare le modifiche. i file CLUSTX.X sono specifici per SQL Server 2000 e contengono la configurazione del FullText quando è configurato su un Cluster, per cui non saranno mai presenti in un server Standalone, per il quale è sufficiente spegnere il servizio dopo il punto 3
  5. spostare il contenuto della cartella FTDATA sull’altro disco (Y: )  e/o directory a patto che il cambio sia coerente con le modifiche fatte al punto 3.
  6. Modificare ApplicationPath in HKEY_LOCAL_MACHINE\Cluster\Resources\xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx\Parameters, dove xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx coincide con il GUID delle risorsa FullText, per rispecchiare la nuova posizione di FTDATA per quell’istanza.
  7. Modificare il valore FullTextDefaultPath nella chiave HKLM\Software\Microsoft\Microsoft SQL Server\<Istanza> per puntare alla nuova posizione (questo passo non è richiesto per un server standalone)
  8. Offline e Online di SQL Server, Online del FullText. A questo punto nelle proprietà del FullText sotto “Support Services” (in Enterprise Manager) si dovrebbe vedere il puntamento al nuovo percorso.
  9. Se i cataloghi non sono nella posizione predefinita occorre modificare il campo path della tabella sysfulltextcatalogs per ogni database
  10. Da Query Analyzer
    • sp_configure 'allow updates', 1
    • go
    • reconfigure with override
    • go
    • Update sysfultext catalogs set path =’nuova path’ where ftcatid=X, dove ‘nuova path’ è il nuovo percorso che si vuole impostare e X è l’id del catalogo che si vuole modificare. Questa operazione deve essere fatta per ognuno dei cataloghi in ogni database: se il campo ‘path’ contiene il valore NULL non c’è bisongo di apportare modifiche
  11. Offline e Online di SQL Server
  12. Offline e Online del FullText

NOTA: gli ultimi 3 passi sono necessari solo se i cataloghi non sono stati creati in origine nella posizione predefinita

 

Mauro Munzi
Senior Support Engineer
Microsoft Enterprise SQL Support