SQL Server msdb adatbázis táblák

írta: Eric Blinn
áttekintés

sok objektum alkotja az MSDB adatbázist, és ezeknek a tábláknak a lekérdezése közvetlenül nagyon hasznos lehet. Nézzük meg néhányattáblázatok, amelyek hasznosak a lekérdezéshez.

melyek a legfontosabb táblák az msdb adatbázisban, amelyek fontosak az SQL ServerProfessionals tudni?

az MSDB-ben nagyszámú tábla található, amelyeket egy SQL Server-szakembernek tudnia kell. Ez a szerző írt néhány MSSQLTips kifejezetten róluk. Ez a tipp az SQL Server Agent táblákról szól, ésez a tipp a biztonsági mentési és visszaállítási előzmények tábláit tartalmazza.

ez az oktatóanyag kiemeli az MSDB táblák néhány csoportját, amelyek gyakran lekérdezhetők.

SELECT * FROM dbo.suspect_pages;

a Suspect_pages segít nyomon követni a sérült adatoldalakat vagy azokat, amelyek meghibásodhatnak a hibás lemez alrendszer miatt. Ezek lehetnek olyan oldalak, amelyek a 823 vagy 824 hibával rendelkező normál lekérdezés miatt találhatók, amelyeket egy DBCCCheck parancs talált, vagy egy biztonsági ellenőrző összeg érvényesítése során találtak. A DBA-knak tisztában kell lenniük ezzel a táblával, és alkalmanként lekérdezniük kell, hogy biztosak legyenek abban, hogy nincsenek kijavítatlan hibák.

ebben a táblázatban 1000 sor van korlátozva. Remélhetőleg ez nem egy szám, amelyet általában tesztelnek, de ha régebbi, akkor a sorok nem öregednek automatikusan, hogy helyet biztosítsanak az újaknak. Az SQL Server egyszerűen leállítja az információk rögzítését, haa táblázatban 1000 sor található. Emiatt a régebbi sorokat törölni kell egy DBA-val, miután áttekintettük és megoldottuk, mi okozta őket. Tudjon meg többet erről a tábláról ebben a tippben!

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;

a táblázat biztonsági mentése minden alkalommal tartalmaz egy sort, amikor biztonsági másolatot készít. A tablebackupmediafamily egy sort tartalmaz minden létrehozott vagy csatolt biztonsági mentési fájlhoz.A legtöbb DBA fájlonként egy adatbázist készít, és ezeket a táblákat 1: 1 arányban hagyja.Ha csíkos biztonsági mentéseket használ, vagy több biztonsági másolatot tölt be egyetlen fájlba, akkor őknem lesz 1:1.

fontolja meg ezt az eredményhalmazt a fenti lekérdezésből egy csíkos biztonsági mentésből.

biztonsági mentés részletei

2 sor van, de csak egyetlen biztonsági mentési készlet azonosítója, 1.szám. Ez azt jelzicsak egy biztonsági másolat van. A biztonsági másolatot ugyanarra az 1-es adathordozókészlet-azonosítóra küldték, de ez a készlet 2 sorszámot tartalmaz. Ez azt jelenti, hogy a teljes restoreof az adatbázis testtde mindkét fájl lesz szükség, és fel kell sorolni.

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';

most fontolja meg ezt az eredményt egy sor biztonsági mentéshez, amely egyetlen fájlt oszt meg.

biztonsági mentés részletei

2 különálló biztonsági mentési készlet van, 2 és 3, de egyetlen adathordozó készlet és egyetlen fájlnév. Ez azt jelzi, hogy több biztonsági másolat van, amelyek megosztják a singlefile fájlt. Mindkét sor 1-es szekvenciával rendelkezik, jelezve, hogy nincs stripingmindegyik biztonsági mentéshez. Ebben az esetben a pozíció oszlop fontos lesz. “FILE” 1 lesz egy másik testtde biztonsági mentés, míg a” FILE ” 2 lesz MSDB biztonsági mentés.

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 ..;

ez a táblázat rögzíti az összes dbmail-rel kapcsolatos eseményt. Ez ugyanaz informationthat megtalálható SSMS kattintva a “View Database Mail Log” kontextus menüopció.

 ez a képernyőkép mutatja a helyi menüpont korábban említett Management-Database Mail-View 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;

ez a táblázatcsoport rögzíti a DBMailprofile és a fiók beállításait. A sysmail_profile táblázat egy sor perprofile-t tartalmaz, míg a sysmail_account minden fiókhoz egy sort tartalmaz. A sysmail_profileaccount táblázat minden sora megfelel 1 profilnak 1 fiókhoz. Ez lehetővé teszi a profilok és a fiókok közötti sok-sok kapcsolatot.

ez a példa kimenet mutatja 2 profilessharing egy fiókot.

 ez a képernyőkép 2 1-es és 2-es számú profilt mutat, amelyek egyetlen fiókot osztanak meg az 1-es fiókazonosítóval.

láthatom a rendszertáblák és nézetek kódját az MSDB-ben, és ha igen, hogyan?

az MSDB rendszertáblái megtekinthetők az sp_help vagy az Object Explorer “Design” contextmenu opciójával.

exec sp_help sysjobs;
ez a képernyőkép az előző TSQL parancs kimenetét mutatja. Ez azt mutatja, a részleteket a sysjobs tábla MSDB.

a nézetek nem rendelkeznek modify vagy “script as” opcióval a helyi menüben, mint a userviews, de továbbra is megtekinthetők az sp_helptext használatával.

exec sp_helptext sysjobs_view;
ez a képernyőkép a fenti TSQL kód kimenetét mutatja. Ez egy "create VIEW" utasítás, amely megmutatja a nézet definícióját.

megváltoztathatom ezeket az objektumokat az MSDB adatbázisban?

az SQL Server lehetővé teszi a rendszertáblák és nézetek megváltoztatását, de ezt egyáltalán nem szabad megtenni. A varázslók, az SSMS képernyők és az Azure Data Studio képernyők elvárják, hogy ezek az objektumok bizonyos módon viselkedjenek, és ezek megváltoztatása meghiúsulhat.

kivételt lehet tenni a nem fürtözött indexek esetében. Sok adatbázissal és sok biztonsági mentési előzménnyel rendelkező példányon, vagy sok SQL Server Agent-jobon, amelyek nagy mennyiségű előzménnyel rendelkeznek, egyes megfigyelési lekérdezések meglehetősen lassan futhatnak, és nem fürtözött indexek hozzáadása a jelentéskészítés vagy más műveletek támogatásához megoldhatja ezt a problémát.

tárolhatom a saját objektumaimat az MSDB adatbázisban?

az SQL Server lehetővé teszi objektumok hozzáadását az MSDB adatbázishoz, de ezt valószínűleg nem szabad engedélyezni. Ehelyett tartson egy speciális felhasználói adatbázist névszerű “_DBA” – val, ahol a rendszergazdák megtarthatják a példány kezelésére használt objektumokat.

Utolsó Frissítés: 3/31/2020

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.