Msdb databasetabeller

af: Eric Blinn
oversigt

der er mange objekter, der udgør msdb-databasen, og det kan være meget nyttigt at kunne forespørge nogle af disse tabeller direkte. Vi vil se på nogle aftabeller, der er nyttige til forespørgsel.

Hvad er de vigtigste tabeller i msdb-databasen, der er vigtige for Serverprofessionelle at vide om?

der er et stort antal tabeller i MSDB, som en professionel server skal vide. Denne forfatter har skrevet et par Msskltips specifikt om dem. Dette tip handler om tabellerne Server Agent ogdette tip dækker tabellerne sikkerhedskopiering og gendannelse af historik.

denne tutorial vil fremhæve et par grupper af msdb tabeller, der er almindeligt forespurgt.

SELECT * FROM dbo.suspect_pages;

Suspect_pages hjælper med at spore korrupte datasider eller dem med den potentielle forcorruption på grund af en svigtende disk delsystem. Disse kunne være sider, der blev fundet på grund af normal forespørgsel, der havde en 823 eller 824 fejl, blev fundet af en dbcccheck kommando eller blev fundet under en backup checksum validering. DBA ‘ er skal være opmærksomme på denne tabel og spørge det lejlighedsvis for at være sikker på, at der ikke er ukorrekte fejl.

der er en grænse på 1000 rækker for denne tabel. Forhåbentlig er det ikke et tal, der ofte testes, men hvis det er ældre rækker ikke ældes automatisk for at give plads til nye. PCL-serveren stopper simpelthen med at optage oplysninger, hvisder er 1000 rækker i tabellen. På grund af dette skal Ældre rækker slettesaf en DBA efter at have gennemgået og løst, hvad der forårsagede dem. Læs mere om dette bord iDette tip!

SELECT backup_set_id, database_name, bset.media_set_id, position, family_sequence_number, physical_device_nameFROM msdb.dbo.backupset bset INNER JOIN backupmediafamily bfam ON bset.media_set_id = bfam.media_set_id;

tabellen backupset indeholder en række, hver gang en backup er taget. Tablebackupmediafamily indeholder en række for hver sikkerhedskopifil, der oprettes eller tilføjes.De fleste DBA ‘ er sikkerhedskopierer en database pr.fil og efterlader disse tabeller med et 1:1-forhold.Hvis du bruger stribede sikkerhedskopier eller fylder flere sikkerhedskopier i en enkelt fil, så er Devil ikke være 1:1.

overvej dette resultatsæt fra ovenstående forespørgsel fra en stribet sikkerhedskopi.

backup detaljer

der er 2 rækker, men kun et enkelt backup sæt id, nummer 1. Dette indikererder er kun en sikkerhedskopi. Sikkerhedskopien blev sendt til det samme mediesæt id, 1,men det sæt indeholder 2 sekvensnumre. Det betyder, at for at fuldføre en restoreof databasen testtde begge filer vil være nødvendig, og skal være opført.

RESTORE HEADERONLY FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\Stripe1.bak',DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\Stripe2.bak';

overvej nu dette resultatsæt for en række sikkerhedskopier, der deler en enkelt fil.

backup detaljer

der er 2 forskellige backup sæt, 2 og 3, men et enkelt medie sæt og singlefile navn. Dette indikerer, at der er flere sikkerhedskopier, der deler en singlefil. Begge rækker har en sekvens på 1, der angiver, at der ikke er nogen stripingfor enten backup. I dette tilfælde bliver positionskolonnen vigtig. “FILE “1 vil være en anden testtde backup, mens” FILE ” 2 vil være en msdb backup.

RESTORE HEADERONLY FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\MultiBackupFile.bak'WITHH FILE = 1;RESTORE HEADERONLY FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\MultiBackupFile.bak'WITH FILE = 2;

SELECT * FROM ..;

denne tabel registrerer alle dbmail-relaterede begivenheder. Det er de samme oplysningerder kan findes i SSMS ved at klikke på “Vis Database Mail Log” kontekstmenuvalgmulighed.

 dette skærmbillede viser kontekstmenuindstillingen tidligere nævnt på Management-Database Mail-Vis Database Mail Log
SELECT sp.profile_id, sp.name, spa.account_id, sa.name, sa.email_address, sa.display_name, ISNULL(spp.is_default, 0) IsDefaultProfileFROM . sp INNER JOIN . spa ON sp.profile_id = spa.profile_id INNER JOIN . sa ON spa.account_id = sa.account_id LEFT OUTER JOIN . spp ON sp.profile_id = spp.profile_id;

denne gruppe af tabeller registrerer dbmailprofile og kontoindstillinger. Tabellen sysmail_profile indeholder en række perprofile mens sysmail_account indeholder en række for hver konto. Hver række i tabellen sysmail_profileaccount matcher 1 profil til 1 konto. Dette tillader et mange-til-mange forhold mellem profiler og konti.

dette eksempel output viser 2 profilerdeler en enkelt konto.

 dette skærmbillede viser 2 profiler nummereret 1 og 2, der deler en enkelt konto med konto-id for 1.

kan jeg se koden for systemtabellerne og visningerne i MSDB og i så fald hvordan?

systemtabellerne i MSDB kan ses ved hjælp af sp_help eller ved hjælp af “Design” kontekstmenu i Objektforskeren.

exec sp_help sysjobs;
dette skærmbillede viser output fra den forrige tskl-kommando. Det viser detaljerne i sysjobs bordet fra MSDB.

visningerne har ikke mulighed for at ændre eller “script som” i deres kontekstmenu, som brugervisninger gør, men de kan stadig ses ved hjælp af sp_helptekst.

exec sp_helptext sysjobs_view;
dette skærmbillede viser output fra TSKL-koden ovenfor. Det er en" Opret visning " - erklæring, der viser visningsdefinitionen.

kan jeg ændre disse objekter i msdb-databasen?

HKL-serveren vil gøre det muligt at ændre systemtabellerne og visningerne, men det skalabsolut ikke gøres. Disse objekter til at opføre sig på en bestemt måde og ændre dem kan forårsage demat mislykkes.

der kan gøres en undtagelse for ikke-grupperede indekser. Nogle overvågningsforespørgsler kan ende med at køre uoverkommeligt langsomt og tilføje ikke-grupperede indekser for at understøtte rapportering eller andre operationer kan løse dette problem.

kan jeg gemme mine egne objekter i msdb-databasen?

vi vil tillade, at objekter føjes til msdb-databasen, men det burde sandsynligvis ikke være tilladt. Opbevar i stedet en speciel brugerdatabase med et navnlignende” _DBA”, hvor administratorer kan opbevare objekter, der bruges til at administrere forekomsten.

Sidste Ændring: 3/31/2020

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.