Asenna SQL Server R Services (tietokannassa). SQL Serverin verkkoasetukset. QMB:n tärkeimmät ominaisuudet

Alla kerromme, kuinka ylläpitosuunnitelma luodaan SQL Sever Management Studio -ohjelman avulla. Tässä artikkelissa yritän yksinkertaisesti kuvata selkeästi algoritmin ylläpitosuunnitelman luomiseksi Maintenance Plan Wizard -toiminnolla, menemättä ongelman teoreettiseen osaan. Saada lisää tietoa Lisätietoja tästä aiheesta löytyy MSDN:n SQL Server Books Onlinesta.

Alla kuvattu suunnitelma sisältää vain 2 tehtävää.

  • Tietokannan varmuuskopiointi.
  • Tietokannan eheyden tarkistaminen.

Toivon, että näiden ohjeiden lukemisen jälkeen jokainen pystyy jatkossa tekemään itsenäisesti tarvittavan SQL-palvelimen ylläpitosuunnitelman.

1. Alkutiedot

  1. käyttöjärjestelmä Windows-perhe(esimerkissäni sitä käytetään)
  2. Microsoftin asentama SQL Server 2008 R2 (voit lukea SQL Serverin asentamisesta)
  3. Olemassa oleva tietokanta SQL Serverissä (lue tietokantojen luomisesta SQL Serverissä)
  4. Määritetty Database Mail -komponentti, jos sinun on ilmoitettava sähköposti operaattoreille ylläpitosuunnitelman toteuttamisen tuloksista (kirjoitin tietokantapostikomponentin konfiguroinnista ja järjestelmäoperaattorin luomisesta).

2. SQL Server Agentin toiminnan tarkistaminen

Ensimmäinen asia, joka meidän on tehtävä, on varmistaa, että SQL Server Agent on asennettu ja käynnissä. Voit tehdä tämän käynnistämällä laitteen " Palvelut» (« alkaa» ( alkaa) — « Hallinto» ( Ylläpidon työkalut) — « Palvelut» ( Palvelut)) ja palveluluettelosta löydämme palvelun " SQL Server Agent» ( SQL Server Agent).

Avataan tämän palvelun ominaisuudet (napsauttamalla sitä 2 kertaa) ja varmistetaan, että:

  • Käynnistystyyppi on " Automaattisesti"(Käynnistystyyppi: Automaattinen);
  • valtio" Toimii"(Palvelun tila: aloitettu);

Muussa tapauksessa sinun on muutettava parametreja kuten yllä olevassa kuvakaappauksessa ja tallennettava asetukset napsauttamalla " Käytä" (Käytä) .

Nyt käynnistetään "SQL Sever Management Studio" -ohjelma (" alkaa» ( alkaa) — « Kaikki ohjelmat" (Kaikki ohjelmat) - " Microsoft SQL Palvelin 2008 R2» — « SQL-työkalut Palvelin 2008 R2") ja syötä valtuutustiedot.

