Professional Documents
Culture Documents
NA VIDI DVD-u
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
declare @Naziv varchar(100) set @Naziv = 'C:backupNorthwind' + @Datum + '.bak' backup database Northwind to disk = @Naziv with init, name = 'Northwind'
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
121
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.
122
WWW.VIDI.HR