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.

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top