You are on page 1of 2

MICROSOFT SQL SERVER 2005 INSIDER

SQL Server 2005


prethodni nastavci u PDF-u

NA VIDI DVD-u

Napredne verzije SQL Servera 2005 (2)


Kako automatski zatititi svoje podatke uz pomo jednostavne skripte
pie: Nenad Crnko

e smo nekoliko puta tijekom SQL serijala ukazali na vanost izrade zatitnih kopija podataka spremljenih u SQL Server baze podataka (postupak poznat pod popularnim "hrvatskim nazivom" backup podataka). Do sada ste nauili kako se takav postupak moe napraviti iz grafikog korisnikog suelja, a ukoliko ste bili neto ambiciozniji, moda ste pronali i odgovarajue Transact-SQL naredbe za postizanje istog cilja. Meutim, jo uvijek nismo objasnili kako se izrada zatitnih kopija podataka moe pokrenuti u gluho doba noi, kada se uobiajeno provode takve operacije (kako se drugi korisnici ne bi ometali u radu). Proli put smo upoznali mehanizam koji omoguava izvoenje eljene operacije u tono odreeno vrijeme (SQL Server Agent), a sada je preostalo jo samo to da ga i primijenimo. Kao i obino, automatizaciju zatite podataka prikazati emo na Microsoftovoj demo bazi podataka Northwind. Prije detaljnog opisa postupka jedna kratka napomena; automatizaciju zatite podataka u SQL Serveru moemo provesti tako da njezin rezultat bude datoteka na disku ili na magnetnoj vrpci. Spremanje kompresiranog sadraja datoteke s diska na digitalni medij izvodi se u nekoj drugoj aplikaciji (npr. Nero). Postupak pripreme automatske zatite podataka odvija se kroz nekoliko koraka detaljno opisanih u nastavku teksta. Boljem razumijevanju itave prie trebale bi pridonijeti i pratee slike uz ovaj tekst.

baze podataka Nortwind, definira se otvaranjem odgovarajueg dijela hi- Skriptiranje definiranog posla: Predstavlja najjednostavniji nain za njegov prijenos na drugo raunalo. jerahijskog priset @Sekunda = rtrim(cast(datepart(ss,getdate()) as kaza u grafikom korisnikom suelju SQL varchar(2))) Servera, te odabirom naredbe za stvaranje novog posla (SQL Server Agent > Jobs > New Job). if len(@Mjesec) = 1 set @Mjesec = '0' + @Mjesec Kao rezultat izvoenja prethodne naredbe if len(@Dan) = 1 otvara se dijaloki okvir New Job te u okviru njega set @Dan = '0' + @Dan poetna kartica General. Na navedenoj kartici if len(@Sat) = 1 set @Sat = '0' + @Sat definira se naziv posla (Name), njegov vlasnik if len(@Minuta) = 1 (Owner), kategorija (Category) te po elji opis set @Minuta = '0' + @Minuta (Description). Pomou okvira za izbor Enabled if len(Sekunda) = 1 moe se odrediti aktivnost/neaktivnost posla. Kao set @Sekunda = '0' + @Sekunda pomo u popunjavanju ove, ali i slijedeih kartiset @Datum = '-' + @Godina + @Mjesec + ca moete konzultirati pratee slike uz tekst. @Dan + '-' + @Sat + @Minuta + @Sekunda

Korak 2: Definiranje koraka od kojih se sastoji posao


Nakon popunjavanja kartice General potrebno je prijei na slijedeu karticu pod nazivom Steps. Budui da je u ovom sluaju rije o novom poslu, popis koraka je trenutno prazan. Definirajmo zato prvi korak pritiskom na New. Trenutak kasnije otvara se dijaloki okvir Job Step Properties kojeg treba popuniti prema prateoj slici uz tekst. Kako postoji mogunost da dio pratee slike s kodom koraka u Transact-SQL jeziku bude slabije vidljiv ili neitljiv, evo i preglednog prikaza to je tu zaista upisano:
declare declare declare declare declare declare declare @Datum varchar(20) @Godina varchar(4) @Mjesec varchar(2) @Dan varchar(2) @Sat varchar(2) @Minuta varchar(2) @Sekunda varchar(2)