Sen jälkeen tarkistetaan vielä kerran, että SQL Server Agent on käynnissä (Object Browserissa pitäisi olla välilehti SQL Server Agent» (SQL Server Agent), jossa on vihreä kuvake vasemmalla.

3. Luo huoltosuunnitelma

Siirrytään nyt huoltosuunnitelman luomiseen. Avaa Object Explorerissa välilehti " Ohjaus» (Hallinta), napsauta oikealla painikkeella hiiri välilehdellä" Palvelusuunnitelmat» (Huoltosuunnitelmat) ja sisään kontekstivalikko valitse " Ohjattu ylläpitosuunnitelma» (Huoltosuunnitelman ohjattu toiminto ) .

Napsauta avautuvan palvelusuunnitelman ohjatun toiminnon tervetulosivulla " Edelleen"(Seuraava) ja kirjoita seuraavaan ikkunaan uuden suunnitelman nimi ja kuvaus.

Sitten sinun on päätettävä aikataulusta, jolla tämä huoltosuunnitelma suoritetaan. Tee tämä asettamalla kytkin asentoon " Yksi aikataulu koko suunnitelmalle tai ei aikataulua» ( Yksittäinen aikataulu koko suunnitelmalle tai ei aikataulua) ja napsauta " Muuttaa…» (Muuta...) määrittääksesi aikataulun.

Ikkuna " Työaikataulun ominaisuudet". Täällä asetamme parametrit, joiden mukaan huoltosuunnitelma tulee suorittaa ja napsauta " OK". Minun esimerkissäni se on:

  • Esitetty - " Viikoittain"(Tapahtuu - viikoittain);
  • Toistaa joka - " 1 viikko"V" sunnuntai» (Toistuu joka: 1 viikko sunnuntaisin);
  • Suorita kerran päivässä: — "2:00:00" (Tapahtuu kerran: "2:00:00");

Varmista vielä kerran, että aikataulu on asetettu oikein ja napsauta " Edelleen"(Seuraava) .

Täällä valitsemme tehtävät, jotka huoltosuunnitelmamme suorittaa. Minun esimerkissäni se on:

  1. Tarkista tietokannan eheys;
  2. Varmuuskopiointitietokanta (täysi)

Huomaa, että jokaiselle tehtävälle sen Lyhyt kuvaus alla olevassa laatikossa. Valitsemalla tarvittavat tehtävät, klikkaus " Edelleen"(Seuraava) .

Nyt sinun on asetettava järjestys, jossa tehtävät suoritetaan käyttämällä " Ylös…" (Siirrä ylös) ja " Alas…"(Siirrä alas). Kun olet tehnyt tilauksen, napsauta " Edelleen"(Seuraava) .

Täällä sinun on asetettava parametrit jokaiselle suunnitelman tehtävälle. Ensimmäinen tehtävä listallamme on " Tietokannan kopioiminen (täysi)» (Varmuuskopioi tietokanta (täysi)).

Ensinnäkin sinun on valittava varmuuskopioitavat tietokannat napsauttamalla luettelon valintapainiketta " Tietyt tietokannat"(Valitse yksi tai useampi). Kun olet valinnut varmuuskopiointiin tarvittavat tietokannat, napsauta " OK» .

Alla asetamme varmuuskopioiden sijainnin ja säilytysajan sekä asetamme lisäparametreja:

  1. Jos asetat kytkimen " Luo tiedosto varmuuskopio jokaiselle tietokannalle» (Luo jokaiselle tietokannalle varmuuskopiotiedosto), sitten kun tehtävä suoritetaan, valittuun hakemistoon luodaan useita tietokantojen nimiä vastaavia varmuuskopiotiedostoja. No, lipun asettaminen" Luo jokaiselle tietokannalle alihakemisto» (Luo jokaiselle tietokannalle alihakemisto) järjestää tiedostot erilliset kansiot. Huomaa, että sinun on jätettävä varmuuskopiotiedoston pääte täytettynä.
  2. lipun asettaminen" Varmuuskopiosarja on vanhentumassa" (Varmuuskopiosarja vanhenee) kertoo SQL-palvelimelle, milloin tämä joukko voidaan korvata ilman, että vanhenemistarkistusta ohitetaan.
  3. Maksimaalisen luotettavuuden saavuttamiseksi voit asettaa lipun " Tarkista varmuuskopion eheys"(Tarkista varmuuskopion eheys).
  4. Suosittelen myös valitsemaan " Pakkaa varmuuskopiot"(Pakkaa varmuuskopio) levytilan säästämiseksi, jos käyttämäsi SQL Server -versio tukee tätä toimintoa.

Jos levytila rajoitettu, voit myös valita varmuuskopion tallentamiseen yhden tiedoston, joka korvataan jokaisen ylläpitosuunnitelman suorittamisen jälkeen. Aseta vastaava kytkin asentoon " Luo varmuuskopio tietokannoista yhdessä tai useammassa tiedostossa" (Varmuuskopioi tietokannat yhdelle tai useammalle tiedostolle) ja määritä sopiva tiedostonimi (ole varovainen, varmuuskopiotiedoston tunniste tulee olla .bak), ja valitse myös " Korvaa"jos varmuuskopiotiedostoja on olemassa: Korvaa".

Nyt on tehtävän vuoro" Tietokannan eheyden tarkistaminen» (Tietokannan eheyden tarkistus). Sinun tarvitsee vain valita tietokanta. Esimerkissäni se on edelleen sama tietokanta kuin Edellinen askel. Kun olet päättänyt tietokannoista, napsauta " Edelleen"(Seuraava).

Päällä seuraava sivu On mahdollista valita hakemisto, johon työn suoritusloki tallennetaan, ja myös määrittää SQL Server lähettämään raportti sähköpostitse. Kun olet asettanut parametrit, napsauta " Edelleen"(Seuraava).

Tarkistamme kaikki palvelusuunnitelman asetukset uudelleen ja jos kaikki on oikein, napsauta " Valmis" (Suorittaa loppuun).

Ohjattu toiminto alkaa rakentaa huoltosuunnitelmaa. Jos ohjattu toiminto ei havaitse virheitä, näemme suunnitelman onnistuneesta rakentamisesta kertovan viestin. Muussa tapauksessa sinun on korjattava virheet ja toistettava toimenpide uudelleen. Sulje ikkuna napsauttamalla " kiinni"(Kiinni).

4. Aloita huoltosuunnitelma

Aloita ylläpitosuunnitelman suorittaminen siirtymällä Microsoft SQL Environment -ohjelmaan Palvelimen hallinta Studio". Täällä avaamalla välilehti " Palvelusuunnitelmat» (Ylläpitosuunnitelmat) näemme äskettäin luodun suunnitelmamme. Voit tarkistaa sen toiminnan napsauttamalla sitä hiiren kakkospainikkeella ja valitsemalla " Suorittaa"(Suorita) .

Tämän jälkeen avautuu ylläpitosuunnitelman suoritusikkuna, jossa vaaditun ajan kuluttua pitäisi ilmestyä ilmoitus onnistuneesta toteutuksesta.

Varmuuskopiotiedoston pitäisi näkyä asianmukaisissa hakemistoissa

ja suunnitelman toteutuslokitiedosto.

Kun avaat tämän tiedoston, sinun pitäisi nähdä jotain tämän kaltaista:

Jos on, onnittelut! SQL Serverin ylläpitosuunnitelma on luotu ja käynnissä.

Auttoiko tämä artikkeli sinua?

Usein kehittäjät asiakas-palvelin sovelluksia On tarpeen järjestää jonkinlainen mekanismi, jonka avulla voit ilmoittaa tietylle asiakkaalle SQL-palvelimen tapahtuman perusteella. Vielä useammin asiakkaan ruusunvärinen unelma on, että kehittäjä toteuttaa tällaisen mekanismin. Jos esimerkiksi lähetysrajat ylittyvät jollekin kuluttajalle, tämän kuluttajan kanssa työskenteleville esimiehille on ilmoitettava välittömästi. Jotkut järjestelmäasiakkaat vaativat (ja kaikki asiakkaat poikkeuksetta haaveilevat tästä), että kun jotkut tiedot muuttuvat, nämä tiedot päivittyvät automaattisesti muille järjestelmän käyttäjille ja välittömästi. Tällaisen vaatimuksen toteutettavuutta ei käsitellä tässä (sitä on monia kritiikkiä), tässä käsitellään vain ratkaisuja. Microsoft sql -palvelimella on tavallinen parannuskeino ilmoitusorganisaatioille - hälytyksiä, mutta tämän työkalun käyttö on hyvin rajallista suurelta osin joka ei mahdollista taatun toimintamekanismin luomista sen pohjalle. Ja tästä syystä: Kommunikointi asiakasohjelman kanssa voidaan suorittaa lähettämällä sähköpostia tai emuloimalla viestiä " nettolähetys". Molemmat ovat hankalia vastaanottaa ilmoituksia.

Sähköpostityökalu on hankala seuraavista syistä:

a) toimitustakuuta ei ole, posti voi kadota.
b) posti voi juuttua välisolmuihin.
c) tcp/ip-protokolla vaaditaan
d) smtp-palvelin vaaditaan ja sähköpostiprofiili on määritetty.
e) pakollinen erikoisasetus sql-palvelin, jotta se voi lähettää kirjeitä.
f) Jokaisella tapahtumaa odottavalla asiakkaalla on oltava postilaatikko.
g) asiakasohjelmassa on tarpeen järjestää sähköpostiohjelma.

