SQL Server MSDB Database Tables

By: Eric Blinn
Overview

on olemassa monia objekteja, jotka muodostavat MSDB-tietokannan, ja se, että osaa näistä taulukoista voi suoraan kysyä, voi olla erittäin hyödyllistä. Tarkastelemme joitakin aiheita, jotka ovat hyödyllisiä kysellä.

mitkä ovat MSDB-tietokannan avaintaulukot, joista SQL-Palvelinprofessionaalien on tärkeää tietää?

MSDB: ssä on suuri määrä taulukoita, jotka SQL Server-ammattilaisen tulisi tietää. Tämä kirjoittaja on kirjoittanut muutamia MSSQLTips erityisesti niistä. Tämä vihje on kyse SQL Server Agent taulukoita ja tämä vihje kattaa varmuuskopiointi ja palautus historia taulukoita.

tämä opetusohjelma tuo esiin muutaman ryhmän MSDB-taulukoita, joita yleensä kysellään.

SELECT * FROM dbo.suspect_pages;

Suspect_pages auttaa jäljittämään viallisia tietosivuja tai niitä, joilla on potentiaalinen häiriö levyn alijärjestelmän vikaantumisen vuoksi. Nämä voivat olla sivuja, jotka löydettiin normaalin kyselytutkimuksen vuoksi, jossa oli 823 tai 824 virhe, jotka löydettiin dbcccheck-komennolla tai jotka löydettiin varmuuskopion tarkistussumman vahvistamisen aikana. DBAs pitäisi olla tietoinen tästä taulukosta ja kysellä sitä joskus olla varma, että siellä areno korjaamattomia virheitä.

tässä taulukossa on 1000 rivin raja. Toivottavasti tämä ei ole numero, joka on yleisesti testattu,mutta jos se on vanhempi rivit eivät vanhene automaattisesti tehdä tilaa uusille. SQL Server yksinkertaisesti lopettaa tietojen tallentamisen, jos taulukossa on 1000 riviä. Tämän vuoksi vanhemmat rivit olisi poistettava DBA tarkistamisen jälkeen ja ratkaista, mikä aiheutti ne. Lue lisää tästä vinkistä!

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;

taulukon backupset sisältää rivin joka kerta, kun varmuuskopio on otettu. Tablebackupmediafamily sisältää yhden rivin jokaista luotua tai liitettyä varmuuskopiotiedostoa kohti.Useimmat DBAs varmuuskopioida yhden tietokannan per tiedosto ja jättää nämä taulukot 1: 1 suhde.Jos käytät raidallisia varmuuskopioita tai täytät useita varmuuskopioita yhteen tiedostoon, niin ne eivät ole 1: 1.

tarkastellaan tätä tulosjoukkoa yllä olevasta kyselystä raidallisesta taustajoukosta.

 varmuuskopiotiedot

rivejä on 2, mutta vain yksi varmuuskopiotunnus, numero 1. Tämä osoittaa, että kyseessä on vain yksi varasuunnitelma. Varmuuskopiointi lähetettiin samaan mediasarjaan id, 1, mutta se sarja sisältää 2 järjestysnumeroa. Tämä tarkoittaa, että täydentämään tietokannan testde molemmat tiedostot tarvitaan ja on lueteltava.

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

nyt harkita tämän tuloksen asetettu useita varmuuskopioita jakaa yhden tiedoston.

 varmuuskopiotiedot

on olemassa 2 erillistä varmuuskopiointijoukkoa, 2 ja 3, mutta yksi mediasarja ja singlefile-nimi. Tämä osoittaa, että on olemassa useita varmuuskopioita jakaa yhden tiedoston. Molemmilla riveillä on sarja 1, joka osoittaa, että kummallekaan varmuuskopiolle ei ole stripingiä. Tällöin sijainti sarake tulee tärkeäksi. ”Tiedosto” 1 on toinen testde varmuuskopiointi, kun taas ”tiedosto” 2 on MSDB varmuuskopiointi.

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

tähän taulukkoon kirjataan kaikki dbmailiin liittyvät tapahtumat. Se on sama informationthat löytyy SSMS klikkaamalla ”View Database Mail Log” yhteydessä menuoption.

Tämä kuvakaappaus näyttää aiemmin Management-Database Mail-View Database-Postilokissa mainitun kontekstivalikon
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;

tämä ryhmä taulukoita tallentaa DBMailprofile ja Tilin asetukset. Taulukko sysmail_profile sisältää yhden rivin perprofile kun taas sysmail_account sisältää rivin jokaiselle tilille. Jokainen rivi taulukossa sysmail_profileaccount vastaa 1 profiili 1 tili. Tämä mahdollistaa monien profiilien ja tilien välisen suhteen.

tämä esimerkki osoittaa 2 profilessharing yhden tilin.

Tämä kuvakaappaus näyttää 2 profiilia numeroituna 1 ja 2 jakaen yhden tilin, jonka Tilitunnus on 1.

Voinko nähdä JÄRJESTELMÄTAULUKOIDEN ja-näkymien koodin MSDB: ssä ja jos näen, miten?

MSDB: n järjestelmätaulukoita voi tarkastella käyttämällä sp_helpiä tai käyttämällä ”Design” – kontekstivalintaa Object Explorerissa.

exec sp_help sysjobs;
Tämä kuvakaappaus näyttää edellisen TSQL-komennon ulostulon. Se näyttää MSDB: n sysjobs-taulukon yksityiskohdat.

näkymissä ei ole kontekstivalikossa muokkaa tai ”script as” – vaihtoehtoa kuten userviewsissä, mutta niitä voi silti tarkastella sp_helptext-ohjelmalla.

exec sp_helptext sysjobs_view;
Tämä kuvakaappaus näyttää yllä olevan TSQL-koodin lähdön. Se on" Luo näkymä " - lauseke, joka näyttää näkymän määritelmän.

Voinko muuttaa näitä olioita MSDB-tietokannassa?

SQL Server sallii järjestelmätaulukoiden ja-näkymien muuttamisen, mutta näin ei missään tapauksessa pitäisi tehdä. Wizards, SSMS näytöt, ja Azure Data Studio näytöt odottavat näitä esineitä käyttäytymään tietyllä tavalla ja muuttamalla niitä voisi aiheuttaa thoseto epäonnistua.

ryhmittelemättömien indeksien osalta voidaan tehdä poikkeus. On esimerkiksi, jossa on monia tietokantoja ja paljon varmuuskopiointihistoriaa tai monia SQL Server Agent työpaikkoja, joissa on suuri määrä historiaa, jotkut seuranta kyselyt voivat päätyä käynnissä kohtuuttoman hidas ja lisäämällä ei-ryhmitelty indeksit tukemaan raportointia tai muita toimintoja voi ratkaista tämän ongelman.

Voinko tallentaa omia esineitäni MSDB-tietokantaan?

SQL Server sallii objektien lisäämisen MSDB-tietokantaan, mutta sitä ei pitäisi sallia. Pidä sen sijaan erityinen käyttäjätietokanta, jossa on nimellinen ”_DBA”, jossa järjestelmänvalvojat voivat säilyttää objekteja, joita käytetään esiintymän hallintaan.

Viimeinen Päivitys: 3/31/2020

Vastaa

Sähköpostiosoitettasi ei julkaista.