declare @Naziv varchar(100) set @Naziv = 'C:backupNorthwind' + @Datum + '.bak' backup database Northwind to disk = @Naziv with init, name = 'Northwind'

Korak 1. Definiranje osnovnih karakteristika novog posla


Novi posao (u terminologiji SQL Servera job), a u naem sluaju je to posao zatite podataka iz

Definiranje novog posla: Zapoinje u odgovarajuem dijelu hijerarhijskog prikaza (SQL Server Agent > Jobs).

set @Godina = rtrim(cast(datepart(yyyy,getdate()) as varchar(4))) set @Mjesec = rtrim(cast(datepart(mm,getdate()) as varchar(2))) set @Dan = rtrim(cast(datepart(dd, getdate()) as varchar(2))) set @Sat = rtrim(cast(datepart(hh, getdate()) as varchar(2))) set @Minuta = rtrim(cast(datepart(mi,getdate()) as varchar(2)))

Cilj prethodne skripte je automatizirati zatitu podataka u zadanu mapu na disku, ali tako da se naziv datoteke svaki put automatski generira na temelju trenutnog datuma i vremena. Iako se ovaj dio mogao napraviti i drugaije, prethodni kod istovremeno demonstrira kako se moe zakomplicirati pojedini korak posla. Razjasnimo na ovom mjestu jo samo vrlo vaan parametar - Type. Njegova trenutna vrijednost Transact-SQL script (T-SQL) pokazuje da korak zapravo predstavlja izvoenje neke od Transact-SQL naredbi. Ako pogledate dozvoljene vrijednosti iz padajueg popisa, otkriti ete da je mogue izabrati neto sasvim drugaije, kao to je izvoenje naredbi operativnog sustava i slino. Dijaloki okvir Job Step Properties ima jo jednu karticu - Advanced. Kao i u sluaju izvoenja bilo kojeg drugog programskog koda, tako i ovdje postoji mogunost da neto poe po zlu. U tom sluaju na raspolaganju je nekoliko mogunosti:

On success action
Definira to se treba dogoditi ako je prethodni korak uspjeno dovren. To moe biti skok na

WWW.VIDILAB.COM

VIDI br. 135 / 2007

121

INSIDER MICROSOFT SQL SERVER 2005


da e se on pokrenuti u tono definirano vrijeme te izvesti traenu operaciju. Svaki definirani posao moe se pokrenuti i runo u bilo koje vrijeme, to je jako zgodna mogunost u smislu testiranja njegove ispravnosti. Dovoljno je u popisu poslova na eljeni posao pritisnuti desnom tipkom na miu, te izabrati naredbu Start Job at Step. Dijaloki okvir Job Step Properties: Namijenjen je
definiranju pojedinanih koraka unutar posla.

Korak 5: Distribucija posla na drugo raunalo


Bilo bi sasvim nerazumno ponavljati postupak oko definiranja nekog posla na svakom raunalu gdje je to potrebno. Ne zaboravite - pojedini posao moe se sastojati od vrlo velikog broja koraka. A potrebe za koritenjem istih poslova na razliitim raunalima su sasvim realne. Na primjer, automatizaciju zatite podataka elite pripremiti na svakom SQL Serveru gdje ste postavili vlastito poslovno rjeenje s osloncem na SQL Server. to je onda najjednostavnije rjeenje za prijenos posla na drugo raunalo? Dovoljno je pripremiti skriptu dovrenog posla (naredba Script Job as iz pripadajueg kontekstnog izbornika) te je spremiti kao datoteku, prenijeti datoteku na drugo raunalo, a onda je ponovo izvesti. Ponekad, to moda nee ii ba tako glatko, jer su postavke drugog raunala i SQL Servera neto drugaije, pa stoga treba napraviti svojevrsno podeavanje skripte. Na primjer, u poslu kojeg smo upravo definirali, zatitne kopije podataka spremaju se u mapu C:\Backup. to ako odredino raunalo nema takvu mapu, a mapa se ne moe ni stvoriti, jer na disku jednostavno vie nema dovoljno mjesta za neto takvo? U tom sluaju ipak treba malo izmijeniti korake posla te ponoviti njegovo testiranje. Drugim rijeima, prijenos poslova izmeu vie raunala esto ne spada ba u automatsku nego prije u "poluautomatsku obradu podataka" - termin koji smo u ali znali korisititi kada neka stvar iz ovog ili onog razloga nije mogla biti dovrena bez male pomoi ovjeka.