Lähettäminen "verkkolähetyksen" kautta on hankalaa seuraavista syistä:

a) toimitustakuuta ei ole, koska se järjestetään mailslot-palvelun kautta, jolla ei ole tällaista takuuta.
b) verkossa vaaditaan oikea netbios-nimen resoluutio.
c) Asiakasohjelmassa vaaditaan "Client for Microsoft Networks".
d) käytössä on vakiosähköpostipaikka, se voi häiritä muita ohjelmia.

Ja yleisesti ottaen hälytystyökalu on hankala, koska jokainen asiakas on rekisteröitävä operaattoriksi ja konfiguroitava sen mukaisesti. Nuo. Yksinkertaisimmissa tapauksissa voidaan käyttää hälytyksiä. Mutta useimmissa tapauksissa se ei sovellu.

Tunnetut toteutukset ja konseptit

Suuri yleisö tuntee useita vaihtoehtoja palvelimen asiakasilmoitusmekanismin toteuttamiseksi. Tämä:

1. Objektin luominen (laajennettu tallennettu menettely tai Activex), jonka kautta sql-palvelin ilmoittaa asiakkaalle tcp/ip-sockettien kautta. Samalla asiakkaalle järjestetään salakuuntelu, ts. asiakasohjelmasta tuli tcp/ip-palvelin.
Tämän menetelmän haitat:
a) Sitoutuminen tcp/ip-protokollaan. Verkossa, jossa käytetään vain ipx, netbeui tai appletalk, tällaista mekanismia ei voida käyttää.
b) Ei asynkronisuutta. Jos tämä tapahtuma luodaan triggeristä, siinä on suorituskykyongelmia.

2. Objektin (laajennettu tallennettu toimintosarja tai Activex) luominen, jonka kautta sql-palvelin ilmoittaa asiakkaalle nimettyjen putkien tai sähköpostipaikkojen kautta. Samanaikaisesti asiakkaalle järjestetään jommankumman salakuuntelu.
Tämän menetelmän haitat:
a) Verkossa vaaditaan oikea netbios-nimen resoluutio.
b) Client for Microsoft Networks vaaditaan asiakkaassa.
c) Jos käytät mailslotia, toimitustakuuta ei ole.
d) jos käytetään nimettyjä putkia, tätä ei voida soveltaa asiakastietokoneet leikkaussalista windows järjestelmä 95/98/me, koska nimetty putki voidaan luoda vain sisään käyttöjärjestelmä nt arkkitehtuurissa.
e) Ei asynkronisuutta. Jos tämä tapahtuma luodaan triggeristä, siinä on suorituskykyongelmia.

3. Asiakkaan suorittama SQL-palvelimen säännöllinen kysely (erityisen tapahtumataulukon säännöllinen luku). Tämä on hyvin yksinkertainen tapa, mutta silti vapaa useimmista edellä mainitut haitat. Valitettavasti tällä menetelmällä on omat kaksi erityistä haittaa: a) ilmoituksen vastaanottaminen voi viivästyä kyselyn aikakatkaisun vuoksi ja b) pienellä aikakatkaisulla syntyy merkittävää liikennettä. Pienellä istuntomäärällä tämä menetelmä on kuitenkin varsin sopiva ja jätetään ansaittomasti huomiotta.

Ehdotettu ratkaisu

Tarjoamme sinulle ratkaisun ongelmaan, joka on vapaa yllä olevista (kaikki edellä mainituista!) ongelmista, mutta samalla melko yksinkertainen. Ideana on tämä: palvelimelle sijoitetaan tietty binääriobjekti, jota sql-palvelin voi kutsua (ja tämä voi olla vain laajennettu tallennettu toimintosarja tai ActiveX-objekti), jolla on kaksi toisiinsa liittymätöntä menetelmää.
Ensimmäinen menetelmä käyttää win32api createevent -funktiota win32-ytimen objektin luomiseen "event", jonka parametrina on annettu yksilöllinen nimi. Seuraavaksi kutsutaan win32api waitforsingleobject -funktio, jonka kohtaamisen jälkeen säiettä pysähtyy ja odottaa, kunnes tämä ydinobjekti antaa signaalin. Kiinnitän huomionne siihen tosiasiaan, että tällaisia ​​ydinobjekteja voidaan luoda mikä tahansa määrä. Tätä rajoittaa vain järjestelmän kahvojen määrä.
Toinen menetelmä kutsuu ytimen tapahtumaobjektia nimellä, annettu parametri, käyttämällä win32api setevent -toimintoa ja asettaa "signaled"-ominaisuuden sille. Kun tämä tapahtuu, ensimmäisen menetelmän säie herää ja palauttaa ohjauksen kutsuprosessiin. Toinen menetelmä ei odota tulosta, vaan palauttaa ohjauksen kutsuprosessiinsa heti "signaloidun" ominaisuuden asetuksen jälkeen. Tällä saavutetaan asynkronisuus.
Nyt ei jää muuta kuin tehdä tallennetut t-sql-menettelyt, hallitsee tätä objektia ja vaadittua toiminnallisuutta"taskussamme." Asiakasohjelma erillisessä säikeessä käynnistää tallennetun proseduurin tapahtuman odottamiseksi ja välittää parametrina yksilöllisen osoiteattribuutin. Tämä voi olla käyttäjänimi, tietokoneen nimi tai mikä tahansa merkkijono. Tärkeintä on, että tämä on yksilöllinen tunniste asiakas-palvelinjärjestelmässä. Tallennettu toimintosarja palauttaa tuloksen vain, jos tälle kohteelle luodaan tapahtuma. Kun tapahtuma vastaanotetaan, prosessi aloitetaan uudelleen. Kun ohjelma suljetaan, tapahtumaa odottava säie yksinkertaisesti lopetetaan terminatethreadin kautta.
Ensi silmäyksellä tällä menetelmällä on "kauhea" haittapuoli - sql-palvelimeen on jatkuva yhteys, joka suurimman osan ajasta ei tee mitään. Mutta tämä on vasta ensivaikutelma. Itse asiassa resursseja käytetään täällä vain yhteyden ylläpitämiseen - tämä on jotain useita kilotavuja istuntoa kohden. Siinä kaikki! Konkreettisia resursseja ei enää tuhlata, varsinkin kun otetaan huomioon alla kuvatut edut. Sinun ei myöskään tarvitse huolehtia lisälisensseistä, jos valitset "palvelinkohtaisen" lisenssimallin. Tässä tapauksessa yhdellä koneella voi olla niin monta yhteyttä sql-palvelimeen kuin halutaan, se vaatii silti täsmälleen yhden asiakaslisenssin.

