Database integrity check SQL Server 2000 (sp3)

martedì 05 settembre 2006 - 15.30

StefanoLep Profilo | Senior Member

Ciao a tutti, ho impostato un piano di mantenimento per un db, i job generati funzionano tutti tranne questo: 'integrity check' che va sempre in errore. Ho fatto varie prove e ho visto che questo job anche se eseguito su un solo db (anche su master) funziona a patto di tigliere il check alla voglie 'Attemp to repair any minor problem', invece su Northwind (che però non mai stato aperto, nemmeno per sbaglio... ) funziona sempre bene. Cosa posso controllare? Come posso leggere il file di log per vedere se c'è qualche segnalazione?

lbenaglia Profilo | Guru

>Cosa posso controllare?

1) Il log degli eventi di sistema tramite l'Event Viewer
2) I logs di SQL Server (da EM seleziona l'istanza, Management, SQL Server Logs)
3) I logs del job (da EM seleziona l'istanza, Management, Jobs, il job in questione, tasto DX, View Job History...).

Sui Books Online troverai tutti i dettagli.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

StefanoLep Profilo | Senior Member

Grazie per avermi risposto , ho controllato e l'errore segnalato è sempre lo stesso:

[Microsoft][ODBC SQL Server Driver][SQL Server]Repair statement not processed. Database needs to be in single user mode.

Ma io non ho mai messo nessun databse in single user mode, su un altro server con altri db eseguo lo stesso piano di mantenimento senza dover ricorrere al single user, o forse qualche errore è stato trovato e quindi c'è bisogno di passare a questa modalità per risolvere il problema?

lbenaglia Profilo | Guru

>Grazie per avermi risposto , ho controllato e l'errore segnalato
>è sempre lo stesso:
>
>[Microsoft][ODBC SQL Server Driver][SQL Server]Repair statement
>not processed. Database needs to be in single user mode.
>
>Ma io non ho mai messo nessun databse in single user mode, su
>un altro server con altri db eseguo lo stesso piano di mantenimento
>senza dover ricorrere al single user, o forse qualche errore
>è stato trovato e quindi c'è bisogno di passare a questa modalità
>per risolvere il problema?

Fai prima a provare ad eseguire da Query Analyzer una DBCC CHECKDB avendo cura di mettere il database in single user mode (ad esempio con una ALTER DATABASE...SET SINGLE_USER WITH ROLLBACK IMMEDIATE. Occhio, con questo comando terminerai tutte le connessioni da parte degli altri utenti, causando un rollback delle transazioni aperte!!).
Probabilmente agli altri db non è connesso nessuno nel momento in cui verifichi l'integrità.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

StefanoLep Profilo | Senior Member

Ho eseguito il checkdb sia per il db Master che per il mio e per entrambi il risultato è lo stesso:

CHECKDB found 0 allocation errors and 0 consistency errors in database 'XXX'

Il fatto è che questo è il db di un sito aziendale ed evidentemente c'è sempre collegato qualcuno perche il Job (che dal 4 agosto è sempre andato in errore) viene eseguito all'una di notte di domenica e di sicuro non c'è nessuno a lavorare...
Grazie per l'aiuto , adesso che so che non ci sono errori già mi sento meglio, probabilmente basterà riavviare il server per terminare qualche connessione "appesa".

lbenaglia Profilo | Guru

>Ho eseguito il checkdb sia per il db Master che per il mio e
>per entrambi il risultato è lo stesso:
>
>CHECKDB found 0 allocation errors and 0 consistency errors in
>database 'XXX'
Ottimo.

>...probabilmente basterà riavviare il server per terminare qualche connessione "appesa".
Sei matto? LOL
Ti ho spiegato come mettere in single user mode il database. Al termine del check ripristina la modalità multiuser settando l'omonima opzione sempre con il comando ALTER DATABASE.

Tutti i dettagli sui BOL.

"ALTER DATABASE (Transact-SQL)"
http://msdn2.microsoft.com/it-it/library/ms174269.aspx

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

StefanoLep Profilo | Senior Member

Ok come al solito avevo cercato una scorciatoia...
Ho provato ma mi rstituisce errore:

ALTER DATABASE ('Master') SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CHECKDB ('Master')

ma ottengo l'errore:
Server: Msg 170, Level 15, State 1, Line 4
Line 4: Incorrect syntax near '('.
Server: Msg 102, Level 15, State 1, Line 4
Incorrect syntax near 'IMMEDIATE'.

Ho provato quindi a metterlo in single mode da proprietà-->Opzioni ma compare comunque un errore che mi avvisa che non posso passare alla modalità Single user se ci sono altri utenti collegati...

lbenaglia Profilo | Guru

>Ho provato ma mi rstituisce errore:
>
>ALTER DATABASE ('Master') SET SINGLE_USER WITH ROLLBACK IMMEDIATE
>DBCC CHECKDB ('Master')
>
>ma ottengo l'errore:
>Server: Msg 170, Level 15, State 1, Line 4
>Line 4: Incorrect syntax near '('.
>Server: Msg 102, Level 15, State 1, Line 4
>Incorrect syntax near 'IMMEDIATE'.

Togli quelle parentesi tonde!

>Ho provato quindi a metterlo in single mode da proprietà-->Opzioni
>ma compare comunque un errore che mi avvisa che non posso passare
>alla modalità Single user se ci sono altri utenti collegati...
Devi forzare il loro logoff...

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

StefanoLep Profilo | Senior Member

Ho provato a togliere le parentesi ma il succo non cambia...

ALTER DATABASE 'Master' SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CHECKDB ('Master')

errori:
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near 'Master'.
Server: Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'IMMEDIATE'.

StefanoLep Profilo | Senior Member

Mi cospargo il capo di cenere...
ora non ci sono errori semantici però mandandola in esecuzione:

ALTER DATABASE Master SET SINGLE_USER WITH ROLLBACK IMMEDIATE

DBCC CHECKDB ('Master')

ALTER DATABASE Master SET multi_user WITH ROLLBACK IMMEDIATE

messaggio:

Server: Msg 5058, Level 16, State 5, Line 1
Option 'SINGLE_USER' cannot be set in database 'MASTER'

lbenaglia Profilo | Guru

>Server: Msg 5058, Level 16, State 5, Line 1
>Option 'SINGLE_USER' cannot be set in database 'MASTER'

Ho appena eseguito da Query Analyzer il seguente comando con successo:

DBCC CHECKDB ('Master')

senza bisogno di impostarlo in single user mode...

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

StefanoLep Profilo | Senior Member

Ma il DBCC su Master (e anche sul mio db) l'avevo eseguito e ti ho scritto che non c'erano errori, credevo che fosse una semplice verifica ulteriore il fatto di voler impostare la modalità single user. Grazie per l'aiuto sei stato gentilissimo , a presto.

giggs1434 Profilo | Newbie

Ciao a tutti.
Ho trovato un servizio online, [URL]http://www.checkmein.eu/[/url], che prevede check-in online dando i migliori posti da noi preferito.
Mandano carta d'imbarco via e-mail.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5