Eliminare le connessioni al database in MS Sql Server 2000
-
03-07-2019 - |
Domanda
Ho un database con cui stiamo riscontrando problemi. In qualche modo il registro è diventato 400 Gb e il database è stato reso inutile. Voglio eliminare tutte le connessioni esistenti al database e quindi staccare il database.
Fondamentalmente quello che farò è sbarazzarmi del file di registro gigante e crearne uno nuovo e ricollegarlo se funziona. In caso contrario, ripristineremo dai backup.
Soluzione 3
Beh, fondamentalmente nessun comando eseguirà affatto il database. Ciò che abbiamo finito è stato disattivare il servizio e creare copie vuote dei file mdf e ldf e sostituire quelli utilizzati dal server sql. Dopo di che abbiamo ripristinato il database dall'ultimo backup e voilà, funziona di nuovo (principalmente).
Altri suggerimenti
Se il registro è inutile, è possibile utilizzare questi comandi, ma documentarli da soli prima di applicare su un server di produzione.
REGISTRO DI BACKUP CON NO_LOG per ignorare le pagine dal registro,
sp_helpdb per cercare il nome dei file del db
DBCC SHRINKFILE ('your your file filename', 0) - per trunking il file fisico nella dimensione specificata.
Se si è certi che non vi siano transazioni aperte, è possibile impostare il database in modalità utente singolo.
ALTER DATABASE [YourDB] SET SINGLE_USER WITH NO_WAIT
Al termine, ripristinalo in modalità multiutente ALTER DATABASE [YourDB] IMPOSTA MULTI_USER CON NO_WAIT
Fa
backup log yourdb con truncate_only quindi dbcc shrinkdatabase (yourdb) non riduce il file di registro per te?
ALTER DATABASE [DB_NAME_HERE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [DB_NAME_HERE] SET MULTI_USER