Valmis ratkaisu

Ratkaisu koostuu Activex-objektista tiedoston muodossa algoevt.dll ja kahdesta tallennetusta proseduurista spwaitforevent ja spraiseevent. Ennen käyttöä tämä tiedosto on asetettava palvelimelle ja Activex-objekti on rekisteröitävä käyttämällä järjestelmän apuohjelma regsvr32.exe. Jatkossa kaikki työt tehdään tallennettujen menettelyjen avulla. SISÄÄN valmis ratkaisu Toimintoja on toteutettu jonkin verran enemmän kuin kuvatussa konseptissa. Tapahtuman tosiasian lisäksi voit lähettää mielivaltaisia ​​tietoja jopa 250 merkin pituisena merkkijonon muodossa. Jokaisella menettelyllä on kaksi parametria. Ensimmäinen on edellä mainittu yksilöllinen osoitteen tunniste, ja toinen parametri on lähetetty lisäinformaatio. spwaitforevent on kutsuttava asiakkaalta erillisestä säikeestä (matalin säikeen prioriteetti voidaan valita). Kun tapahtuma vastaanotetaan, toimenpide on aloitettava uudelleen. Pyynnön suorittamisen aikakatkaisu on asetettava äärettömäksi.

Joten jatketaan 1C-tietokantojen ylläpidon aihetta, katsotaanpa tarkemmin ohjausjärjestelmää relaatiotietokannat Microsoftin tiedot SQL Server. Tämä tuote tarjoaa meille erinomaiset mahdollisuudet tietokantojen käsittelyyn, tallentamiseen, varmuuskopiointiin ja palauttamiseen. Aloitan lyhyen artikkelisarjan, joka on omistettu tälle aiheelle. Kaikki alla kirjoitettu on henkilökohtaista mielipidettä tästä asiasta ja on kritiikin kohteena.

Tässä artikkelissa käsitellään perushuoltosuunnitelmien luontiprosessia. Harkitsemme ilmoittamista operaattorille sekä esimerkkiä tietokannan palauttamisesta seuraavissa artikkeleissa.

Testilaboratoriossa meillä on seuraavat:

  • Palvelin Windows Server 2008 yritys: SRV-1C-TESTI.
  • Microsoft SQL Server 2008: SRV-1C-TESTI.
  • Testipohja Voi firma.

Kuten tavallista, asetimme itsellemme tehtävän:

Suorita tukikohdan huolto klo 00:30 ja 01:00 välillä, ja huollon ei pitäisi olla havaittavissa (tai tuskin havaittavissa) tukikohdan käyttäjille.

Aloitetaan tärkeitä kohtia. MS SQL -tietokannassa voi olla yksi kolmesta palautusmallista:

  • Yksinkertainen.
  • Koko.
  • Puutteellisella kirjauksella.

Varmuuskopioinnin aikana meillä on myös kolme kopiovaihtoehtoa, joista valita:

  • Saattaa loppuun.
  • Ero.
  • Tapahtumalokin (lokien) kopioiminen.

Täysi kopiointivaihtoehdolla mdf-tietokanta ja tapahtumaloki tallennetaan. Differentiaalinen varmuuskopio (tunnetaan myös nimellä differentiaali) kopioi tiedot, jotka ovat muuttuneet edellisen täyden varmuuskopion luomisen jälkeen. Tapahtumalokin kopioiminen vastaavasti tallentaa vain itse tapahtumalokin.

Jos valitset yksinkertaisen mallin, voit palauttaa tietokannan viimeisestä differentiaalista tai täydellisestä varmuuskopiosta. Täydellistä palautusmallia valittaessa voimme palauttaa tietokannan hetkessä luomalla täyden varmuuskopion esimerkiksi yöllä ja päiväsaikaan luoda kopioita tapahtumalokista. Alla näemme, missä tämä kohta tulee esiin. Haluaisin myös lainata joitakin otteita MSDN:stä: "Joukkolokittu palautusmalli on tarkoitettu vain mallin lisäykseen täysi palautuminen. SISÄÄN yleinen tapaus Joukkolokin palautusmalli on samanlainen kuin täyden lokin palautusmalli, paitsi että useimmat joukkotoiminnot kirjataan vain vähän."

Voit tarkastella tietokannan palautusmallia siirtymällä esimerkiksi tietokannan ominaisuuksiin Voi firma ja mennään riville - Parametrit.

MSSQL 2008:ssa luotujen tietokantojen oletuspalautusmalli on Koko.

Kuinka valita palautusmalli? Meidän on vain vastattava kysymykseen: onko tietojen menetys kohtalokas täydellisen varmuuskopioinnin jälkeen kuluneen ajan aikana? Jos vastaus on kyllä, valitse täydellinen palautusmalli, jos ei, valitse yksinkertainen. Joukkolokimallia tulisi käyttää vain massiivisten tietokantatoimintojen aikana.

