SQL Server-tietokanta ja klassinen DataOps – Taulujen populointi, jobit ja versiointi
Tämä blogi päättää blogisarjani SQL Server-tietokantojen klassiseen DataOpsiin liittyen. Tässä blogissa keskitytään taulujen (uudelleen-) luomiseen, SQL Server jobien (uudelleen-)luomiseen sekä tietokantatuotteen versiointiin.
Clean install-skriptimoduulit
Tänään läpikäydään seuraavat skriptikokonaisuudet:
- Populate tables -skripti populoi käyttäjätaulujen sisällön.
- Jobs -skripti (uudelleen-)luo kantaratkaisun SQL Server jobit.
- Version -skriptihoitaa lopuksi versiopäivityksen lokitauluun.
Populate tables -skripti
Populate tables -skriptin vaiheet ovat:
- Populoidaan käyttäjätaulut pää- ja viiteavainten mukaisessa parent-child -hierarkiajärjestyksessä.
Ohessa esimerkkkiskripti, jossa lisätään tauluun useampi rivi kerralla. Tämä on eritoten kätevää silloin, kun lisättäviä tietueita on kymmeniä tai vielä paljon enemmän. Vältyt näin turhan koodin kirjoittamiselta. Voit toki myös generoida T-SQL-koodin, joka luo dynaamisesti luontilausekkeet haluttuun muotoon, tai sitten voit käyttää jonkin kolmannen osapuolen koodingenerointityökaluja.
Entä kun haluat lisätä tauluun vain tietyt rivit, mutta joudutkin ajamaan kyseisen skriptin uudelleen? Silloin on näppärä käyttää IF EXISTS-määrettä seuraavalla tavalla:
Jobs -skripti
Jobs -skriptin vaiheet ovat:
- Poistetaan vanhat SQL Server jobit
- (Uudelleen-) Luodaan SQL Server jobit
Esimerkki vanhan SQL Server jobin poistosta scheduleineen. SQL Server jobit löytyvät msdb:n sysjobs_view -näkymästä.
Varsinaisen SQL Server jobin luontiin tarvitset seuraavia system stored procedureja:
- Sp_add_job
- Sp_add_job_server
- Sp_add_job_step
- Sp_add_jobschedule
Esimerkiksi; näin luodaan uusi SQL Server jobi, joka putsaa käyttäjätauluista vanhentuneita rivejä:
Ensin lisätään jobi ja enabloidaan se. Sitten liitetään jobi serveriin, missä se ajetaan:
Lisätään SQL Server jobille steppi, jossa haluttu rivienpoistoproseduuri suoritetaan:
Lopuksi luodaan ja enabloidaan haluttu schedule jobille, tässä tapauksessa toistuva:
Version -skripti
Version-skriptin tehtävänä on tallentaa tuotteen versiointitiedot kronologisesti tiatokantatauluun. Tämän kautta on sitten helppo seurata, että missä tuoteversiossa mennään milloinkin. Versiotaulun rakenne voi olla yksinkertaisimmillaan esimerkiksi tällainen:
- Versionumerokenttä, esimerkiksi 16100.
- Versionimikenttä, esimerkiksi V16 CU1.
- Asennuspvm -kenttä, esimerkiksi 2024-10-30 15:50:00.000
Hyvänä käytäntönä voidaan pitää sitä, että jokainen yksittäinen asennus jättää tähän tauluun tietueen versiohistoriaan. Tästä on iloa installerille. 😉
Loppusanat
Tämä olikin sitten tämän blogisarjan viimeinen postaus. Nyt sinulla pitäisi olla ihan hyvät perusteet hallussa siitä, kuinka tietokantaskriptejä tehdään tuotekehitysmielessä. Systemaattisuus, modulaarisuus ja toistettavuus on tässä hommassa kaiken A ja O.
Miten voisimme olla avuksi juuri sinun tietokantaongelmissasi?
Jani K. Savolainen
jani.savolainen@dbproservices.fi
0440353637
VP & Chairman
DB Pro Services Oy
Saatat olla kiinnostunut:
SQL-tietokanta – historia, nykytila ja tulevaisuus: historia