|
|
|
|||||||
|
ICT-Hotlist ThemaControleer de integriteit van Uw SQL server databases.Gebruikmakend van de ongedocumenteerde1 sp_MSforeachdb stored procedure wordt het eenvoudig om een database controle over al Uw SQL databases uit te voeren. Microsoft adviseerd om periodidiek DBCC CHECKDB zonder opties te draaien. De controle frequentie is bedrijfs- en productieomgeving-afhankelijk.Open eenvoudig een commando venster of maak een (geplande taak) batch bestand om het volgende commando te starten:
SQLCMD -q "EXECUTE master.sys.sp_MSforeachdb 'USE [?]; DBCC CHECKDB'" | FindStr
"CHECKDB Found"
Wat doet het?Het gebruikt het standaard Microsoft SQL-server commando-regel-interfaceprogramma SQLCMD om een T-SQL query uit te voeren op de lokale databaseserver met de aanloggegevens van de momenteel aangemelde gebruiker. (Zie andere opties van SQLCMD wanneer U gebruikersinformatie en/of een servernaam moet opgeven)Vervolgens gebruikt het commando de ongedocumenteerde1 stored procedure sp_MSforeachdb om langs alle databases te gaan. (De huidige of aangegeven gebruiker moet voldoende rechten hebben om de databases te benaderen) Daarna wordt het DBCC CHECKDB commando gestart met de naam van de geselecteerde database. Uiteindelijk ontvangt het FindStr commando alle SQL-server boodschappen en filtert alle regels die de error status boodschap bevatten. Voorbeeld uitvoer:
CHECKDB found 0 allocation errors and 0 consistency errors in database 'master'.
Bij de zelden optredende foutmeldingen kunt U het DBCC CHECKDB commando op de specifieke database uitvoeren om alle details te zien.
CHECKDB found 0 allocation errors and 0 consistency errors in database 'mssqlsystemresource'. DBCC CHECKDB will not check SQL Server catalog or Service Broker consistency because WITH TABLOCK was specified. CHECKDB found 0 allocation errors and 0 consistency errors in database 'tempdb'. CHECKDB found 0 allocation errors and 0 consistency errors in database 'model'. CHECKDB found 0 allocation errors and 0 consistency errors in database 'msdb'. CHECKDB found 0 allocation errors and 0 consistency errors in database 'ReBaUp'. SQLCMD errorWanneer U de foutboodschap "HResult 0x2, Level 16, State 1 Named Pipes Provider: Could not open a connection to SQL Server [2]." ziet bij het opstarten van het SQLCMD programma op Uw systeem, probeer dan deze tips: https://stackoverflow.com/questions/2357109/could-not-open-a-connection-to-sql-server1Natuurlijk betekend ongedocumenteerd dat er geen garanties zijn of deze procedure zal bestaan in toekomstige versies van SQL-Server. Dus gebruik het op eigen risico. Beschikbaar in:
U mag stemmen over dit artikel:
Scripts en programmeervoorbeelden disclaimerTenzij anders vermeld, zijn de scriptcode en programmeervoorbeelden auteursrechtelijk beschermde (copyright) freeware. U mag deze wijzigen, zolang een verwijzing naar de oorspronkelijke code en een hyperlink naar de bronpagina is opgenomen in de gewijzigde code en documentatie. Het is echter niet toegestaan om (kopieën van) de scripts en programmeervoorbeelden te publiceren op uw eigen site, blog, vlog, of te distribueren op papier of een andere drager, zonder voorafgaande schriftelijke toestemming.Bij veel van de technieken gebruikt in deze scripts, met inbegrip van maar niet beperkt tot register-wijzigen of wijzigingen aan systeembestanden of instellingen, bestaat een risico dat een werkend besturingssysteem onbruikbaar wordt en gegevens verloren kunnen raken. Zorg ervoor dat U gecontroleerd heeft dat U beschikt over volledige back-ups en de bijbehorende herstelsoftware voordat U deze scripts of programmavoorbeelden gebruikt. Het gebruik van deze scripts en programmeervoorbeelden is volledig Uw eigen risico. Alle aansprakelijkheidsclaims tegen de auteur met betrekking tot materiële of niet-materiële verliezen als gevolg van het gebruik, misbruik of niet-gebruik van de verstrekte informatie of het gebruik van onjuiste of onvolledige informatie, zijn uitgesloten. Alle inhoud is onderhevig aan verandering en geleverd zonder verplichting. |