Jos siis valitsit yksinkertainen malli, voit palauttaa tiedot vain öisin täydellisen tai differentiaalisen kopioinnin yhteydessä, ja sen jälkeen käyttäjät palauttavat kaikki tiedot manuaalisesti. Kun valitset Full-mallin, sinun on ehdottomasti tehtävä varmuuskopioida tapahtumaloki, muuten lokit kasvavat suuresti. Kaikissa palautusmalleissa sinulla pitäisi aina olla täydellinen varmuuskopio.

Ensin luomme öisen perushuoltosuunnitelman, joka sisältää seuraavat toimenpiteet:

  • Tarkistetaan tietokannan eheyttä
  • Indeksin uudelleenrakentaminen
  • Päivitä tilastot
  • DBMS-proseduurin välimuistin tyhjennys
  • Tietokannan varmuuskopiointi
  • Siivous huollon jälkeen
  • Lokin tyhjennys

Voit tehdä tämän muodostamalla yhteyden MSSQL-palvelimeen ympäristön avulla Microsoft SQLServer Management Studio. Voit aloittaa ympäristön menemällä osoitteeseen Käynnistä - Kaikki ohjelmat - Microsoft SQL Server 2008.

Otetaan yhteys SQL-palvelimeen ja siirrytään osoitteeseen Hallinto – palvelusuunnitelmat. Napsauta hiiren kakkospainikkeella Palvelusuunnitelmat ja valitse Luo palvelusuunnitelma. Annetaan hänelle nimi: SRV1CTEST.

Edessämme on SRV1CTEST-ikkuna, jossa luomme aiemmin ilmoitetun toimintosarjan. Näemme heti sen ilmestyvän Nested_Plan1. Sisäkkäisen suunnitelman nimen oikealla puolella näet kyltin muotoisen kuvakkeen. Napsauta sitä ja siirry tehtäväaikataulun ominaisuuksiin. Täällä voit muuttaa sisäkkäisen suunnitelman nimeä, asettaa toistotiheydeksi Päivittäin ja aseta aika. Joten nyt on jäljellä suunnitelmamme täyttäminen tehtävillä. Voit tehdä tämän vetämällä tehtäviä oikealla olevasta työkalupalkista.

Aloitetaan Tietokannan eheystarkistukset.

Kun olet vetänyt tehtävän, kaksoisnapsauta sitä. Näyttöön tulee ikkuna, jossa Tietokanta-riviltä valitsemme luomamme tietokanta Voi firma. Lisää seuraavaksi tehtäviä samalla tavalla Indeksin uudelleenrakentaminen Ja Päivitä tilastot, unohtamatta valita niitä tarvittava tietokanta tiedot.

Menettely Indeksin uudelleenrakentaminen luo indeksin uudelleen uudella täyttökertoimella. Tästä johtuen lisäämme tietokannan työn suorituskykyä.

Tehtävä Päivitä tilastot Päivittää MS SQL:n taulukon tiedot. Mikä myös parantaa tuottavuutta. Mutta tämän toimenpiteen jälkeen välimuisti on tyhjennettävä.

Pysähdytään nyt ja puhutaan yhteyksien luomisesta tehtävien välillä. Liitännät heijastavat suoritusjärjestystä. Jos haluat muodostaa yhteyden tehtävien välillä, sinun on napsautettava tehtävää kerran, jolloin näet nuolen. Hänet täytyy vetää seuraavaan tehtävään. Yhteydellä voi olla 3 väriä: sininen, vihreä ja punainen, joista jokainen tarkoittaa kolmen tyyppistä siirtymälaukaisua: edellisen tehtävän yksinkertaisen suorittamisen jälkeen - Valmistuminen, onnistuneen suorittamisen tapauksessa - Menestys, ja jos edellistä tehtävää suoritettaessa tapahtuu virhe - Virhe. Näet kaikki nämä parametrit napsauttamalla hiiren oikealla painikkeella tehtävien väliin piirrettyä nuolta. Joten, jos tarvitsemme Indeksin uudelleenrakentaminen potkut vasta, kun tehtävä on suoritettu onnistuneesti Tietokannan eheyden tarkistaminen, meidän on yhdistettävä ne nuolella. Napsauta nuolta hiiren kakkospainikkeella, muuta sen tilaksi Onnistuneesti, kuten näemme, sen väri on muuttunut vihreäksi.

Päällä Tämä hetki meillä on 3 luotua tehtävää sisäkkäisessä suunnitelmassamme. Kuten olet ehkä huomannut, DBMS-proseduurin välimuistin tyhjentäminen ei ole työkalupalkissa. Käytämme ongelmaa Esitys T-SQL-lauseet . Vedetään se suunnitelmaan ja kaksoisnapsauta sitä. Näemme ikkunan, johon kirjoitamme seuraavat tiedot:

DBCC FREEPROCCACHE

23/09/2015

Tyypillisiä virheitä MS SQL Server DBMS for 1C:n ylläpitosuunnitelmien määrittämisessä

Hyvää iltapäivää, kollegat.

Tämän päivän artikkelissa haluaisimme harkita melko suosittua ja suosittu aihe, kuten MS SQL Serverin ylläpitosuunnitelmien määrittäminen. P-kirjaimessa tarkastustemme tuloksena mejäännösyleinen (yli 60 % tapauksista)Havaitsemme epätarkkuuksia 1C-tuotteiden kanssa toimineen MS SQL Server DBMS:n määrityksessä. Käytäntö osoittaa, että tämä DBMS on yleisin, joten tässä artikkelissa tarkastelemme sen kanssa työskentelyn tärkeimpiä vivahteita.