neki drugi korak unutar posla, ili vraanje statusa o uspjenom dovretku posla.

Retry attempts
Omoguava ponavljanje odreenog koraka posla zadani broj puta. Izmjena ovog parametra ima smisla samo ako postoji mogunost da se promijene uvijeti koji su onemoguili uspjean dovretak prethodnog pokuaja.

On failure action
Definira to se treba dogoditi ukoliko prethodni korak nije uspio. To moe biti skok na drugi korak unutar posla (svojevrsna obrada nastale pogreke), ili vraanje statusa o neuspjenom dovretku posla. Ostali parametri na kartici slue za uvanje informacija o tijeku izvoenja koraka na razliite naine (u datoteci ili tablici unutar SQL Server baze podataka). O njima e jo biti rijei u slijedeem nastavku. Nakon popunjavanja obiju kartica, moete zatvoriti dijaloki okvir Job Step Properties, jer se posao automatske zatite podataka u ovom sluaju sastoji od jednog jedinog koraka. U sluaju sloenijih poslova jednostavno je potrebno nastaviti sa definiranjem preostalih koraka i meusobnog redoslijeda izvoenja.

Korak 3: Definiranje trenutka u kojem se pokree posao


Nakon definiranja svih koraka nekog posla, dovren je tei dio postupka. Preostaje nam da definiramo trenutak u kojem e SQL Server Agent samostalno pokrenuti definirani posao. Za to se koristi kartica Schedules na dijalokom okviru Job Propereties. Kao i kod definiranja koraka, itav postupak zapoinje od pritiska na New. Popunjavanje dijalokog okvira New Job Schedule, kao rezultata izvoenja prethodne operacije zaista ne bi trebao biti preveliki problem, ako ste barem jednom trebali definirati neki termin za izvoenje zadatka na osobnom raunalu, ili ak mobilnom telefonu. Kljuni parametar je odabir frekvencije ponavljanja posla (Frequency > Occurs). To moe biti mjeseno, tjedno ili dnevno ponavljanje. Ovisno o izabranoj vrsti ponavljanja mogue je definirati dane u tjednu kada treba pokrenuti posao (tjedno ponavljanje), ili dinamiku izraenu u satima za dnevno ponavljanje.

SQL Server 2005 serijal


I podaci imaju reprezentaciju - Vidi 116 Zatita baze podataka - Vidi 117 Logika struktura baze podataka - Vidi 118 Kako voditi brigu o radnicima - Vidi 119 Kreiranje tablica - Vidi 120 Obrada pogreaka - Vidi 121 Uvod u SQL - Vidi 122 Transact-SQL noviteti, I. Dio - Vidi 123 Transact-SQL noviteti, II. Dio - Vidi 124 Transact-SQL noviteti, III. Dio - Vidi 125/126 Transact-SQL noviteti, IV. Dio - Vidi 127 SQL server u telefonu - Vidi 128 SQL server u telefonu II - Vidi 129 Integracija SQL Servera s uredskim alatima - Vidi 130 Optimizacija brzine rada SQL servera - Vidi 131 Optimizacija brzine rada SQL servera II. - Vidi 132 Optimizacija brzine rada SQL servera III. - Vidi 133 Napredne verzije SQL Servera 2005 I - Vidi 134

Korak 4: Definiranje dodatnih karakteristika posla


Dijaloki okvir Job Properties sadri jo tri kartice (Alerts, Notification i Targets), ali za njihovo objaanjavanje nee biti mjesta u ovom nastavku - ne brinite, neemo ih zaboraviti. Ipak, trenutno stanje definiranog posla sasvim je zadovoljavajue u smislu

122

VIDI br. 135 / 2007

WWW.VIDI.HR

You might also like