Pulire manualmente il database di Citrix Resource Manager

9 Giugno 2009 Francesco Lascia un commento Vai ai commenti

Citrix Resource Manager è una componente disponibile ormai da anni nelle edizioni Enterprise di Citrix XenApp. Anche se dalla versione 5.0 il prodotto non esiste più (sostituito da EdgeSight), è ancora ampiamente usato in molte realtà, anche grazie a add-on come la Web Interface for Resource Manager di Jason Conger.

In installazioni che lavorano da alcuni anni è facile che all’interno del database restino dei dati relativi a server che non esistono più oppure nomi duplicati di server che sono stati reinstallati o hanno cambiato dominio. In questi casi si rende necessario un po’ di pulizia a mano.

Ecco allora che Citrix ci fornisce un bel documento sulla sua knowledge base nella quale spiega eliminare i dati relativi ai vecchi Server Name. Si tratta alcuni pezzi di codice SQL da lanciare all’interno del Query Analyzer posizionato sul database del Resource Manager.

Con una prima query si estrae l’identificativo numerico associato al server:

Select a.PK_SERVERID as 'ServerNumber', b.servername, c.netdomain as Domain
from LU_SERVER a, LU_SERVERNAME b, lu_netdomain c
where b.PK_SERVERNAMEID = a.FK_SERVERNAMEID and a.FK_NETDOMAINID = c.PK_NETDOMAINID
 

E’ necessario prendere nota del ServerNumber del server che ci interessa e sostituirlo nel seguente pezzo di codice:

DECLARE @serverid int
SELECT @serverid = N'SERVERNUMBER'

delete from sdb_clienthistory where FK_SDB_SESSIONID IN (select pk_sdb_sessionid from sdb_session where fk_serverid = @serverid)
delete from sdb_apphistory where fk_serverid = @serverid
delete from sdb_connectionhistory where fk_serverid = @serverid
delete from sdb_eventlog where fk_serverid = @serverid
delete from sdb_metrics where fk_serverid = @serverid
delete from sdb_process where fk_serverid = @serverid
delete from sdb_session where fk_serverid = @serverid
delete from sdb_alerts where fk_serverid = @serverid
delete from lu_server where pk_serverid = @serverid

A questo punto non resta che eliminare alcuni record nella tabella LU_SERVERNAME:

Delete from LU_SERVERNAME where PK_SERVERNAMEID not in (select FK_SERVERNAMEID from LU_SERVER)

Per ulteriori informazioni:

  1. Nessun commento ancora...
  1. Nessun trackback ancora...