Mistä sitten aloitat huoltosuunnitelman laatimisen? Varmuuskopiosta tietysti! DBA:n ensimmäinen sääntö on: "Älä ala tekemään mitään ilman varmuuskopiota." No emme mekään. Tarkastellaan kahta päävaihtoehtoa varmuuskopioiden luomiseen, tai pikemminkin kahta varmuuskopiomallia tai palautusmallia ( https://msdn.microsoft.com/ru-ru/library/ms189275(v=sql.120).aspx )

Palautus yksinkertaisella mallilla

Tietokantasi on SIMPLE-palautustilassa. Mitä tämä tarkoittaa? Tämä tarkoittaa, että on olemassa vain täydet varmuuskopiot, tapahtumalokeja ei tarvitse varmuuskopioida, suorituskyky on tässä mielessä suurin, mutta voit palauttaa vain varmuuskopiopisteeseen. Tietokannan palauttaminen "määrättyyn ajankohtaan" on mahdotonta.
Siksi joka ilta (tai useammin tarpeen mukaan) meidän on tehtävä uusi kopio tietokannastamme ja tallennettava se turvallinen paikka, eikä todellakaan se, jossa päätietokantamme sijaitsee
Yleisesti ottaen SIMPLE-mallin käyttö todellisiin tuotantotietokantoihin on perusteltua vain poikkeuksellisen suuren kuormituksen ja merkityksettömien tietojen menetystapahtumien tapauksessa edellisen varmuuskopioinnin jälkeen.

Lisäksi käsittelen välittömästi tapahtumalokin kanssa työskentelyä. Koska tapahtumaloki ei ole meille kovin hyödyllinen tässä palautustilassa, sitä ei tarvitse varmuuskopioida - kaikki lokin tiedot on jo siirretty varmuuskopioon. Tyypillisesti tämän palautusmallin lokit eivät kasva paljon, mutta joskus on hyödyllistä katkaista se. Esimerkiksi massiivisen datamuutoksen jälkeen tämä toimenpide voi olla erittäin hyödyllinen tapahtumalokitilan kannalta. Jos lokin sisältävä levy täyttyy, sinulla on taatusti ongelmia tietokannan toiminnassa.

Tietojen katkaisu voidaan suorittaa joko tavallisella palvelusuunnitelman ohjatulla asennustoiminnolla tai käyttämällä yksinkertaista T-SQL-komentosarjaa:

DBCC SHRINKFILE(tietokannan nimi, 1);
MENNÄ


Tämä komentosarja pienentää tietokannan lokitiedoston koon alkuperäiseen kokoon (oletusarvoisesti tämä on useimmiten 1 Mt). Sinun ei kuitenkaan pidä suorittaa tätä toimintoa jatkuvasti. Ihannetapauksessa tiedostojesi koko ei saisi muuttua systemaattisen työn aikana, mutta puhumme tästä joskus toiste.

Palautus täydellä mallilla

Katsotaanpa varmuuskopioinnin ja tapahtumalokin koon hallinnan perusperiaatteita yleisimmän vaihtoehdon - tietokannan täyden palautusmallin - näkökulmasta.


Täysi palautusmalli eroaa yksinkertaisesta siinä, että koko tietokannan toiminnan aikana voimme (tai tarkemmin sanottuna TÄYTYY!) tehdä tapahtumalokista varmuuskopioita, mikä tarjoaa mahdollisuuden palauttaa tietokanta pääpisteiden väliin. varmuuskopiot tai palautukset tietyn ajan tietokannan toiminnan ajaksi sekä varmistamalla, että lokitiedostossa vapautuu tilaa (typistäminen). Jos tätä ei tehdä, se kasvaa jatkuvasti, kunnes eräänä päivänä se täyttää kaiken käytettävissä olevan tilan (joko levyllä tai DBMS:ssä asetettuun rajaan asti). Seuraukset näyttävät ilmeisiltä, ​​eivätkä ne kaikkein miellyttävimmistä.

Saatavuuden suhteen täydet varmuuskopiot- tietysti minimiraja on yleensä sama yksi päivä. Differentiaaliset tietokannan varmuuskopiot ovat kyky tallentaa vain muutokset, jotka ovat tapahtuneet viimeisen varmuuskopioinnin jälkeen. Näin voit nopeasti ja tehokkaasti varmuuskopioida tietokannan samalla kun käytät tarpeeksi nopea palautuminen DB haluttuun tilaan.
Tapahtumalokien varmuuskopioita voidaan tehdä niin usein kuin tarvitset koko päivän ajan, tarkemmin kuin differentiaaliset tietokannan varmuuskopiot. Suosittelemme yleensä valitsemaan kopion yksityiskohtatason, joka on noin ¼ ajasta, joka kuluu erilaisten tietokantakopioiden luomiseen.

Kuten edellä mainittiin, kun teet tietokannan tapahtumalokin varmuuskopion täydessä mallissa, se katkaistaan ​​automaattisesti (älä vain sekoita katkaisua pakkaamiseen!).

Tilastojen uudelleenlaskenta ja työskentely indeksien kanssa

Nykyinen käytäntö työskennellä indeksien ja tilastojen kanssa asiakkaidemme keskuudessa on varsin virheellinen. Hyvin usein kohtaamme näiden menettelyjen täydellisen puuttumisen tietokannan ylläpitosuunnitelmista. Ne tehdään usein väärässä järjestyksessä. Usein se ei yksinkertaisesti ole optimaalinen (esimerkiksi samaan aikaan!).

Oikea toimintosarja näyttää tältä:

    Indeksin pirstoutumisen asteen määrittäminen

      Jos indeksi on pieni tai hieman hajanainen, käynnistämme indeksin uudelleenjärjestelyn ja tilastojen uudelleenlaskennan.

      Muussa tapauksessa aloitamme indeksin uudelleenmuodostuksen. Indeksin uudelleenmuodostusprosessi päivittää tilastot, joten tilastoja ei tarvitse laskea uudelleen täydellisen indeksin uudelleenmuodostuksen jälkeen.

  1. Laskemme kaikki muut tilastot tarvittaessa uudelleen.

Jos harkitsemme minikomentosarjaa tilastojen uudelleen laskemiseen ja indeksien uudelleen rakentamiseen (emme teeskentele olevan erittäin täydellisiä ja universaaleja), se näyttää suunnilleen tältä (indeksit on lajiteltu kohdistimen kautta):

ILMOITA @SQL NVARCHAR(MAX)

ILMOITTAA @MIN_IND_SIZE kokonaisluku = 128

ILMOITTAA @MIN_FRAGMENTATION_LEVEL kokonaisluku = 10

ILMOITTAA @CRITICAL_FRAGMENTATION_LEVEL kokonaisluku = 30


ILMOITA nykyinen indeksi KURSORI PAIKALLINEN LUKU_VAIN ETEENPÄIN_VAIN

VALITSE "ALTER INDEX [" + ind.name + N"] PÄÄLLÄ [" +

SCHEMA_NAME(obj.) + "].[" + obj.name + "] " +

CASE WHEN stat.avg_fragmentation_in_percent > @CRITICAL_FRAGMENTATION_LEVEL

SITTEN "BUILD WITH (SORT_IN_TEMPDB = PÄÄLLÄ, ONLINE = PÄÄLLÄ)"

MUUTA "JÄRJESTÄ"

END + ";"

FROM (

SELECT stat., stat.index_id,

avg_fragmentation_in_percent = MAX(stat.avg_fragmentation_in_percent)

FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, "DETAILED") stat

WHERE stat.page_count > @MIN_IND_SIZE AND stat.index_id > 0

JA stat.avg_fragmentation_in_percent > @MIN_FRAGMENTATION_LEVEL

GROUP BY stat., stat.index_id

) stat

