Il database di Adiuto su SQL Server Express raggiunge il limite di 10GB

From RVM Wiki
Jump to navigation Jump to search

Se il database di Adiuto su SQL Express raggiunge il limite di 10GB, non è più possibile scrivere.

  • Verificarne la dimensione sul filesystem.
  • Identificare le tabelle che occupano più spazio:
SELECT 
 t.NAME AS TableName,
 i.name AS indexName,
 SUM(p.rows) AS RowCounts,
 SUM(a.total_pages) AS TotalPages, 
 SUM(a.used_pages) AS UsedPages, 
 SUM(a.data_pages) AS DataPages,
 (SUM(a.total_pages) * 8) / 1024 AS TotalSpaceMB, 
 (SUM(a.used_pages) * 8) / 1024 AS UsedSpaceMB, 
 (SUM(a.data_pages) * 8) / 1024 AS DataSpaceMB
FROM 
 sys.tables t
INNER JOIN  
 sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
 sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
 sys.allocation_units a ON p.partition_id = a.container_id
WHERE 
 t.NAME NOT LIKE 'dt%' AND
 i.OBJECT_ID > 255 AND  
 i.index_id <= 1
GROUP BY 
 t.NAME, i.object_id, i.index_id, i.name 
ORDER BY 
  (SUM(a.total_pages)) desc 
  --OBJECT_NAME(i.object_id) 

 

  • Se la tabella incriminata è la TLEVENT, è probabile che sia pieni di righe relative agli utenti immission o adiutows utilizati da AdiFeed. Bisognerebbe eliminare questi eventi inutili.
  • Arrestare il Servizio Apache Tomcat
  • Arrestare il servizio Adifeed
  • Eseguire il backup dei database *_data e *_meta
  • Elencare gli utetnti coi relativi FIUS:
select fius,fsgl  from TUSE
1001	admin
1002	immission - Utente inserimenti automatici
1003	adiuto - Utente amministratore
1004	adiutows - utente script
1005	adinav - utente nav
1006	utente1
1007	utente2
...
  • Verificare che il maggior numero di eventi siano attribuibili ad un utente di servizio:
SELECT fius, count(fius) 
 FROM TLEVENT
GROUP by fius
ORDER BY COUNT(fius) desc
  • In questo case l'incriminato è proprio adiutows, con FIUS=1004:
1004	24452621
1016	56676
1015	23954
1014	14432
1012	10334
1002	5371
1021	1495
  • Effettuare un backup tabella con utenti da conservare, posizionandosi su un altro Database (nel caso crearlo, perchè il limite di 10Gb è per SINGOLO database)
 select * 
 into [ALTRODB].[dbo].tlevent_backup 
 from [adiuto_data_b2b].[dbo].[tlevent]
 where fius <> 1002 and fius <> 1004
  • Svuotare la tabella originale
truncate table tlevent
  • Fare la COMPATTAZIONE (SHRINK) del database originale (tasto dx sul db_data, attività/tasks—shrink database)
  • Ricopiare i dati precedentemente filtrati:
insert 
into [adiuto_data_b2b].[dbo].tlevent 
	select 
	* 
	from [ALTRODB].[dbo].tlevent_backup
  • Cancellare la tabella di backup:
DROP TABLE [ALTRODB].[dbo].tlevent_backup
  • Fare di nuovo la COMPATTAZIONE (SHRINK) del database originale (tasto dx sul db_data, attività/tasks—shrink database)
  • Verificare la dimensione sul filesystem
  • Riavviare SQL
  • Riavviare tomcat
  • Riavviare Adifeed
  • Impostare da Admin òle utenze immission ed adiutows come
Tipo: Servizio ADIUTO
  • Creare un'utente administrator per accedere all'interfaccia web.