JOIN sys.indexes ind WITH(NOLOCK) ON stat. = ind.

JA stat.index_id = ind.index_id

LIITY sys.objects obj WITH(NOLOCK) ON obj. =tilasto.

AVAA nykyinen indeksi

FETCH NEXT FROM FROM currentIndex INTO @SQL

WHILE @@FETCH_STATUS = 0 ALKU

tulosta @sql

EXEC sys.sp_executesql @SQL

HAE SEURAAVAKSI @SQL:ään

SULJE nykyinen hakemisto

POISTA nykyinen indeksi


Huomaa tempdb:n käyttö sekä indeksin pitäminen saatavilla uudelleenasennuksen aikana - DBMS-versiosta riippuen jälkimmäinen toiminto ei ehkä ole käytettävissä.

Ilmoitukset

Paitsi kaikki tekniset näkökohdat, on erittäin oikein laatia huoltosuunnitelmat, jotka virheellisesti toteutettuina silti ilmoittavat sinulle ilmenneestä ongelmasta. Ja tämä on artikkelini lyhin kappale. :)

Jos kaikki tuntui liian monimutkaiselta tai et ole varma, että voit tehdä tällaisia ​​asetuksia itse, älä epäröi ottaa meihin yhteyttä - autamme!

SQL Server 2016:ssa ja uudemmissa versioissa voit asentaa kaikki R Servicesiin (tietokannassa) liittyvät komponentit ohjatun toiminnon avulla. SQL-asennukset Palvelin.

Kun asennus on valmis, saatat tarvita lisätoimia Ota R-palvelut käyttöön määrittämällä Tilit ja myöntää käyttäjille käyttöoikeudet tiettyihin tietokantoihin.

Jos sinulla on ongelmia pääsyssä tietokantoihin asennuksen jälkeen tai jos sinun on poistettava aiemmat versiot, katso kohta.

    Avata SQL-ympäristö Server Management Studio. Jos sitä ei ole vielä asennettu, voit suorittaa ohjatun SQL Server -asennustoiminnon uudelleen ladataksesi sen linkistä ja asentaaksesi sen.

    Muodosta yhteys ilmentymään, johon R Services on asennettu (tietokannassa), ja suorita seuraava komento ottaaksesi R Services -komponentin käyttöön. Muuten et voi kutsua R-komentotiedostoja, vaikka asennusohjelma olisi asentanut komponentin.

    Exec sp_configure "ulkoiset komentosarjat käytössä" , 1 Määritä uudelleen ohittamalla

    Käynnistä SQL Server -esiintymän SQL Server -palvelu uudelleen. Aiheeseen liittyvä palvelu SQL Server Trusted Launchpad käynnistyy myös automaattisesti uudelleen. Voit käynnistää palvelun uudelleen Ohjauspaneelin Palvelut-paneelin tai SQL Server Configuration Managerin avulla.

    Kun SQL Server -palvelu on saatavilla, tarkista, onko R käytössä, suorittamalla seuraava komento ja tarkistamalla, onko ominaisuus käytössä run_value arvo 1:

    Exec sp_configure "ulkoiset komentosarjat käytössä"

    Voit myös avata paneelin Palvelut ja tarkista, onko käynnistyslevypalvelu käynnissä esiintymässäsi. Jokaisella kopiolla on oma palvelu laukaisualusta.

    Sinun pitäisi nyt pystyä ajamaan SQL Server Management Studiossa yksinkertaiset skriptit R, kuten seuraava:

    Exec sp_execute_external_script @language =N"R", @script=N"OutputDataSet<-InputDataSet ", @input_data_1 =N"select 1 as hello" with result sets (( int not null)); go

    tuloksia

    Hei
    1

Asennusprosessi luo 20 Windows-käyttäjätiliä suorittamaan tehtäviä SQL Server Trusted Launchpad -palvelun suojaustunnuksella. Kun käyttäjä lähettää R-komentosarjan ulkoisesta työasemasta, SQL Server aktivoi käytettävissä olevan työtilin, yhdistää sen soittavan käyttäjän identiteetin kanssa ja suorittaa R-komentosarjan käyttäjän puolesta. Tämä on uusi tietokantamoottoripalvelu, joka tarjoaa suojatun ulkoisten komentosarjojen suorittamisen käyttämällä mekanismia nimeltä implisiittinen todennus.

Tilejä voi tarkastella Windows-käyttäjät -ryhmässä SQLRUserGroup. Jos sinun on suoritettava R-komentosarjat datatieteen etäasiakkaasta ja käytät Windows-todennusta, näille työtileille on myönnettävä lupa kirjautua SQL Server -esiintymään puolestasi.

  1. Laajenna SQL Server Management Studion Object Explorerissa Turvallisuus, oikealla painikkeella Kirjautumiset ja valitse Luo kirjautumistunnus.
  2. Valintaikkunassa Kirjautumisen luominen napsauta painiketta Hae.
  3. Klikkaus Objektityypit ja valitse ryhmät. Poista kaikkien muiden vaihtoehtojen valinnat.
  4. Kirjoita "Anna objektin nimi" -kenttään SQLRUserGroup ja napsauta Tarkista nimet.
  5. Ilmentymän käynnistyslevypalveluun liittyvän paikallisen ryhmän nimen on oltava muotoon esiintymän_nimi\SQLRUserGroup. Napsauta painiketta OK.
  6. Oletuksena kirjautumisnimi on määritetty julkisesti saatavilla rooleja ja hänellä on oikeus muodostaa yhteys DBMS-ytimeen.
  7. Napsauta painiketta OK.

Jos asensit SQL Serverin itse ja suoritat R-komentosarjat omassa ilmentymässäsi, teet sen yleensä järjestelmänvalvojan oikeuksilla ja sinulla on siksi nimenomainen lupa suorittaa erilaisia ​​toimintoja ja käyttää kaikkia tietokannan tietoja sekä mahdollisuus asentaa uusia R-paketteja tarvittaessa.

Mutta yritysskenaariossa useimmilla käyttäjillä, mukaan lukien ne, jotka käyttävät tietokantaa SQL-kirjautumisilla, ei ole tällaisia ​​korotettuja oikeuksia. Siksi jokaiselle käyttäjälle, joka suorittaa ulkoisia skriptejä, on myönnettävä oikeudet suorittaa R-komentosarjat jokaisessa tietokannassa, jossa R:tä käytetään.

KÄYTTÄÄ MYÖNTÄ SUORITTAA KAIKKI ULKOINEN KÄYTÖSTÄ

Tässä osassa kuvataan lisämuutoksia, joita voit tehdä ilmentymän kokoonpanoon, tai, jos käytät datatieteen asiakasohjelmaa, muutoksia, jotka mahdollistavat R-komentosarjan suorittamisen.

Muuta SQL Server Trusted Launchpadin käyttämien työtilien määrää

Jos aiot käyttää R-ympäristöä paljon tai jos useat käyttäjät suorittavat komentosarjoja samanaikaisesti, voit lisätä Launchpad-palveluun määritettyjen työtilien määrää. Katso lisätietoja kohdasta .

Myönnä R-käyttäjille tai kirjaudu sisään tarvittavat luku-, kirjoitus- tai DDL-oikeudet lisätietokantoihin

Kun R-komentosarjaa suoritetaan, käyttäjätilin on ehkä luettava tietoja muista tietokannoista, luotava taulukoita tulosten tallentamista varten ja kirjoitettava tietoja taulukoihin.

Jokaisella käyttäjätilillä, joka käyttää R-skriptejä, on oltava käyttöoikeudet db_datareader, db_datawriter tai db_ddladmin tiettyä tietokantaa varten.

Esimerkiksi seuraava Transact-SQL-käsky tarjoaa SQL-kirjautumistunnuksen MySQL-kirjautuminen oikeudet suorittaa T-SQL-kyselyitä tietokannassa RSamples. Tämän käskyn suorittaminen edellyttää, että SQL-sisäänkirjautuminen on jo olemassa palvelimen suojauskontekstissa.

KÄYTÄ RSamples GO EXEC sp_addrolemember "db_datareader" , "MySQLLogin"

Lisätietoja kuhunkin rooliin sisältyvistä käyttöoikeuksista on kohdassa .

Luo ODBC-tietolähde ilmentymälle datatieteen asiakassovelluksessa

Jos rakennat R-ratkaisua datatieteen asiakaskoneelle ja sinun on muodostettava yhteys SQL Server -koneeseen, joka toimii laskentakontekstina, voit käyttää SQL-kirjautumista tai integroitua Windows-todennusta.

SQL-kirjautumista käytettäessä sillä on oltava asianmukaiset oikeudet tietokantaan, josta tiedot luetaan. Voit tehdä tämän lisäämällä käyttöoikeuksia Yhdistää Ja VALITSE tai lisää kirjautuminen rooliin db_datareader. Jos haluat luoda objekteja, tarvitset käyttöoikeudet DDL_admin. Jos haluat tallentaa tietoja taulukoihin, lisää rooliin kirjautumistunnus db_datawriter.

Jos käytät Windows-todennusta, sinun on määritettävä ODBC-tietolähde datatieteen työasemassa ilmentymän nimellä ja muilla yhteystiedoilla.

Katso lisätietoja kohdasta .

Palvelimen optimointi R:lle

SQL Server Setup -ohjelman oletusasetukset on suunniteltu optimoimaan palvelimella olevien tietokantamoottorin tukemien palvelujen suorittaminen, mukaan lukien purku-, muunnos- ja latausprosessit, raportointi, tarkastus ja SQL Server -tietoja kuluttavat sovellukset. Siksi oletusasetuksia käytettäessä R-toimintojen resurssit voivat olla rajoitettuja tai tukahdutettuja, erityisesti muistiintensiivisissä toimissa.

Varmistaaksesi, että R-tehtäville on määritetty asianmukaiset prioriteetit ja varattu tarvittavat resurssit, suosittelemme käyttämään Resource Governor -työkalua ulkoisen resurssivarannon määrittämiseen R-toimintoja varten. Voit myös muuttaa SQL Server Database Enginelle varatun muistin määrää tai lisätä sitä Trusted Launchpad -palvelun SQL Server -tilien lukumäärä.

    Yhteensopiva RC2-version kanssa: lataa arkisto rre-gpl-src.8.0.2.tar.gz

    Yhteensopiva RC3-version kanssa: lataa arkisto rre-gpl-src.8.0.3.tar.gz

    Yhteensopiva RTM-version kanssa: lataa arkisto rre-gpl-src.8.0.3.tar.gz

Onko sinulla ongelmia? Tarkista luettelo yleisistä ongelmista, kun asennat R Services -palvelun esikatseluversioita (tietokannassa).