82
Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED PODATKOVNIMI BAZAMI Diplomsko delo Maribor, 2016

PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

Smetanova ulica 17

2000 Maribor, Slovenija

Aleš Flajšman

PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED PODATKOVNIMI BAZAMI

Diplomsko delo

Maribor, 2016

Page 2: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO
Page 3: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

i

Smetanova ulica 17

2000 Maribor, Slovenija

Diplomsko delo univerzitetnega študijskega programa

PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV

MED PODATKOVNIMI BAZAMI

Študent: Aleš Flajšman

Študijski program: UN ŠP Računalništvo in informatika

Smer: Informatika

Mentor: izr. prof. dr. Boštjan Brumen, univ. dipl. inž. rač. in inf.

Lektorica: Kaja Horvat, prof. slovenskega jezika in zgodovine

Maribor, junij 2016

Page 4: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

ii

Page 5: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

iii

ZAHVALA

Najprej se z vsem spoštovanjem zahvaljujem mentorju, izr.

prof. dr. Boštjanu Brumnu, za razumevanje, pomoč in

usmeritve pri izdelavi diplomskega dela.

Podjetju Comtron se zahvaljujem za omogočanje testnega

okolja in Marku Budlerju za strokovno pomoč.

Posebno zahvalo si zasluži tudi moja družina, ki mi je študij

omogočila, me podpirala in verjela vame skozi vsa leta

študija.

Zahvaljujem se tudi iskrenim prijateljem, ki so mi vlivali voljo

in nudili moralno podporo. Najlepša hvala vsem!

Page 6: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

iv

PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV

MED PODATKOVNIMI BAZAMI

Ključne besede: Podatkovne baze, replikacija podatkov, MS SQL, Comtron

TRONsync.

UDK: 004.633(043.2)

Povzetek: Zaradi zagotavljanja razpoložljivosti podatkov poslovnim

aplikacijam se je pojavila potreba po prenosu in osveževanju

podatkov na samo napravo odjemalca. Za prenos potrebujemo

orodje, ki zna iz strežniške podatkovne baze replicirati podatke v

klientovo podatkovno bazo in obratno.

V diplomskem delu smo predstavili in primerjali dve orodji, ki

služita temu namenu, replikacijo Microsoft SQL in replikacijsko

orodje Comtron TRONsync. Prikazani so tudi postopki

konfiguracije obeh orodij, izmerjene hitrosti prenosov in

integriteta podatkov.

Ugotovili smo, da obe orodji dobro služita svojemu namenu,

vseeno pa obstajajo določene razlike, zaradi katerih se lažje

odločimo za pravo izbiro. Če potrebujemo hitre prenose proti

odjemalcu in replikacijo med različnimi podatkovnimi bazami,

izberemo TRONsync. Uporabniku bolj prijazno in dodelano pa je

replikacijsko orodje MS SQL.

Page 7: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

v

COMPARISON BETWEEN DATABASE REPLICATION

TOOLS

Keywords: databases, data replication, MS SQL, Comtron TRONsync.

UDK: 004.633(043.2)

Abstract: In order to ensure the availability of data to business

applications, the need for the transmission and the updating of

data directly to the customer's device has arisen. In order to

transfer data, we need a tool that is able to replicate data to the

client's database and vice versa. In this diploma thesis we have

presented and compared two tools that can be used to serve this

purpose; Microsoft SQL replication and Comtron TRONsync

replication tool. We have described the configuration processes

for both of the tools and presented the measured download

speeds and the integrity of data. It was noted that both of the

tools serve a positive purpose, however there are certain

differences that facilitate the choice between them. When one

needs fast data transmission to the subscriber and cross-

platform replication, he should choose TRONsync. MS SQL

replication tool is, however, more user-friendly and

sophisticated.

Page 8: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

vi

KAZALO VSEBINE

1 UVOD ............................................................................................................................................. 1

2 OPREDELITEV BAZE PODATKOV IN SUPB ........................................................................................ 2

2.1 BAZA PODATKOV ................................................................................................................................... 2

2.2 SUPB ................................................................................................................................................. 7

2.2.1 Arhitektura SUPB ......................................................................................................................... 9

3 REPLIKACIJA PODATKOV IN DRUGE REŠITVE SQL- SERVERJA ZA VZDRŽEVANJE RAZPOLOŽLJIVOSTI

PODATKOV ............................................................................................................................................... 10

3.1 PREDSTAVITEV REŠITEV ZA VZDRŽEVANJE RAZPOLOŽLJIVOSTI PODATKOV ......................................................... 10

3.1.1 Strežniška grupa ........................................................................................................................ 10

3.1.2 Skupina za razpoložljivost .......................................................................................................... 11

3.1.3 Zrcaljenje podatkovne baze ....................................................................................................... 12

3.1.4 Prenos transakcijskega dnevnika ............................................................................................... 12

3.2 REPLIKACIJA PODATKOV ........................................................................................................................ 13

3.2.1 Prednosti in slabosti replikacije podatkov ................................................................................. 14

3.2.2 Uporabnost replikacije podatkov ............................................................................................... 15

4 MICROSOFT SQL SERVER ZA REPLIKACIJO PODATKOV .................................................................. 20

4.1 PRILOŽNOSTI IN PREDNOSTI UPORABE REPLIKACIJE PODATKOV MS SQL ......................................................... 20

4.2 REŠITVE IN TIPI REPLIKACIJ V MS SQL ..................................................................................................... 22

4.2.1 »Snapshot« replikacija ............................................................................................................... 25

4.2.2 Transakcijska replikacija ............................................................................................................ 26

4.2.3 »Merge« replikacija (kompozitna replikacija) ........................................................................... 27

4.3 ELEMENTI REPLIKACIJE V REŠITVI MS SQL ................................................................................................ 29

5 REPLIKACIJA PODATKOVNE BAZE COMTRON TRONSYNC ............................................................. 32

5.1 MOŽNOSTI ORODIJ IN KOMPONENTE ....................................................................................................... 32

5.2 OPIS DELOVANJA ................................................................................................................................. 34

5.2.1 Metoda posodobitve podatkov v podatkovni bazi ..................................................................... 35

5.2.2 Paketi TRONsync ........................................................................................................................ 36

5.2.3 Posodobitev podatkov naročnika .............................................................................................. 39

5.3 KONFIGURACIJA .................................................................................................................................. 40

5.4 ZAŠČITA PODATKOV ............................................................................................................................. 41

6 PRIMERJAVA REPLIKACIJ MS SQL IN TRONSYNC ........................................................................... 42

6.1 POSTAVITEV »MERGE« REPLIKACIJE MS SQL ........................................................................................... 42

6.1.1 Nameščanje SQL strežnikov in vzpostavljanje povezave ........................................................... 42

6.1.2 Nameščanje SQL-strežnikov in vzpostavljanje povezave ........................................................... 45

Page 9: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

vii

6.2 POSTAVITEV REPLIKACIJE TRONSYNC ...................................................................................................... 49

6.3 MERJENJE HITROSTI INICIALIZACIJE PODATKOV .......................................................................................... 52

6.4 MERJENJE HITROSTI POSODOBITVE PODATKOV .......................................................................................... 53

6.4.1 Izvajanje sprememb nad podatkovno bazo publicista ............................................................... 54

6.4.2 Izvajanje sprememb na naročnikovi podatkovni bazi ................................................................ 57

6.5 INTEGRITETA PODATKOV ....................................................................................................................... 60

7 SKLEP ........................................................................................................................................... 63

8 BIBLIOGRAFIJA ............................................................................................................................. 64

Page 10: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

viii

KAZALO SLIK

SLIKA 2.1: PRIKAZ MEDSEBOJNE ODVISNOSTI PROCESOV, BAZE PODATKOV IN ZUNANJEGA OKOLJA [3] ..................................... 3

SLIKA 2.2: ARHITEKTURA METAPODATKOVNE BAZE [2] .................................................................................................. 5

SLIKA 2.3: UPORABNIKI PODATKOVNIH BAZ ................................................................................................................. 6

SLIKA 2.4: UPORABNOST IN VEČNAMENSKOST SUPB [8] ............................................................................................... 7

SLIKA 2.5: FUNKCIJE SUPB ...................................................................................................................................... 8

SLIKA 3.1: STRUKTURA STREŽNIŠKE GRUČE [13] ......................................................................................................... 11

SLIKA 3.2: KONCEPT POŠILJANJA TRANSAKCIJSKEGA DNEVNIKA [14] ............................................................................... 13

SLIKA 3.3: PRIMERNOST IZBIRE REPLIKACIJE PODATKOV Z OZIROM NA RTO/RPO [24] ...................................................... 16

SLIKA 4.1: REPLIKACIJA ZA POTREBE IZMENJAVE PODATKOV (POSODOBITEV) MED ODDALJENIMI ENOTAMI [37] ...................... 21

SLIKA 4.2: PRIMER UPORABE REŠITVE ZA REPLIKACIJO V MSSQL [40] ............................................................................ 22

SLIKA 4.3: REŠITEV ZA IZDELAVO POROČIL V OBLIKI REPLIKACIJE PODATKOV [40] ............................................................... 23

SLIKA 4.4: TEHNIKI DODAJANJA PODATKOV [43] ........................................................................................................ 24

SLIKA 4.5: PRINCIP DELOVANJA »SNAPSHOT« REPLIKACIJE [40] .................................................................................... 26

SLIKA 4.6: PRINCIP DELOVANJA TRANSAKCIJSKE REPLIKACIJE [8] .................................................................................... 27

SLIKA 4.7: PRINCIP DELOVANJA »MERGE« REPLIKACIJE [8] ........................................................................................... 28

SLIKA 4.8: KRITERIJI ZA IZBIRO REPLIKACIJE PODATKOV [8] ............................................................................................ 29

SLIKA 4.9: ELEMENTI REPLIKACIJE V MS SQL [35] ..................................................................................................... 29

SLIKA 5.1: KOMPONENTE V REPLIKACIJI TRONSYNC .................................................................................................... 33

SLIKA 5.2: PRIMER XML-PAKETA ZA VNOS ALI POSODOBITEV PODATKOV ........................................................................ 37

SLIKA 5.3: PRIMER XML-PAKETA TIPA IZBRIS ............................................................................................................. 38

SLIKA 5.4: PRIMER VSEBINE DATOTEKE.FMT .............................................................................................................. 39

SLIKA 5.5. UKAZ ZA UVOZ PODATKOV BCP ................................................................................................................ 39

SLIKA 5.6: NASTAVITVENA DATOTEKA SPLETNEGA SERVISA TRONSYNC ........................................................................... 41

SLIKA 6.1: IZBIRA KOMPONENTE, NAMENJENE REPLIKACIJI ............................................................................................ 43

SLIKA 6.2: PRIKAZ PRIPOMOČKA SQL SERVER CONFIGUATION MANAGER ....................................................................... 44

SLIKA 6.3: NASTAVITVE VZDEVKA ZA POVEZAVO NA ODJEMALCA .................................................................................... 44

SLIKA 6.4: POVEZAVA V STREŽNIŠKO IN ODJEMALČEVO PODATKOVNO BAZO Z ORODJEM SSMS ........................................... 45

SLIKA 6.5: POT DO USTVARJANJA NOVE PUBLIKACIJE ................................................................................................... 46

SLIKA 6.6: POT DO USTVARJANJA NOVE SUBSKRIPCIJE .................................................................................................. 47

SLIKA 6.7: VSEBINA DATOTEKE RUNSYNC.BAT ............................................................................................................ 48

SLIKA 6.8: OPAZOVANJE STANJA REPLIKACIJE V REPLICATION MONITORJU ....................................................................... 48

SLIKA 6.9: HIERARHIJA SPLETNEGA STREŽNIKA............................................................................................................ 51

SLIKA 6.10: VNOS PODATKOV ZA POVEZAVO DO NAROČNIKOVE PODATKOVNE BAZE .......................................................... 51

SLIKA 6.11: OKNO ZA ZAGON SINHRONIZACIJE ........................................................................................................... 52

SLIKA 6.12: DEL POROČILA »DISK USAGE BY TOP TABLES« .......................................................................................... 53

Page 11: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

ix

KAZALO TABEL

TABELA 6.1: REZULTATI INICIALIZACIJE NAROČNIKOVE PODATKOVNE BAZE ....................................................................... 53

TABELA 6.2: TRAJANJE PRENOSOV NA KLIENTA IZ VSEH KORAKOV ................................................................................... 56

TABELA 6.3: REZULTATI PRENOSOV NA STREŽNIK ........................................................................................................ 59

TABELA 6.4: REZULTATI MERJENJA INTEGRITETE PODATKOV .......................................................................................... 62

KAZALO SQL-UKAZOV

SPREMEMBA PODATKOV 6.1: SPREMEMBA NA VSEH ZAPISIH ........................................................................................ 54

SPREMEMBA PODATKOV 6.2: SPREMEMBA SAMO DOLOČENIH ZAPISOV .......................................................................... 54

SPREMEMBA PODATKOV 6.3: VEČKRATNA SPREMEMBA ISTIH ZAPISOV NA RAZLIČNIH POLJIH ............................................... 55

SPREMEMBA PODATKOV 6.4: VEČKRATNA SPREMEMBA ISTIH ZAPISOV NA ISTEM POLJU ..................................................... 55

SPREMEMBA PODATKOV 6.5: SPREMEMBA ENEGA POLJA ISTIH ZAPISOV .......................................................................... 55

SPREMEMBA PODATKOV 6.6: DODAJANJE ZAPISOV ..................................................................................................... 55

SPREMEMBA PODATKOV 6.7: BRISANJE ZAPISOV ........................................................................................................ 56

SPREMEMBA PODATKOV 6.8: VNOS ZAPISOV ............................................................................................................. 58

SPREMEMBA PODATKOV 6.9: SPREMEMBA ZAPISOV ................................................................................................... 58

SPREMEMBA PODATKOV 6.10: IZBRIS ZAPISOV ........................................................................................................... 59

Page 12: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

x

Seznam uporabljenih kratic

BCP – Bulk Copy

CCD – Consistent change data

CD – Change data

DDL – Data Definition Language

DML – Data Manipulation Language

FRI – Fakulteta za računalništvo in informatiko

HPM – High Performance Module

HSM – High security Module

HTTPS – HyperText Transfer Protocol Secure

IIS – Internet Information Services

LOB – Large Object

LUN – Logical Unit Number

MS – Microsoft

NRT – Near Real-Time

PB – Podatkovna baza

POS – Point Of Sale

RM – Replication Management

RPO – Recovery Point Objective

RTO – Recovery Time Objective

SAN – Storage area network

SQL – Structured Query Language

SSD – Solid State Drive

SSL – Secure Sockets Layer

SSMS – SLQ Server Management Studio

SUPB – Sistem za upravljanje s podatkovno bazo

TCP/IP – Transmission Control Protocol/Internet Protocol

VPN – Virtual Private Network

XML – Extensible Markup Language

Page 13: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

1

1 UVOD

Dandanes si ne moremo privoščiti, da neka mobilna ali namizna poslovna aplikacija ne bi

bila uporabna samo zato, ker nimamo povezave do spletnega ali delovnega omrežja.

Podatki, potrebni za poslovanje, morajo biti v določenih primerih dosegljivi vedno, kar

pomeni, da jih moramo shraniti na samo napravo. Ena izmed možnosti zagotavljanja

dostopnosti podatkov je replikacija.

Martin James [1] pravi, da se za replikacijo podatkov podjetja ali posamezniki odločajo

predvsem zaradi večje dostopnosti podatkov na različnih strežnikih, saj je koristna v primeru

motenj delovanja (izpadov), prav tako pa zagotavlja hiter dostop do potrebnih podatkov,

kajti večje število strežnikov prispeva pomnilnik za hitrejšo izvedbo transakcij v določenem

času.

Podatki sodobnih aplikacij so navadno shranjeni v podatkovnih bazah, zato govorimo o

orodjih za prenos podatkov med podatkovnimi bazami. Razvitih je nekaj orodij za

repliciranje podatkov. Odločili smo se, da v diplomskem delu opišemo, analiziramo in

primerjamo dve. Eno izmed rešitev ponuja Microsoft – Microsoft SQL Replication Tool je

orodje, ki omogoča več tipov repliciranja podatkov med podatkovnimi bazami MS SQL.

Drugo orodje, TRONsync, smo razvili v podjetju Comtron. Uporablja se pri prenosu

podatkov med podatkovnimi bazami v POS-sistemu, možno pa ga je uporabiti tudi v

katerem drugem okolju. Zanimivost tega orodja je, da omogoča sinhronizacijski prenos, ne

samo med MS SQL-podatkovno bazo, ampak tudi med MS SQL in SQLite PB.

Najprej smo opredelili podatkovne baze in sisteme za upravljanje s podatkovnimi bazami

(SUPB). Raziskali smo možnosti vzdrževanja dostopnosti podatkov in opisali različne

načine repliciranja le-teh. Podrobneje smo analizirali orodji SQL Replication in TRONsync.

Implementirali smo testno okolje in namestili obe orodji. Sledili so testi prenosa podatkov iz

strežnika in nanj. Na različne načine smo spreminjali podatke podatkovne baze in pri tem

merili hitrost prenosa in pravilnost podatkov.

Page 14: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

2

2 OPREDELITEV BAZE PODATKOV IN SUPB

2.1 Baza podatkov

Baza podatkov nudi možnost zbiranja večje količine podatkov na enem mestu. To nam

omogoča, da se na bodisi podatke bodisi dokumente znotraj baz navzkrižno sklicujemo, jih

urejamo, vrednotimo oz. razvrščamo, brskamo po njih in med njimi ter iščemo niz podatkov,

ki ga potrebujemo. Craig in Buchanan [2] menita, da kvalitetna podatkovna baza sestoji iz

treh ključnih lastnosti: fleksibilnosti, logičnosti in ustreznega metodološkega pristopa

(principa).

Poleg tega izpolnjuje naslednje pogoje:

jedro oz. strukturo baze podatkov je možno kasneje spremeniti z ozirom na

drugačne zahteve;

tabele so razdeljene in umeščene smiselno, povezave med njimi pa so ustrezne in

logične glede na možnosti poizvedb;

baza podatkov zahteva minimalno obremenitev pomnilnika in prostora na mediju ter

deluje učinkovito.

Baza podatkov mora torej nuditi:

takojšen priklic informacij;

učinkovit in takojšen transfer podatkov;

precizno ter takojšnjo obdelavo želenih podatkov.

Podatkovna baza je abstrakcija »ekosistema« podjetja ali določene organizacije in ponuja

temelj za sprejemanje odločitev oz. izvršitev procesov. Mohorič meni, da s podatkovno bazo

vzpostavimo in definiramo relacijo med posameznikom (zaposlenim ali stranko) in zunanjim

okoljem (Slika 2.1) [3].

Page 15: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

3

Slika 2.1: Prikaz medsebojne odvisnosti procesov, baze podatkov in zunanjega okolja [3]

Z vzpostavljanjem obojesmerne povezanosti med zunanjim okoljem in entiteto v obliki

bodisi posameznika bodisi celotne organizacije baza podatkov omogoča:

zapis aktivnosti iz okolja na način, ki osveži obstoječe podatke v podatkovni bazi;

subjektivno ovrednotenje podatkov v bazi zaposlenih s pomočjo njihovega znanja

in izvajanje oz. iniciiranje aktivnosti v okolju organizacije glede na lastno

razumevanje (znanje);

možnost začetka iniciacije določenega procesa s pomočjo računalniške obdelave

podatkov;

da, aktivnosti oz. procesi, ki se zaženejo, potekajo v organizacijskem ali zunanjem

okolju, zato se podatki o teh prenesejo in shranijo v podatkovni bazi;

zapis podatkov, ki so esencialnega pomena, da posameznika zgolj spodbudijo oz.

usmerijo k pravim podatkov, s katerimi lahko izvede nadaljnje akcije.

Omeniti velja tudi temeljni sektor podatkovne baze, tj. podatkovni del, ki ga običajno

razmejujeta fizična in metapodatkovna baza. Prva predstavlja hrambo podatkovnih

vrednosti, ki definirajo karakteristike objektov v formuliranem okolju, medtem ko se v meta-

podatkovnem tipu podatkovne zbirke hranijo zapisi o fizičnih podatkih – o tem, na kakšen

Page 16: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

4

način so shranjeni, kaj predstavljajo in kako lahko uporabniki sistema do njih dostopajo,

dodaja Mohorič [3]. Tako fizični kot metapodatkovni segment podatkovne baze hranimo v

eksternem pomnilniku celotnega informacijskega sistema, oba sta zakodirana v datotekah,

v zapisu, katerega berljivost podpira izbran operacijski sistem.

Sistemi za upravljanje s podatkovnimi bazami (SUPB) dostopajo do shranjenih datotek na

osnovi nameščenega operacijskega sistema, saj le-ta omogoča uporabo SUPB na več

računalnikih ali informacijskih sistemih – ob pogoju, da je na vseh nameščen enak

operacijski sistem. Nekateri SUPB imajo možnost direktnega dostopa do hrambe podatkov

(pomnilnika), kar izniči potrebo po nameščanju operacijskega sistema, saj SUPB sam izvaja

branje in pisanje datotek, po potrebi pa disk tudi formatira. Glavna prednost takšnega

koncepta je, da neposredni dostop zniža odzivni čas SUPB in v celoti skrajša potreben čas

za izvajanje poizvedb.

Metapodatkovno bazo sestavlja trinivojska struktura, saj vsebuje tri tipe opisov podatkov iz

fizičnega segmenta podatkovne baze. Arhitekturo metapodatkovne baze tako tvorijo (Slika

2.2):

notranja shema;

konceptualna shema;

zunanja shema.

Page 17: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

5

Slika 2.2: Arhitektura metapodatkovne baze [2]

Baloh in Vrečar [4] menita, da je hierarhično urejena arhitektura v obliki treh nivojev

ustvarjena zato, da se loči fizična hramba podatkov (notranja shema) od konceptualne

sheme, ki predstavlja oris zunanjega okolja, ter od zunanje, ki pomeni uporabo podatkov.

Fizična podatkovna zbirka oz. podatki, ki jih hrani, so lahko razvrščeni v 4-nivojsko

strukturo, ki se zunaj podatkovne baze odraža kot sklop fizičnih datotek v eksternem disku.

McDonald vidi pomen večnivojske arhitekture pri vpogledih posameznikov, ki ne zaznajo

sprememb na konceptualni ali notranji shemi, razen takrat, ko vpisujejo, moderirajo ali

brišejo trenutne vnose podatkov v bazi [5]. Uporabniki podatkovnih zbirk so vsi

posamezniki, ki imajo stik z bazo. Delimo jih na:

neposredne uporabnike (dostopajo do podatkovne zbirke preko informacijskega

sistema);

posredne uporabnike (običajno zaposleni v operativnem managementu ter

posredujejo informacije in zahteve po poizvedbi neposrednim uporabnikom, ki nato

izvedejo poizvedo ali druge spremembe v podatkovni bazi) [3].

Neposredni uporabniki, ki dostopajo do podatkovnih baz pogosto in se njihovi kriteriji za

poizvedbe precej razlikujejo, običajno uporabljajo določen povpraševalni jezik, med katerimi

je najbolj pogosto uporabljan in najbolj poznan SQL. Običajni (neposredni in posredni)

Page 18: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

6

uporabniki morajo poznati osnove tega jezika in podatkovnih baz, medtem ko tretja skupina

uporabnikov, programerji, pišejo programe in programske vmesnike za ostali skupini

uporabnikov in jim s tem olajšajo dostop oz. uporabo podatkovnih baz (Slika 2.3).

Slika 2.3: Uporabniki podatkovnih baz

Zadnjo skupino uporabnikov predstavlja upravitelj podatkovne baze. Njegove temeljne

zadolžitve so:

opredelitev ter osvežitev notranjega, zunanjega in konceptualnega nivoja;

ustvarjanje in zagon fizične podatkovne zbirke;

spodbujanje razvoja in posodobitev programske opreme, ki omogoča delo

neposrednim uporabnikom in programerjem;

urejanje varnostnih pogojev v primeru nezgod in obnovitev podatkovnih baz po

nezgodah;

opredelitev procesa za zagotavljanje kvalitete podatkovne zbirke;

upravljanje z gesli in dovoljenji, ki jih dodeljuje uporabnikom;

kontroliranje dostopa do podatkovne baze in njene zmogljivosti ter modifikacije;

pomoč uporabnikom pri koriščenju programskega orodja, ki je v paketu SUPB [6].

Page 19: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

7

2.2 SUPB

SUPB predstavlja programsko okolje, ki s pomočjo ustreznega »uporabniškega vmesnika«

običajnim uporabnikom omogoča dostop do okolja, ki nudi hrambo podatkov, potrebnih za

poizvedovalca [7]. Opredelitev FRI Univerze v Ljubljani je naslednja: »S SUPB razumemo

programski sistem, ki omogoča učinkovito, uporabnikom prijazno in zaščiteno

večuporabniško okolje, ki nudi shranjevanje, dostop in vzdrževanje večjih količin

medsebojno povezanih podatkov, shranjenih na trajnem pomnilniku. SUPB odlikuje dejstvo,

da je to programska oprema, ki je nepovezana z aplikacijami in na osnovi katere je

implementiran podatkovni model.« Slika 2.4 prikazuje, na katerih področjih je SUPB

uporabna.

Slika 2.4: Uporabnost in večnamenskost SUPB [8]

SUPB načeloma sestoji iz več različnih programskih orodij, s katerimi lahko v podatkovni

zbirki izvajamo naslednje akcije (Slika 2.5):

poizvedbo po podatkih;

izbris podatkov;

shranjevanje novih vnosov podatkov;

ustvarjanje nove podatkovne baze ali tabele;

modifikacijo obstoječih vnosov;

dodeljevanje dovoljenj, oz. upravljanje dostopa uporabnikov.

Page 20: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

8

Slika 2.5: Funkcije SUPB

Ustvarjanje podatkovnih struktur, kakršni sta tabela in baza, omogoča modul DML (Data

Manipulation Language), medtem ko so spremembe, posodobitve in upravljanje z

dostopom mogoče zaradi modula DDL (Data Definition Language). Statistika pravi, da je

podatkovna baza v skoraj 70 % primerov identična za vse njene uporabnike, zato je

natančna opredelitev dovoljenj in dostopa esencialnega pomena za njeno upravljanje [9].

Baloh in Vrečar [4] dodajata, da mora del SUPB predstavljati tudi varnostni mehanizem, ki

nepooblaščenim uporabnikom onemogoča vnos, izbris ali spremembo vnesenih podatkov.

SUPB lahko vodimo preko povpraševalnega jezika SQL. Mrhar [10] k temu dodaja, da

lahko za izboljšano uporabniško izkušnjo uporabljamo grafične vmesnike.

Page 21: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

9

2.2.1 Arhitektura SUPB

Z arhitekturo lahko prikažemo strukturo SUPB, pri čemer je potrebno opozoriti, da se le-ta

razlikuje glede na avtorja konstrukta. Werber [11] omenja naslednje logične enote SUPB:

zunanji vmesnik (orodje, ki omogoča dvosmerno izmenjavo informacij s SUPB, tako

da se lahko izvedejo vse potrebne aktivnosti na podatkovni bazi – opredelitev

podatkovnih tipov, raven varnosti ali pa aktivnosti za upravljanje SUPB –

vzpostavitev podatkovne zbirke po nezgodah, »backup« podatkov itd.);

jezikovni procesi podatkovnih zbirk (osrednji del podatkovne baze, saj se večina

procesov izvede z izrazi v povpraševalnih jezikih (kot je SQL), obenem pa premosti

nerazumevanje med izrazi uporabnika in izrazi, potrebnimi za izvedbo operacij

preko SUPB);

optimizator povpraševanj (orodje, namenjeno racionalni izvedbi povpraševanja, kar

pomeni, da pri uporabnikovi poizvedbi izvede najugodnejši niz operacij, potreben za

določeno aktivnost);

pogon podatkovne baze (mesto, kjer se izvedejo potrebne aktivnosti izpod ukazov

podatkovne zbirke);

skladiščni pogon (služi za prevod aktivnosti na operativni nivo v t. i. bite);

transakcijski pogon (zagotavlja preciznost in zanesljivost izvedenih aktivnosti znotraj

SUPB, tako da operacije grupira v t. i. transakcije);

upravljavska konzola SUPB in operativna izvedba (vključuje številne elemente in

orodja, ki skupaj omogočajo upravljanje SUPB, zaščitno, »backup«, nadzor

podatkov in dodeljevanje dostopa ustreznim uporabnikom).

Page 22: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

10

3 REPLIKACIJA PODATKOV IN DRUGE REŠITVE SQL- SERVERJA ZA VZDRŽEVANJE RAZPOLOŽLJIVOSTI PODATKOV

Poleg replikacije podatkov, ki jo natančneje predstavljamo v nadaljevanju poglavja,

obstajajo še vsaj štirje dobro poznani principi vzdrževanje razpoložljivosti podatkov oz.

podatkovnih zbirk – vse omogoča Microsoftova platforma SQL Server. Po krajši predstavitvi

principov vzdrževanja razpoložljivosti podatkov oz. podatkovnih zbirk se bomo osredotočili

na replikacijo podatkov, ki je osrednja tema diplomskega dela. Rešitve za vzdrževanje

razpoložljivosti podatkov se lahko delijo glede na stopnjo in način delovanja [12].

Glede na prvi kriterij ločimo rešitve, ki delujejo na nivoje celotnega koncepta (instance) SQL,

in rešitve, ki so na stopnji individualne podatkovne baze. Pri slednjem načinu delovanja bo

rešitev za vzdrževanje razpoložljivosti podatkov razpolagala samo s podatki, ki so v dani

podatkovni zbirki. Glede na način funkcioniranja pa lahko rešitve za zagotavljanje oz.

vzdrževanje visoke razpoložljivosti podatkovnih zbirk oz. podatkov razdelimo na rešitve na

osnovi deljenja podatkovnih baz med strežniki in rešitve, ki replicirajo podatkovne baze med

strežniki.

3.1 Predstavitev rešitev za vzdrževanje razpoložljivosti podatkov

3.1.1 Strežniška grupa

Goswami [13] opredeljuje strežniško gručo kot sklop neodvisnih strežnikov, ki komunicirajo

na osnovi mrežne opreme in programskega orodja, ki omogoča zagotavljanje

razpoložljivosti funkcij, integriranih v strežniško gručo. Sklop strežnikov v gruči omogoča

zagotavljanje instance SQL-serverja, ta storitev oz. funkcija pa je s strani strežnikov prav

tako stalno kontrolirana. V kolikor je njeno delovanje moteno (nezgoda oz. motnje

delovanja), se funkcija strežniške gruče ponovno vzpostavi samodejno, ali pa se njeno

delovanje nadaljuje na sosednjem strežniku v gruči.

Schmidt [12] dodaja, da je pogoj za vzpostavitev delovanja SQL-strežniške gruče tudi

ustrezno diskovno polje, ki mora biti omrežno (SAN). Pri tej vrsti diskovnega polja

razpolagamo z več logičnimi diskovnimi enotami (LUN), ki predstavljajo mrežo več

povezanih trdih diskov. Strežnik LUN zazna kot en fizični disk, na katerem so zbrani podatki

iz podatkovne baze. Minimalni pogoj za obstoj strežniške gruče je en računalnik, čeprav je

zaželeno, da jo sestavljata najmanj dva strežnika (Slika 3.1), s čimer zagotovimo zadostno

Page 23: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

11

mero zanesljivosti delovanja strežniške gruče. Strežniško gručo odlikujeta robustnost in

visoka stopnja učinkovitosti delovanja, medtem ko je čas izpadov bodisi zaradi vzdrževanja

bodisi zaradi motenj delovanja minimalen. Strežniška gruča deluje samostojno in

avtomatizirano, zato je vsakršno delo s to rešitvijo precej poenostavljeno, vendar je toliko

bolj zahtevna implementacija rešitve in zagotavljanje omrežnega diskovnega polja. Slabost

le-tega je tudi slabše varovanje podatkov pred izpadom delovanja ter neželenim izbrisom

ali vnosom podatkov.

Slika 3.1: Struktura strežniške gruče [13]

3.1.2 Skupina za razpoložljivost

Skupina za razpoložljivost izhaja iz strežniške gruče, ki omogoča vodenje in dostop do vseh

serverjev, vključenih v skupino za razpoložljivost. Le-ta predstavlja nadgradnjo zrcaljenja

podatkovnih zbirk, do nje pa dostopa t. i. poslušalec, ki je računalniški element s svojo

domeno, shranjen v hitrem pomnilniku celotnega sistema. Poslušalec zapisuje dogodke na

posebnem strežniku in s tem drugim, ki dostopajo, omogoča pristop k primarni repliki. Poleg

primarne obstaja še sekundarna replika, obe pa lahko zamenjata vlogo pri preklopu med

replikama, kar se zabeleži v poseben domenski server [14].

Skupino za razpoložljivost tvori 5 medsebojno povezanih replik, pri čemer je ena primarna,

ostale pa hierarhične, sekundarne, namenjene zgolj hrambi varnostne kopije podatkov in

zagotavljanju dostopa za potrebe branja in prepisovanja. Ena replika je en strežnik, ki lahko

Page 24: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

12

gosti eno ali več instanc SQL-serverja. Instanca nudi podporo za eno ali več skupin

razpoložljivosti, slednje pa ponujajo prostor več podatkovnim bazam. Baze podatkov se

hranijo na fizičnem trdem disku strežnika, zato pri tem konceptu ni potrebno omrežno

diskovno polje (SAN), kot je bilo to pri strežniški gruči. Za razliko od strežniške gruče deluje

skupina za razpoložljivost izključno na stopnji podatkovne baze, vendar je teh lahko več in

skupaj tvorijo sklop podatkovnih zbirk.

3.1.3 Zrcaljenje podatkovne baze

Zrcaljenje podatkovne zbirke omogoča zagotavljanje dveh kopij baz podatkov na dveh

ločenih strežnikih. Primarna, produkcijska kopija je aktivna in se nahaja na glavnem

strežniku, medtem ko se zrcalna kopija hrani na zrcalnem strežniku. Vnos, izbris in

spremembe podatkov v bazi podatkov na glavnem strežniku se preslikajo na kopijo zbirke

v zrcalnem strežniku. Tudi zrcaljenje podatkovne zbirke deluje na nivoju ene baze, a za

nemoteno delovanje potrebuje vsaj dva strežnika z instanco SQL [15].

Zaželen je kontrolni (upravljavski) strežnik, ki vsebuje aktivno instanco SQL. Čas uporabe

kontrolnega strežnika je odvisen od nastavitev in funkcionalnosti zrcaljenja podatkovnih

zbirk. Dostop do glavnega in zrcalnega strežnika je zagotovljen s pomočjo povezovalnega

sklopa, v katerega uporabnik zabeleži glavni in zrcalni strežnik ter si tako zagotovi dostop

v primeru nedelovanja enega ali drugega. Zrcaljenje podatkovnih zbirk lahko deluje na:

način visoke varnosti (HSM);

način visoke zmogljivosti (HPM).

3.1.4 Prenos transakcijskega dnevnika

Sack in Mishra [16] definirata prenos transakcijskega dnevnika kot koncept, ki deluje na

stopnji baze podatkov in omogoča avtomatizirano podvajanje transakcijskega dnevnika za

potrebe varnosti in zavarovanja pred motnjami delovanja. Prenos transakcijskega dnevnika

oz. ustvarjanje varnostnih kopij zahteva samostojno vodenje vsake baze podatkov in deluje

ob najmanj dveh strežnikih, med katerima mora biti mrežna povezava, namenjena prenosu

podatkov, ključnih za zagotavljanje prenosa transakcijskega dnevnika.

V rešitev prenosa transakcijskega dnevnika je možno vključiti še en strežnik, ki je namenjen

kontroli in upravljanju drugih strežnikov v sklopu rešitve prenos transakcijskega dnevnika.

Temu nadzornemu strežniku lahko ostali strežniki integrirani v rešitev pošiljajo zapis

delovanja in osnovo za ustvarjanje varnostnih kopij. Najbolj pogosta je rešitev (Slika 3.2),

Page 25: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

13

ki koncipira prenos transakcijskega dnevnika na osnovi dveh sekundarnih replik, kontrolnim

strežnikom in opcijskim strežnikom za hrambo varnostnih kopij podatkov. Nastavimo lahko

omejen bralni dostop za uporabnike sekundarne replike baze podatkov, zakasnitev pri

prenosu podatkov pa nam daje možnost, da na primarni bazi podatkov odpravimo

morebitne nevšečnosti. Prenos transakcijskega dnevnika je sicer ugodna rešitev za

vzdrževanje razpoložljivosti podatkov, vendar ne ponuja avtomatskega prestopa na

sekundarni strežnik, če pride do motenj delovanj zaradi dostopnih dovoljenj.

Slika 3.2: Koncept pošiljanja transakcijskega dnevnika [14]

3.2 Replikacija podatkov

Replikacija označuje dve aktivnosti, povezani s podatkovnimi elementi, kopiranje ter

zagotavljanje vnosov, tabel in drugih povezav med zbirkami podatkov, ki konstruirajo

informacijski sistem. Martin James [1] dodaja, da se podjetja ali posamezniki odločajo za

replikacijo podatkov predvsem zaradi večje dostopnosti podatkov na različnih strežnikih, saj

je koristna v primeru motenj delovanja (izpadov), prav tako pa zagotavlja hiter dostop do

potrebnih podatkov, saj večje število strežnikov prispeva pomnilnik za hitrejšo izvedbo

transakcij v določenem času.

Podatkovne zbirke, ki jih repliciramo, so običajno shranjene na oddaljenih in nepovezanih

računalniških sistemih, kajti replikacija je v osnovi namenjena zagotavljanju potrebnih

podatkov na različnih lokacijah. Replikacija je proces, v katerem pride do kopiranja izbranih

Page 26: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

14

vnosov podatkov iz mesta izvora na ciljno mesto, pri tem pa se izvede sinhronizacija med

obema lokacijama. Čeprav sta običajno ločena, je teoretično možno, da se izvorno in ciljno

mesto nahajata na istem sistemu [17].

Replikacijo lahko razumemo kot proces kopiranja in ohranjanja elementov baze v več

zbirkah podatkov. Spremembe se izvedejo na izvornem mestu, kopirajo, začasno shranijo

lokalno in nato prenesejo na dislocirano mesto (ciljno mesto). Poleg tega, da replikacija

odjemalcem ponuja možnost hitrega dostopa do podatkov, koristi tudi aplikacijam, tako da

jim poveča dostopnost zaradi večjega števila virov podatkov [18]. Replikacija z ustvarjanjem

omrežnega segmenta (več dostopnih mest do podatkov) omogoča hitrejši dostop do

podatkov na račun možnosti opravljanja večjega števila transakcij. V te omrežne segmente

je možno dodati strežnik, tako da lahko izvajamo replikacijo podatkov med dislociranimi

enotami in zadostimo potrebam večjega števila odjemalcev. S takšnim povezovanjem

zmanjšamo potrebno število strežnikov in uredimo dostop do baz podatkov, medtem ko

replikacija omogoča enotnost podatkov v vseh podatkovnih zbirkah na ločenih sistemih.

3.2.1 Prednosti in slabosti replikacije podatkov

Ustrezno implementiran proces replikacije podatkov lahko v organizacijah in njihovem

poslovanju omogoča naslednje prednosti:

hiter in zanesljiv dostop do podatkov (replikacija mora biti celovita, natančna in mora

onemogočati napake med procesi v poslovanju);

trajen in kontinuiran prenos podatkov (ob tem je potrebno zagotoviti varnost in

ustrezen dostop uporabnikom);

izboljšane zmogljivosti informacijskih sistemov (replikacija lahko bolje izkoristi

možnosti distribucijske mreže, ne sme ovirati vira podatkov, temveč mora ponujati

rešitve za optimizacijo pri dostopu do podatkov);

poenostavljeno centralizirano upravljanje (pri tem mora biti upravljavec usposobljen

skrbeti za vse dislocirane komponente iz enega strežniškega mesta);

heterogeni pristop k zagotavljanju informacij (replikacija podatkov je lahko izvedena

tako, da prenaša podatke skozi različne aplikacije več proizvajalcev);

samostojno delovanje dislociranih enot (vsako mesto, ki prejema podatke od

replikacije, lahko poljubno izbira, katere podatke želi prejemati, kako naj se

prikazujejo in na kakšen način bodo do njih dostopalo oz. jih spreminjalo) [19].

Rankins in drugi [20] menijo, da je ključna odlika replikacije dostopnost do podatkov, v

kolikor neha delovati eden od strežnikov. Odjemalci so nemudoma in enostavno

Page 27: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

15

preusmerjeni k drugemu (običajno najbližjemu) strežniku, zato izpada ali motenj delovanja

sploh ne zaznajo. Vse, kar se lahko zgodi v primeru motenj delovanja, je zgolj podaljšan

dostopni čas. Avtorji pravijo, da je ogromna prednost pri uporabi replikacije podatkov

lokalna dosegljivost podatkov, saj se čas dostopa tako občutno zreducira. Odjemalci

dostopajo do repliciranih baz na samostojnih enotah, zaradi česar je tudi celotno omrežje

manj obremenjeno, kar pohitri in izboljša delovanje drugih aplikacij.

Prav očitnih slabost replikacija podatkov nima, vendar obstajajo določene situacije, v katerih

morda ne želimo posegati po tem konceptu. V nadaljevanju navajamo nekaj situacij, v

katerih replikacija ni najbolj primerno orodje:

replikacija prinese številne spremembe, tako na programski kot tudi strojni opremi,

nekatere aplikacije pa niso prirejene za delovanje s spreminjanjem zapisov, ampak

samo vnašanjem novih, kar lahko privede do konfliktov;

izziv je zagotavljati trajen in kontinuiran prenos podatkov, saj aplikacije, ki so

povezane z realnimi časovnimi podatki (vrednost delnic, rezervacije kart, sledljivost

pisemskim pošiljkam itd.), razpolagajo s podatki, ki se lahko izgubijo med

sinhronizacijo po replikaciji;

spremembe na podatkih se morajo nemudoma prenesti do vseh odjemalcev, kar

nekatere aplikacije, ki zahtevajo nenehne posodobitve, težko dosegajo;

odjemalci ne smejo preveč obremeniti SUPB zaradi lastnosti primarne baze in

repliciranih baz ter nezadostnega pomnilnika, ki je na voljo določenim uporabnikom;

koristnost replikacije omejuje tudi podvajanje podatkov samo po sebi, saj morajo

vse replicirane zbirke podatkov vsebovati vse podatke, ki jih lahko najdemo v

katerikoli izmed repliciranih podatkovnih baz;

pomanjkljivost lahko predstavlja zahtevno skrbništvo in izmenjava podatkov

(sporočil) med bazami podatkov, ki smo jih replicirali [21].

3.2.2 Uporabnost replikacije podatkov

Replikacija je avtonomni koncept, ki je povezan v arhitekturo SUPB (v njej prednjačijo MS

SQL Server, DB2, Oracle itd). Če izvedemo osnovno namestitev programskega okolja (npr.

MS SQL Server), orodje replikacije ne bo aktivno, saj njegova uporaba ni pogosta, vendar

je narejen tako, da se ob iniciaciji replikacije avtomatsko zažene. Čeprav replikacija ne

predstavlja velike potrebe po virih pomnilnika in operacijskega sistema, je le-tega vseeno

priporočljivo nadzirati, da ne bi prišlo do motenj delovanja.

Page 28: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

16

Replikacija temelji na fizičnem podatkovnem modelu, ki ga integriramo v celotno

podatkovno zbirko. V praksi to predstavlja kreiranje pripadajočih objektov, kot so tabele in

baze, ostalih indeksov in dodatnega tabelaričnega prostora. Ko imamo to urejeno, se lahko

začne ustvarjanje opredelitev in pogojev replikacije, ki bazirajo na vnosih v tabelah. Tako

izvorno mesto replikacije kot tudi ciljno mesto (sistem) imata svoj zapisnik, ki predstavlja

zbirko tabel z vsemi informacijami o repliciranih podatkih. Iz Database Replication [22] lahko

razberemo, da lahko posamezni strežnik v mreži samodejno in samostojno replicira

elemente na osnovi pridobljenih informacij iz tega zapisnika.

Replikacija podatkov zaradi svojih prednosti prednjači pred ostalimi metodami vzdrževanja

razpoložljivosti podatkov, saj v ospredje postavlja aplikacije, visoko zmogljivost in hiter ter

stalen dostop po podatkov. Yair in Ciprian [23] dodajata, da je potrebno zagotoviti

konsistenco med vsemi repliciranimi bazami, kar je običajno največji izziv replikacije. Ko

razmišljamo o replikaciji in drugih metodah zagotavljanja visoke razpoložljivosti podatkov,

moramo določiti kazalnika RPO (Recovery Point Objective) in RTO (Recovery Time

Objective). RPO predstavlja parameter, ki meri starost posodobljenih ali obnovljenih

podatkov, medtem ko RTO pomeni čas, ki je na razpolago za obnovitev podatkov po

nezgodi oz. motnji delovanja. Na podlagi teh dveh parametrov premislimo, kakšen koncept

je za nas najbolj zaželen (Slika 3.3).

Slika 3.3: Primernost izbire replikacije podatkov z ozirom na RTO/RPO [24]

Page 29: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

17

O replikaciji kot rešitvi za vzdrževanje razpoložljivosti podatkov je smiselno premisliti tudi,

ko imamo precej razvejano mrežo, saj tako težje dostopamo do želenih podatkov [25]. V

takšnih primerih lahko zagotovimo nemoteno delovanje zgolj, če prenesemo določene

podatke lokalno do odjemalcev. Replikacija odjemalcem poveča dostopne čase v primerih,

ko so aplikacije narejene za večje število uporabnikov.

Zaradi repliciranih podatkov in podatkovne zbirke omogočimo delo več odjemalcem na

dislociranih mestih – čeprav so replicirane baze medsebojno oddaljene, omogočajo

medsebojno sinhronizacijo v doglednem času. Ob večanju mreže in dislociranih mest

repliciranih baz je potrebno imeti v mislih usklajenost replikacije s celotnim programskim

okoljem. Večje, tj. sistemske spremembe v okolju, bi lahko rezultirale v nekompatibilnost z

repliciranimi bazami in povzročile motnje v delovanju. Ko pride do sprememb samih v

podatkovni bazi, se beleži zapisnik, preko katerega se nato izvede zapis v tabele (faza

zajemanja), ki mu sledi faza dodajanja – ta preveri vnose in izvede spremembe na ciljnem

mestu tako, da je zagotovljena konsistenca [26].

Največ nevšečnosti pri replikaciji lahko povzroči prekinitev mrežnih povezav ali elementov,

zaradi česar se pri replikaciji običajno poslužujemo bolj zmogljive tehnike hrambe in

prenosa podatkov. Podatki se prenašajo kadarkoli so lokalno oddaljene enote aktivne in

dostopne. Če je dislocirana enota nedosegljiva, se spremembe in podatki shranijo, dokler

ni povezava ponovno vzpostavljena – procesu se reče avtomatična sinhronizacija. Ostale

enote in aplikacije lahko med nedelovanjem enega ali več sistemov še naprej opravljajo

operacije s pridobljenimi podatki [19].

Oviro pri replikaciji lahko predstavlja tudi t. i. propagacija, ki povzroči zakasnjen prenos

podatkov in s tem zakasnitev. Prav tako moramo biti pozorni na to, da ne prepletamo

recipročnih tabel s potekom replikacije podatkov, saj le-te predstavljajo elemente v SUBP,

poleg tega lahko motijo zmogljivosti namenskih programov za strojno opremo, ki ne beležijo

zapisov. Nekaj časa po opravljenem prenosu se izvede propagacija (generiranje

sprememb), za katero se lahko uporabijo različne metode izvedbe.

Daudjee in Salem [27] analogno z logističnimi metodami navajata princip FIFO, kar pomeni,

da sprememba, ki se izvede prva, pride na vrsto prva – tako proces kar se da poenostavimo

in ga naredimo robustnega. Metodologija FIFO pri transkripciji podatkov omogoča izvedbo

novih vnosov, modifikacije in morebitno brisanje brez uporabe zajemanja. Če bi prišlo do

motenj delovanja, bi se proces nadaljeval nemoteno, le posamezni vnosi bi postali

nedosegljivi.

Večina proizvajalcev storitev SUBP že ponuja lastne rešitve za replikacijo, proizvajajo pa

jih tudi tisti, ki se ne ukvarjajo s SUPB. Pomembno je, da je implementacija rešitev za

Page 30: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

18

replikacijo izvedena strokovno in resno ter zajema vse potrebne elemente. Enostavne

konfiguracije s prilagodljivim uporabniškim vmesnikom so sicer priročne, vendar ne

ponujajo vseh rešitev in ne bodo zadovoljile vseh potreb podjetja. Pri implementaciji rešitve

za replikacijo je potrebno upoštevati tudi celotno podobo oz. delovanje SUPB, saj so

interakcije med obema neizbežne [28].

Zavedati se moramo, zakaj smo vzpostavili SUPB in za kaj ga uporabljamo. Thompson [29]

pravi, da moramo temu prilagoditi tabele mrežnih povezav, ki so vzpostavljene med

ločenimi zbirkami podatkov, opredeliti potrebne podatke in določiti tip replikacije.

Zahtevnejše opravilo je spreminjanje podatkovnega okvirja, torej tabel in primarnih ter

referenčnih ključev, saj ob vsakršni modifikaciji porušimo trenutno strukturo in vzpostavimo

novo podobo. Če je tabela na izvornem mestu obsežna, lahko replikacija podatkov traja tudi

nekaj ur, dokler se ne prenese po celotni mreži [30].

Ko generiramo spremembe, lahko pride do procesnih napak zaradi napačnih opredelitev

(kot rezultat nedoslednosti) ali zmote v generatorju, pojavijo pa se lahko tudi ostale napake

med delovanjem. V takšnih situacijah se je najbolje vrniti na začetno mesto, kar pa pomeni,

da moramo shraniti prvotno strukturo, opredelitve, podatke, elemente itd. V kolikor je naš

cilj povečevanje zmogljivosti sistema na račun replikacije, je smiselno premisliti, kakšna bo

zasnova baze. Pri tem velja upoštevati vsaj dva kriterija:

vstavljati in posredovati (sinhronizirati) je potrebno samo potrebne podatke, saj je

drugače oteženo tako vertikalno kot horizontalno filtriranje, obenem pa imamo

preveč podatkov, ki otežujejo delovanje sistema;

optimizacija števila indeksov (več kot jih imamo, dlje časa bo trajala replikacija, saj

mora biti vsak nov zapis označen s svojim indeksom). Prav tako se na ciljnem mestu

izvaja vnos podatkov ne le v tabelo, ampak tudi v svoj ustrezni indeks [31].

Johnston [32] pravi, da je distribucija aplikacij znotraj mreže zahtevnejše opravilo, saj ima

vsaka svoje specifične zahteve, ki jih je potrebno upoštevati. Pozornost je potrebno

posvečati prenosu podatkov znotraj mreže, saj lahko hitro preobremenimo celotno omrežje.

Nesmiselno je prenašati celotne baze naenkrat, zato podatke iz baz razdelimo v paketke,

ki jih lažje distribuiramo. Slednje zahteva dodatno tehnologijo, ki omogoča razčlembo

podatkov, tako da ostanejo enaki in sinhronizirani na vseh mestih.

Replikacijski sklop lahko torej zajema eno celotno bazo ali različno število repliciranih

paketkov podatkov, vendar lahko do sprememb prihaja le na primarni bazi (med prenosom).

Dove [33] dodaja, da se polja z večjimi elementi (LOB) običajno zaradi svoje velikosti ne

pošiljajo, sinhronizacija pa poteka le takrat, ko je na njih izvedena sprememba. Avtor v

nadaljevanju navaja, da moramo biti pazljivi na:

Page 31: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

19

primarni ključ, saj je vnos lahko z njim blokiran, če hočemo podvajati vnose z enakim

enovitim ključem;

koherentnost tabel, saj se lahko zgodi, da nov vnos poseduje vrednost, ki ni

ustrezna opredelitvi polja;

zaklepanje, ki lahko onemogoči sinhronizacijo podatkov v primerih, ko drug

uporabnik zaščiti tabelo – ne glede na to se sinhronizacija izvaja toliko časa, dokler

se ne sprosti tabela za uporabo.

Pozornost je potrebno posvetiti tudi kontrolnim tabelam replikacije. Večino časa običajno

posvetimo izvornim in ciljnim tabelam, medtem pa pozabljamo na vmesne (kontrolne)

tabele, ki nastanejo pri replikaciji. Le-te delujejo znotraj podatkovne baze enako kot

navadne tabele, z več vnosi in brisanjem nepotrebnih podatkov, a za povečanje zmogljivosti

(zajemanje in dodajanje podatkov) in obnovo po motnjah delovanja potrebujejo ustrezne

varnostne kopije in vodeno statistiko [34].

Page 32: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

20

4 MICROSOFT SQL SERVER ZA REPLIKACIJO PODATKOV

Replikacija v SQL Serverju je namenjena reprodukciji in kopiranju podatkov; uporabnik jo

lahko uporablja kadarkoli, ko potrebuje (varnostno) kopijo svojih podatkov. Le-ta lahko

ostane shranjena v isti bazi kot izvorni podatki, lahko je v drugi bazi, a na istem mestu, ali

pa je na povsem drugi instanci (serverju) in bazi (Fundamentals, 2012) [35]. Replikacija je

uveljavljen koncept kopiranja podatkov, vendar rešitev znotraj SQL Serverja ponuja precej

več kot zgolj reprodukcijo podatkov. Microsoft SQL Server omogoča nastavitev replikacije

tako, da stalno sinhronizira izvorno mesto podatkov s kopiranimi podatki v drugi bazi oz. na

drugem mestu. Dodatno je možna tudi nastavitev sinhroniziranja v poljubnih časovnih

intervalih. Poleg tega replikacija v SQL Serverju omogoča enosmerno ali obojestransko

sinhronizacijo in ohranjanje sklopa podatkov, ki se sicer izgubijo pri posodobitvah [35].

4.1 Priložnosti in prednosti uporabe replikacije podatkov MS SQL

Replikacija podatkov je uporabna v kar nekaj primerih; uporabimo jo lahko, ko želimo

kopirati podatke na drugo napravo za trenutne potrebe poročanja (podatkovna analitika),

ali za to, da uporabimo aplikacijo za analize (npr. Analysis Services Cube). Možnost

nastavitve sinhronizacije v različnih časovnih intervalih omogoča izvedbo replikacije ponoči,

tj. po končanem delovnem dnevu, kar nam zagotovi sliko celotnega delovnega dogajanja.

Aplikacije tako ni potrebno dodatno programirati, da bi razumela »nedokončana« opravila,

ki se sicer pojavljajo pri rešitvah za replikacijo, ki kontinuirano izvaja sinhronizacijo.

Koristna je tudi možnost uporabe transakcijske replikacije (ang. »transactional replication«),

ki omogoča prenos podatkov v skoraj realnem času za potrebe poročil podatkovne analitike.

Čeprav v SQL Serverju le-ta ne poteka sinhronizirano, je zamik minimalen, kar omogoča

skoraj realno časovno pripravo poročil in vpogled v izvorne podatke na mestu kopiranja

[35].

Replikacija je prav tako koristna za prodajne agente, ki delujejo na terenu. S sabo namreč

tovorijo svoje računalnike, na katerih imajo pomembne podatke, ki jih večkrat dnevno

posodobijo, podatke pa morajo nato prenesti v centralno bazo podjetja. Ker svoje

računalnike in podatke med bazami posodabljajo diskretno, na več različnih lokacijah, lahko

hitro pride do konfliktov pri prenosu podatkov. Prav za potrebe tega dela je Microsoft

dopolnil SQL Server Replication Database s komponirano replikacijo (ang. »merge

Page 33: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

21

replication«), ki predstavlja rešitev v teh primerih in je poleg »snapshot« replikacije (ang.

»snapshot replication«) dodatna možnost programske rešitve Sql Server.

Hordila [36] ugotavlja, da se – kljub dostopnosti napredne replikacije že dlje časa in njeni

razširjeni uporabi – osnovna replikacija (posodobitev določene tabele v enem kliku) še

vedno pogosteje uporablja v večini nameščenih rešitev. Žal se pri omejenem delovanju

(enostavni rešitvi) podatki prenašajo zgolj v eno smer, predvsem za potrebe prenosa

podatkov v centralno skladišče (Slika 4.1), v razpoložljive spletne zbirke idr.

Slika 4.1: Replikacija za potrebe izmenjave podatkov (posodobitev) med oddaljenimi

enotami [37]

Ray [38] razlaga, kateri kriterij upoštevati pri izbiri rešitve replikacije, tako da bo ta ponudila

največ prednosti za organizacijo oz. odjemalce. Meni, da je potrebno razlikovati med

replikacijami v več oblikah. Tiste, ki zahtevajo potrditev v dveh stopnjah, delujejo tako, da

kopije podatkov v prvi stopnji prenesejo svojo potrditev hkrati z določeno spremembo v

zbirki podatkov, nato pa se v drugi stopnji izvede še replikacije (reprodukcija) podatkov.

Dvostopenjska potrditev lahko deluje nemoteno, če so povezani in usklajeni vsi serverji ter

ostale povezave v mreži, kar je načeloma težje omogočiti, zaradi česar se večina

organizacij odloča za enostavnejšo verzijo, ki v enem koraku opravi vse potrebno in so

prenosi takoj po vnosu podatkov na voljo vsem odjemalcem. S poslovno-finančnega vidika

replikacija nudi odjemalcem takojšen dostop do potrebnih podatkov ob nizki ceni strojne

opreme na dislociranih območjih. S tem postanejo podatki razpoložljivi lokalno in

omogočajo številne prednosti:

enostaven in takojšen dostop do podatkov;

Page 34: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

22

izboljšajo se odzivni časi;

vzpostavi se nemotena obojesmerna komunikacija;

izdatki za strojno opremo se zmanjšajo, saj visokozmogljivi strežniki niso več nujno

potrebni.

Poleg naštetega je replikacija v okviru Microsoft SQL Serverja koristna tudi pri:

izvedbi sistemske migracije v več stopnjah;

prenosu podatkov na dodatna mesta v mreži (Slika 4.2);

omogočanju visoke razpoložljivosti podatkov na glavnem strežniku;

omogočanju neprekinjenega prenosa podatkov, saj vsebuje rešitev za zaznavanje

in odpravljanje napak;

izvedbi replikacije, saj se lahko ta izvrši tako zaporedno kot ob določenih časovnih

terminih [39].

Slika 4.2: Primer uporabe rešitve za replikacijo v MSSQL [40]

4.2 Rešitve in tipi replikacij v MS SQL

Yakushin [41] pravi, da moramo pred izdelavo osnutkov za registracijo tabel dobro vedeti,

katere so možnosti, s katerimi replikacija razpolaga. Na tak način bomo prišli do najboljše

rešitve za naše poslovne potrebe, izbiramo pa lahko med naslednjimi rešitvami:

osnovna rešitev za replikacijo podatkov je tista, ki povezuje ločene enote ter skrbi

za nemoten prenos in reprodukcijo podatkov (lokalni dostop je hiter, takojšen in

nemoten, saj so podatki razdeljeni po sekcijah, baze pa si medsebojno »ponujajo«

varnostne kopije (Slika 4.2);

varnostna rešitev s pomočjo replikacije podatkov pomeni, da uporabljamo replikacijo

podatkov za kreiranje varnostnih kopij v primerih izrednih dogodkov, kot so naravne

nesreče in nepričakovani izpadi – takšna rešitev omogoča takojšen preklop na

sekundarno zbirko;

Page 35: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

23

rešitev replikacije za zbiranje poročil – določeni procesi se izvedejo na lokalni ravni

in tako ne povzročajo dodatnih obremenitev v celotni mreži povezav za mobilne

odjemalcev in podatkovno skladišče (Slika 4.3).

Slika 4.3: Rešitev za izdelavo poročil v obliki replikacije podatkov [40]

Pri opredelitvi replikacije lahko izbiramo med naslednjima opcijama:

kopiranje za potrebe odjemalcev (celovita, nasičena reprodukcijo podatkov, ki se

nahajajo v izvornih tabelah in vsebujejo primarni ključ (pogoj), saj lahko le tako

tabele na ciljnem mestu vsebujejo popolne kopije izvornih podatkov);

časovno vodeno reproduciranje podatkov (celovito kopiranje podatkov iz izvornih

mest (tabel), opremljenih s primarnimi ključi; poleg tega pa morajo imeti še dodatni

stolpec s časovno oznako (datum in čas) izvršene transakcije [42].

Pri uporabi replikacije podatkov velja omeniti še t. i. vmesne tabele tipa CD in CCD, ki imajo

več prednosti v procesu replikacije, vendar so v osnovi namenjene za vzdrževanje

trenutnega stanja, v katerem se zapisujejo vse spremembe na podatkih. Vmesne tabele

predstavljajo prednost, saj reprodukcija podatkov ne poteka več preko izvornih mest,

temveč preko teh tabel, zato podatke lažje ter hitreje prenese na ciljno mesto. Reprodukcija

podatkov se lahko poslužuje dveh tehnik, ki jih lahko vidimo na sliki (Slika 4.4).

Page 36: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

24

Slika 4.4: Tehniki dodajanja podatkov [43]

Potiskanje podatkov predstavlja proces, v katerem se podatki iz izvornega mesta prenesejo

na ciljno, medtem ko (ali pa ne, glede na potrebe organizacije) se čaka na morebitne

dodatne zahteve glede dodajanja podatkov – le-ti morajo biti dostopni nemudoma, v

realnem času, zato se npr. transakcijska replikacija poslužuje metode potiskanja.

Vleka podatkov pomeni dodajanje podatkov v določenem časovnem zaporedju ali ob

določenem trenutku – glede na zahteve, ki jih imamo do izvornega mesta. Strategija je

primerna, ko želimo z replikacijo izpolniti več zastavljenih ciljev, a ni potrebe po realni

časovni dostopnosti do podatkov [44].

Ko govorimo o izvornem in ciljnem mestu, vemo, da ima lokacija podatkov dandanes velik

vpliv na odzivnost in uporabnost določene aplikacije. V ta namen je vsekakor pomembno

razmisliti o (de)centralizaciji dostopa z eno ali več kopijami baze podatkov, tako da

zagotovimo nemoteno delovanje. Yair [23] odsvetuje decentraliziran dostop, saj se lahko

pojavijo težave pri zagotavljanju razpoložljivosti in delovanju ob hkratnih dostopih več

Page 37: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

25

oddaljenih odjemalcev do glavnega serverja in je oteženo ohranjanje zmogljivosti zaradi

preseženega optimalnega števila povezav.

4.2.1 »Snapshot« replikacija

»Snapshot« replikacija (Slika 4.5) naredi identično kopijo podatkov vsakič, ko jo zaženemo.

Ne omogoča sinhronizacije, saj vsaka iniciacija omenjene replikacije na novo kopira celotno

podatkovno zbirko in naredi zapis preko prejšnje verzije, ne glede na morebitne nastale

spremembe [35].

»Snapshot« replikacija uporablja aplikacijo BCP, ki se nahaja znotraj rešitve MS SQL. Na

osnovi tega orodja lahko zapiše vsebino določene tabele v mapo »snapshot« replikacije, ki

je mapa z deljenim dostopom. V njej je lahko več elementov, vendar moramo za vsakega

navesti, kdo lahko do njega dostopa.

Vsakič, ko se »snapshot« replikacija izvede, se vsi elementi oz. njihovi podatki ponovno

kopirajo na dislocirano mesto, kar zahteva veliko širokopasovno širino in fizično razpoložljivi

disk za shranjevanje podatkov. Redko je uporabljena sama zase, zato ne predstavlja

pomembnejše oblike replikacije pri uporabi rešitve MS SQL. Predstavlja pa pomemben

sestavni del za inicializacijo reprodukcije podatkov pri ostalih tipih replikacije, zato nadaljnje

zahtevnejše oblike brez nje skoraj niso mogoče.

Page 38: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

26

Slika 4.5: Princip delovanja »snapshot« replikacije [40]

4.2.2 Transakcijska replikacija

Transakcijska replikacija (Slika 4.6) omogoča takojšnjo posodobitev sprememb v

»publisherju« (elementi replikacije, ki jih predstavljamo v naslednjem poglavju), takoj ko se

izvedejo. Poleg tega replikacija ne zahteva opredeljevanja dostopa do vseh elementov,

vendar pa se mora programsko orodje pri transakcijski replikaciji odzvati na vsako

posamezno spremembo, ki se zgodi. Za uporabo je ustrezna, ko ima Publisher dodane

»insert«, »update« in »delete« ukaze [8] oz. v primerih, ko Publisher ali Subscriber nista

SQL-strežnika podatkovne baze.

Page 39: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

27

Slika 4.6: Princip delovanja transakcijske replikacije [8]

Posebna oblika transakcijske replikacije je »peer-to-peer« transakcijska replikacija, ki je bolj

ustrezna za aplikacije, ki lahko delujejo (zapisujejo in prebirajo podatke) v vseh podatkovnih

bazah. Takšna vrsta transakcijske replikacije je zmogljivejša, omogoča pa hitrejše branje in

zagotavlja boljšo razpoložljivost podatkov.

4.2.3 »Merge« replikacija (kompozitna replikacija)

»Merge« replikacija ponuja možnost sledenja vsem spremembam na Publisherju s sprožilci

(ang. »trigger«), medtem ko se Subscriber lahko sinhronizira s Publisherjem, s čimer pridobi

vse potrebne spremembe od zadnje sinhronizacije in hkrati od ostalih (predhodnih). Princip

delovanja replikacije je prikazan na sliki (Slika 4.7).

Page 40: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

28

Slika 4.7: Princip delovanja »merge« replikacije [8]

Na odločitev, za kateri tip replikacije se bomo odločili v organizaciji ali oblikovanju

informacijskih rešitev, vpliva več dejavnikov. Zmogljivosti »snapshot« replikacije so

omejene, zato je pomembno vedeti, kako bo z dostopom do posodobljenih reprodukcij

podatkov, ali potrebujemo realno časovno kopijo podatkov iz izvornega mesta, kakšna naj

bo avtonomija rešitve za replikacijo in ali želimo popolne – identične – prepise podatkov ali

kakšno drugo obliko (Slika 4.8).

Page 41: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

29

Slika 4.8: Kriteriji za izbiro replikacije podatkov [8]

4.3 Elementi replikacije v rešitvi MS SQL

Replikacija v MS SQL potrebuje za nemoteno delovanje usklajenost vseh sestavnih delov

(elementov, komponent), ki jih predstavljamo v nadaljevanju. Splet vseh in princip delovanja

lahko vidimo na sliki (Slika 4.9).

Slika 4.9: Elementi replikacije v MS SQL [35]

Page 42: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

30

Elemente replikacije, ki jih vidimo na sliki (Slika 4.9), lahko opazujemo od Publisherja

naprej. Le-ta vsebuje več svojih publikacijskih podatkovnih baz. Takšna zbirka vsebuje

publikacijo (ang. »publication«), ki ima dva člena (ang. »article«). Nastavitve replikacije tako

vključujejo distributerja (ang. »distributor«) in njegovo distribucijsko podatkovno bazo kot

tudi naročnika (ang. »subscriber«) s svojo naročniško zbirko podatkov, ki vsebuje povezavo

z njim [35]. Nastavitve replikacije v rešitvi MS SQL vsebujejo tudi replikacijske agente, ki so

potrebni za zagon procesov, in nekaj obstranskih elementov, so pomembnih za vzdrževanje

reprodukcije podatkov. V nadaljevanju predstavljamo vsako izmed komponent nekoliko bolj

podrobno, pri čemer sledimo predpisom iz Fundamentals.

Členi so pomembni za vsak objekt SQL Serverja, ki želi biti repliciran, saj ga člen

opredeli in ustanovi. Vsak člen lahko pripada samo enemu objektu SQL Serverja, ki

mu je določena oznaka (npr. tabela dbo.tbl_3). Objekti, ki jim pripada določen člen,

so običajno tabele (ang. »table«), pogledi (ang. »view«) in procedure (ang. »store

procedures«). Lastnosti člena določajo, ali pripada celotnemu objektu ali samo

podmnožici njegovih delov (npr. člen lahko vsebuje celotno tabelo ali pa samo

vrstico oz. stolpec le-te). Če upoštevamo nekaj pogojev (omejitev), lahko enemu

objektu dodelimo več členov.

Publikacija je zbirka več členov, zbranih v enem sklopu kot posamezna enota. Na

sliki (Slika 4.9) je publikacija pikčasti krog, ki obdaja dva člena. Velja, da lahko le en

člen predstavlja del ene publikacije, vendar lahko več različnih členov dodelimo istim

objektom v več ločenih publikacijah.

Publikacijska baza je katerakoli baza, ki vsebuje objekte, ustvarjene enako kot členi.

Ko naredimo publikacijo na podatkovno bazo, SQL Server sam spremeni notranje

delovanje sistema, tako da ustvari več objektov, povezanih z replikacijo.

Publikacijska baza je dodatno zaščitena pred izgubami in motnjami delovanja.

Publisher je entiteta v SQL Serverju, ki omogoči publikacijo, pripravljeno za

replikacijo, čeprav sam Publisher nima aktivne vloge v procesu in nastavitvah

replikacije podatkov. Na sliki (Slika 4.9) predstavlja Publisherja celotni skrajno levi

stolpec, ob njem pa so publikacijska baza, publikacija in dva člena.

Distributer je povezan s Publisherjem. Je instanca v SQL Serverju, ki identificira

spremembe na členih v vsakem Publisherju. Glede na nastavitve replikacije je lahko

distributer ključen za obveščanje naročnika o prispeli publikaciji ali spremembah na

členih. Informacija o obojem je shranjena v distribucijski zbirki podatkov dokler niso

vsi naročniki obveščeni, ali pa se izteče določeno časovno obdobje. Distributerja

lahko v SQL Serverju opredelimo kot ločeno instanco od Publisherja, običajno pa

sta združena v isti instanci. Na sliki (Slika 4.9) je distributer najvišji del sredinskega

stolpca.

Page 43: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

31

Vsakemu distributerju pripada vsaj ena distribucijska baza. Le-ta vsebuje določeno

število objektov, ki lahko hranijo tako podatke o replikaciji kot tudi replicirane

podatke. Distributer lahko ohranja več kot eno distribucijsko bazo, vendar morajo

vse publikacije na enem Publisherju uporabljati isto distribucijsko bazo.

Povezave oz. naročnine so element, skladen z ali enakovreden publikaciji. Vsaka

naročnina ustvari povezavo ali pogodbo med publikacijo in naročnikom. Obstajata

dva tipa naročnine, potisna in vlečna. V potisni se distributer neposredno posodablja

preko baze naročnika, medtem ko v vlečni naročnini naročnik prosi distributerja, če

so na voljo kakšne spremembe in potem posodobi podatke v naročniški podatkovni

bazi [35].

Tista podatkovna baza, na katero ciljamo med replikacijsko naročnino, je naročniška

podatkovna baza. Enako kot publikacijsko bazo tudi to SQL Server moderira med prvo

inicializacijo reprodukcije podatkov. Najbolj očitna sprememba je pri dodanih objektih, ki so

povezani z replikacijo. Pri naročniški podatkovni bazi moramo paziti, da ni varnostno

zaščitena, kot je publikacijska podatkovna baza.

Page 44: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

32

5 REPLIKACIJA PODATKOVNE BAZE COMTRON TRONSYNC

Produkt TRONsync smo na podjetju Comtron razvili zaradi potreb do lastnega produkta za

vzdrževanje dostopnosti podatkov. Najprej smo uporabljali replikacijo MS SQL, a smo hitro

ugotovili, da ima konkurenčni produkt nekatere omejite, s katerimi se nismo zadovoljili.

Nekateri izmed njih so:

pri replikaciji MS SQL potrebujemo vsaj eno strežniško licenco MS SQL;

replikacija MS SQL ne omogoča repliciranja podatkov med podatkovnima bazama

MS SQL in SQLite;

pri velikem številu naročnikov (ang. »subscriber«) je začetna inicializacija klientove

baze trajala predolgo;

zahtevno nadgrajevanje struktur podatkovne baze;

replikacija MS SQL zahteva obojestransko povezavo SQL med server in klient bazo.

5.1 Možnosti orodij in komponente

TRONsync podpira transakcijski tip replikacije, kar pomeni, da je možno slediti vsaki

spremembi, ki se zgodi nad podatki v podatkovni bazi, in podatek sinhronizirati v

odjemalčevo podatkovno bazo. Prav tako je ob pravilni konfiguraciji podprt prenos

sprememb v obratni smeri (»merge« replikacija). Da sistem deluje, morajo biti prisotne in

konfigurirane vse komponente orodja. Komponente in povezave so prikazane na sliki (Slika

5.1).

Page 45: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

33

Slika 5.1: Komponente v replikaciji TRONsync

Publisher je element, prisoten na strani strežnika. Vsebuje izvor podatkov in strežniško

podatkovno bazo. Za delovanje potrebuje instanco MS SQL, ki je lahko MS SQL Express,

kar pomeni, da lahko uporabimo brezplačno verzijo strežnika MS SQL.

Strežniška podatkovna baza je podatkovna baza, ki predstavlja vir podatkov za replikacijo.

V smeri proti odjemalcu se podatki vedno prenašajo iz te podatkovne baze.

Skupina predstavlja grupo več tabel, ki se upoštevajo ob prenosu. En odjemalec je lahko

prijavljen na eno skupino.

Tabela je element skupine. Predstavlja tabelo, katere podatke želimo prenašati. Na njej je

možno določiti filter, s katerim določimo, kateri podatki se prenašajo na odjemalca.

Distributor in agent sta spletni servis, ki omogoča prenos podatkov in ga je možno izpostaviti

na spletu. Skrbi za pravilno prenašanje podatkov iz strežniške podatkovne baze v

odjemalčevo podatkovno bazo in obratno. Za delovanje potrebuje dostop do distribucijske

podatkovne baze in strežniške podatkovne baze.

Distribucijska podatkovna baza je zbirka podatkov o konfiguraciji replikacije. Poimenujemo

jo TRONSync. Vsebuje podatke o skupinah, tabelah in uporabnikih. Baza mora imeti

neposredni dostop do strežniške podatkovne baze.

Page 46: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

34

»Subscriber« je naročnik na replikacijo podatkov. Vsebuje lastno podatkovno bazo

(Odjemalčeva podatkovna baza), v katero replicira podatke. Ker replikacija TRONsync

deluje po »pull« principu, skrbi tudi za to, da podatke pridobi v določenem časovnem okvirju.

Odjemalčeva podatkovna baza je baza podatkov, v kateri so replicirani podatki. To bazo

uporablja aplikacija.

Posebnost orodja je, da omogoča replikacijo podatkov, ne samo med podatkovnimi bazami

MS SQL, ampak tudi med podatkovnima bazama MS SQL in SQLite, ki je zelo priljubljena

na platformah Android. To je ena izmed ključnih točk, zakaj smo se odločili za razvoj orodja

TRONsync. Na strani odjemalca se imamo možnost odločiti, ali bomo uporabljali

podatkovno bazo MS SQL ali SQLite. Na strani strežnika je uporaba podatkovne baze MS

SQL obvezna.

Orodje za komunikacijo med strežniškim in odjemalčevim delom uporablja spletne storitve

(ang. »web services«), kar pomeni, da sta lahko odjemalec in strežnik popolnoma

dislocirana. Med njima ni potrebno nobene povezave VPN ali SQL. Edini pogoj je dostop

do »web servisa«, bodisi v lokalnem omrežju bodisi preko spleta.

5.2 Opis delovanja

TRONsync beleži spremembe na nivoju vrstice v tabeli podatkovne baze in ne na nivoju

polja. To v praksi pomeni, da če se je spremenila vrednost katerega koli polja na tabeli, se

je na strani odjemalca posodobila celotna vrstica, v kateri je sprememba nastala. Vsaka

tabela, ki se replicira, mora biti opremljena s primarnim ključem tipa uniqueidentifier, ki ima

vklopljen parameter rowguidcol. Spremembe se beležijo v tabeli RowChange, ki se nahaja

v strežniški podatkovni bazi. Tabela se ustvari ob konfiguraciji replikacije in ima 5 polj:

RowChID je polje, ki predstavlja primarni ključ tabele in zaporedno številko

spremembe, ki se je zgodila v podatkovni bazi;

RowChDate predstavlja datum in čas spremembe;

ChTableName je ime tabele, na kateri se je sprememba zgodila;

ChRowGuid je vrednost primarnega ključa vrstice, nad katero se je sprememba

zgodila – vsaka tabela v podatkovni bazi mora biti označena z parametrom

ROWGUIDCOL;

ChAction je tip spremembe, ki se je zgodila – vnos vrstice, urejanje ali brisanje

vrstice.

Page 47: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

35

V tabelo RowChange se zapisuje vsaka sprememba podatkov, ki se je zgodila na katerikoli

tabeli, določeni, da se upošteva pri replikaciji podatkov. Za zaznavanje sprememb se

uporabljajo sprožilci (ang. »triggers«). Sprožilec je implementiran tako, da po vsaki

spremembi vrstice naredi zapis v tabeli RowChange. V polju ChAction označi z »I« vnos v

tabelo, z »U« posodobitev enega izmed podatkov, z »D« pa izbris vrstice.

Ko se sprememba enkrat zapiše v to tabelo, je na vrsti spletni servis, da opravi svoje delo.

Replikacija TRONsync deluje po metodi »pull«, kar pomeni, da izvršuje procedure za

prenos podatkov odjemalec.

5.2.1 Metoda posodobitve podatkov v podatkovni bazi

Naročnik periodično ali na zahtevo izvršuje ukaze, potrebne za prenos podatkov. V vsaki

iteraciji posodobitve naprej pokliče metodo, ki vrne informacije o tem, katere tabele so bile

deležne sprememb in jih je potrebno posodobiti. Vhodni podatek v metodo je tudi zadnji

rowChID, ki ga vodi naročnik. Metoda vrne nazive tabel, za katere obstaja v tabeli

RowChange rowChID večji od zadnjega lokalnega rowChIDja.

Začetna inicializacija odjemalčeve podatkovne baze se zgodi s klicem te metode in vhodnim

parametrom allData = 1. Takrat dobimo nazaj vse tabele in podatke iz tabel, upoštevajoč

filtre, ki so definirani v distribucijski podatkovni bazi.

Postopek posodobitve poteka tako, da se naročnik z zanko sprehodi čez pridobljene tabele

in izvršuje ukaze za prenos podatkov. Podatki se prenašajo v paketih. Najprej se za

določeno tabelo pridobijo paketi, katerih podatke je potrebno v tabeli izbrisati, saj bi v

nasprotnem primeru lahko prišlo do konflikta pri vstavljanju podatkov. Recimo, da obstaja

tabela s poljema P1 in P2. P1 je primarni ključ tabele, P2 pa polje, nad katerim je definiran

unikatni indeks (ang. »unique index«). Na strežniku se je zgodila sprememba na tej tabeli.

Izbrisala se je vrstica P1 = 1 in P2=100 in se vstavila vrstica s podatki P1 = 2 in P2=100.

Če bi na odjemalca prenašali spremembo za vsako vrstico kronološko, ne bi imeli težav z

vrstnim redom, ker pa za vsako vrstico v tabeli prenesemo samo zadnje stanje, je

pomembno, da to naredimo v pravem vrstnem redu. Najprej pobrišemo vrstice, ki so bile

odstranjene na tabeli v strežniški podatkovni bazi, ter potem izvršimo posodobitve (ang.

»update«) in vnose (ang. »insert«) v tabelo. S tem postopkom se izognemo konfliktu

unikatnih indeksov. V primeru inicializacije naročnikove podatkovne baze so paketi, ki so

namenjeni brisanju podatkov, prazni.

Page 48: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

36

Prenos podatkov se izvaja v paketih, katerih velikost je možno nastavljati po številu

vsebovanih vrstic podatkov. Manjše kot je število podatkov, večje je število paketov, ki se

morajo prenesti, da podatke v podatkovni bazi posodobimo na zadnji RowChID.

5.2.2 Paketi TRONsync

Paketi replikacije TRONsync so lahko sestavljeni na dva načina. V obeh primerih je to

objekt, ki nosi v glavi med drugim tudi podatek o tem, koliko zapisov vsebuje njegov

podatkovni del. S to informacijo je možno preveriti, ali se je paket prenesel v celoti. Drugi

del objekta je lahko zgrajen v obliki XML ali zapisa BCP. XML-oblika se uporablja pri

repliciranju podatkov v podatkovno bazo SQLite, BCP (bulk copy) pa pri prenosu med

dvema podatkovnima bazama MS SQL. BCP Utility je Microsoftov pripomoček za izvažanje

in uvažanje podatkov v podatkovno bazo. Je najhitrejši način, na katerega lahko podatke iz

podatkovne baze MS SQL izvozimo ali uvozimo. Med dvema podatkovnima bazama MS

SQL bi lahko podatke izvažali in uvažali s pomočjo XML-paketov, vendar se te opcije ne

poslužujemo, saj je veliko počasnejša.

Vsaki tip paketa obstaja v dveh dodatnih oblikah, odvisno od tega, ali gre za paket, ki bo

vsebino tabele izbrisal, ali paket, ki bo vsebino vstavil ali posodobil.

Primer vsebine XML-paketa je prikazan na sliki (Slika 5.2).

Page 49: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

37

Slika 5.2: Primer XML-paketa za vnos ali posodobitev podatkov

Vsak XML-paket je sestavljen iz metapodatkov in podatkovnega dela. V metapodatkih je

zabeležen čas nastanka paketa (ang. »date«), ključ seje posodobitve podatkov (ang.

»tokenId«), zadnji ID sprememb (ang. »rowChId«) in tip paketa (ang. »packageType«). Tip

paketa pove, ali gre za paket, katerega podatkovni del je potrebno izbrisati ali

vstaviti/posodobiti.

Podatkovni del XML-paketa (ang. »data element«) vsebuje informacije za vnos v tabelo.

Vsak podelement »data« elementa predstavlja en zapis v tabeli, katere ime je enako imenu

elementa. Iz primera na sliki Slika 5.2 lahko razberemo, da je paket tipa vnesi/posodobi

podatke, saj ima parameter packageType v metapodatkih vrednost 1. iz podatkovnega dela

XML- dokumenta pa lahko razberemo, da bo paket vnesel/posodobil 5 zapisov v tabelo

PostalCode. Vrednost posameznega polja v tabeli PostalCode je razvidna iz najglobljega

nivoja data sekcije. Na sliki (Slika 5.3) je primer XML-paketa, ki definira, katere vrednosti

mora replikacija pobrisati iz naročnikove PB.

Page 50: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

38

Slika 5.3: Primer XML-paketa tipa izbris

Strukturi paketa na sliki X - 1 in X sta zelo podobni. Razlika je v podatku packageType, ki

ima tokrat vrednost 0, kar označuje da paket nosi informacije o tem, katere vrstice je

potrebno izbrisati. Tudi podatkovni del ni čisto enak. Tokrat definicije vrstic v tabeli ne

vsebujejo podatkov vseh polj, ampak samo primarne ključe vrstic, ki jih je potrebno izbrisati

v tabeli PostalCode na strani odjemalca.

Ne glede na tip paketa XML se v obeh primerih po prenosu paketa podatkovna sekcija

prečrpa v začasno tabelo na odjemalčevi strani. Če gre za paket tipa vnesi/posodobi, je

rezultat začasna tabela s popolnoma enako strukturo kot je struktura dotične tabele na

strežniku. Če gre za paket tipa izbriši, je rezultat začasna tabela z enim poljem, ki ima naziv,

enak imenu primarnega polja ciljne tabele.

Paket BCP je sestavljen iz dveh datotek, ki se preko spletnega servisa prenašata v obliki

spominskega toka (ang. »memoryStream«). Prva datoteka ima končnico .fmt – v njej je

zapisana struktura tabele, v katero bomo uvažali podatke. Primer vsebine je prikazan na

sliki (Slika 5.4).

Page 51: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

39

Slika 5.4: Primer vsebine datoteke.fmt

Druga datoteka ima končnico .dat in vsebuje podatke. Pripomoček BCP potrebuje za uvoz

podatkov obe datoteki. Najprej na osnovi datoteke .fmt ustvarimo začasno tabelo. Ker se je

ustvarila na podlagi izvorne tabele iz strežniške baze, bo imela tudi začasna tabela na

odjemalčevi strani enako strukturo. Z ukazom iz slike (Slika 5.5) sprožimo prenos podatkov

iz datoteke .dat v začasno tabelo.

Slika 5.5. Ukaz za uvoz podatkov BCP

Sedaj smo v isti točki kot bi bili, če bi prenos izvajali preko paketa XML. Imamo začasno

tabelo, v kateri so vsi potrebni podatki, da izvršimo posodobitev podatkov na odjemalčevi

strani.

5.2.3 Posodobitev podatkov naročnika

Do tega koraka se v odjemalčevi podatkovni bazi še ni zgodila nobena sprememba. Imamo

začasno tabelo s podatki za posodobitev in informacijo ter moramo podatke izbrisati ali

vstaviti/posodobiti. S pravilnimi poizvedbami lahko glede na tip paketa, ki ga prenašamo,

podatke prečrpamo iz začasne tabele v tabele, ki so v naročnikovi podatkovni bazi. Če je

parameter paketa packageType enak 0, izvršimo »delete ukaz«; če je enak 1, pa ukaz

insert/update SQL.

Ko smo zaključili obe zanki, zanko čez pakete in čez vse tabele, potrebne posodobitve, je

posodobitev zaključena. Zapomnimo si samo zadnji ident (rowChID) spremembe, ki smo jo

prenesli, da lahko naslednjič nadaljujemo tam, kjer smo zaključili. Če je v katerem koli

Page 52: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

40

koraku posodabljanja podatkov prišlo do napake, si identa zadnje spremembe (rowChID)

ne zapomnimo in ob naslednjem prenosu postopek ponovimo.

5.3 Konfiguracija

Za uspešno vzpostavitev TRONsync replikacije podatkov potrebujemo:

instanco MS SQL, ki je lahko tudi verzije EXPRESS;

strežniško podatkovno bazo MS SQL;

spletni strežnik, zmožen zaganjati »web« servis WCF, recimo IIS;

začetno odjemalčevo podatkovno bazo MS SQL ali SQLlite;

mrežno povezavo med spletnim strežnikom in naročnikom;

povezavo SQL med spletnim strežnikom in strežniško podatkovno bazo;

aplikacijo, ki implementira TronRetail.Sync.dll (npr. TRONpos).

Na strežniško instanco MS SQL zraven strežniške podatkovne baze namestimo tudi

distribucijsko podatkovno bazo TRONsync. V slednji v tabeli syncTable definiramo tabele,

ki jih bomo replicirali. V tabeli GroupTable določimo tabele v skupine. Na enega naročnika

lahko določimo eno skupino tabel, ki se bodo replicirale. Naročniki so definirani v tabeli

ClientSync, v kateri jim tudi določimo uporabniško ime in geslo, s katerim se bodo prijavili

na publikacijo.

Na strežniški bazi izvršimo proceduro SyncEnable. Procedura ustvari vse potrebne

vpoglede (ang. »view«), procedure in sprožilce na tabele, ki bodo uporabljene v replikaciji.

Potrebno je še namestiti spletni servis (agent na distributerju), ki bo omogočal prenos

podatkov iz strežniške podatkovne baze na naročnikovo. Pri spletnem servisu je potrebno

konfigurirati nastavitveno datoteko. Primer nastavitvene datoteke je prikazan na sliki (Slika

5.6).

Page 53: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

41

Slika 5.6: Nastavitvena datoteka spletnega servisa TRONsync

V sekciji, ki je na sliki (Slika 5.6) označena z 1, nastavimo povezavo do distribucijske

podatkovne baze. V sekciji 2 pa zraven povezave do baze še pot, kamor lahko spletni servis

odlaga datoteke BCP. Do te poti morata imeti uporabnik, pod katerim se zaganja instanca

dotičnega SQL in uporabnik, določen za zagonu spletnega servisa, pravico do zapisovanja

in branja.

5.4 Zaščita podatkov

Podatki, ki se prenašajo preko spleta, morajo biti dobro zaščiteni. TRONsync skrbi za

zaščito podatkov na dva načina. Prvi je kriptiranje celotnega prometa. Spletni servis, ki se

uporablja kot orodje za prenos podatkov, lahko nastavimo, da deluje preko SSL-protokola.

Tega uporablja večina spletnih aplikacij, pri katerih se pojavlja potreba po prenosu zaupnih

podatkov. Je uveljavljen način, kako zaščititi podatke na poti med pošiljateljem in

prejemnikom. Drugi način zaščite podatkov je zaščita z uporabniškim imenom in geslom.

Vsaki klic spletnega strežnika najprej zahtevo avtenticiranje. Če je geslo in uporabniško ime

primerno, vrne zahtevane podatke. Vsak naročnik replikacije mora imeti svoje unikatno

uporabniško ime in geslo. Replikacija dveh uporabnikov iz različnih lokacij ni možna. To je

onemogočeno tudi iz naslova filtriranja podatkov.

Page 54: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

42

6 PRIMERJAVA REPLIKACIJ MS SQL IN TRONSYNC

V tem poglavju smo implementirali dve orodji, namenjeni repliciranju podatkov med

podatkovnimi bazami. Prva je replikacija Microsoft SQL, druga pa Comtron TRONsync. Pri

obeh smo uporabili isto strežniško (publikacijsko) podatkovno bazo.

6.1 Postavitev »merge« replikacije MS SQL

Za testno okolje smo uporabili virtualni strežnik, na katerega smo namestili operacijski

sistem Windows Server 2012 R1 x64. Strežnik ima dodeljena 2 procesorja Intel Xeon

X5660, ki dosežeta hitrost 2,8 GHz. Količina dodeljenega pomnilnika je 4 GB.

6.1.1 Nameščanje SQL strežnikov in vzpostavljanje povezave

Najprej smo namestili MS SQL 2014 Developer Edition na virtualni strežnik. Pri namestitvi

smo bili pozorni, da smo namestili tudi komponente, potrebne za replikacijo SQL. Izbira je

prikazana na sliki (Slika 6.1).

Page 55: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

43

Slika 6.1: Izbira komponente, namenjene replikaciji

Po uspešni namestitvi strežnika smo nameščeni instanci (TIC) pripeli testno podatkovno

bazo (TronRetailServer), ki vsebuje 241 tabel. Velikost testne podatkovne baze je bila

približno 2,5 GB. Največ podatkov sta vsebovali tabeli Customer in Article – obe skupaj

preko 900.000 zapisov.

Sledila je namestitev odjemalca. Za odjemalca smo uporabili osebni prenosni računalnik, ki

ima 4-jedrni procesor Intel Core i7-3635QM, pri katerem posamezno jedro doseže hitrost

2,4 GHz. Računalnik ima nameščenega 8 GB pomnilnika, 128GB disk kapacitet SSD in

operacijski sistem Windows 8.1 64 bit.

Na prenosnik smo namestili Microsoft SQL Server 2014 Express. Pri instalaciji smo morali

ponovno biti pazljivi na izbiro replikacijskih komponent. Za ime instance smo izbrali

SQLEXPRESS. Ustvarili smo prazno podatkovno bazo z imenom TronRetailMS. Za

potrebe replikacije smo poskrbeli za obojestransko povezljivost med strežniško instanco in

odjemalčevo instanco SQL-strežnika. Ker sta strežnik in odjemalec na različnih lokacijah,

smo za povezavo vzpostavili tunel Cisco VPN. Na obeh lokacijah je bilo potrebno na SQL-

strežnikih omogočiti tudi protokol TCP/IP, ki ga omogočimo v orodju SQL Server

Configuration Manager, kot je prikazano na sliki (Slika 6.2).

Page 56: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

44

Slika 6.2: Prikaz pripomočka SQL Server Configuation Manager

Ker so nastavitve na Cisco VPN takšne, da odjemalec vedno ob povezavi dobi drug IP-

naslov, domenskega imena odjemalca pa ni možno razbrati, smo na strežniku za klienta

ustvarili vzdevek (ang. »alias«). Nastavitve vzdevka so prikazane na sliki (Slika 6.3).

Slika 6.3: Nastavitve vzdevka za povezavo na odjemalca

Vsakič, ko ponovno vzpostavimo povezavo z omrežjem strežnika, je potrebno popraviti IP-

naslov, ki je na sliki (Slika 6.3) zapisan pod nastavitvijo Server. Z rešitvijo se v

produkcijskem okolju verjetno ne bi strinjali, za testne namene pa zadostuje našim

zahtevam. Paziti je potrebno tudi, da nam omrežnih vrat 1433, ki se uporabljajo pri

komunikaciji, ne blokira kateri izmed požarnih zidov. Povezava med strežnikom in

odjemalcem je tako omogočena, kar smo preverili z orodjem MS SQL Server Management

Studio. Kot je prikazano na sliki (Slika 6.4), se nam je iz strežnika uspelo povezati v obe

podatkovni bazi.

Page 57: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

45

Slika 6.4: Povezava v strežniško in odjemalčevo podatkovno bazo z orodjem SSMS

Sledil je še test povezljivosti iz odjemalca, ki je bil prav tako uspešen.

6.1.2 Nameščanje SQL-strežnikov in vzpostavljanje povezave

Replikacijsko publikacijo MS SQL in subskripcijo lahko ustvarimo na dva načina. Uporabimo

lahko orodje MS SQL Management Studio in v njem za ta namen ustvarjen uporabniški

vmesnik, ali napišemo skripte T-SQL. V praksi se v primeru, ko imamo več naročnikov istih

nastavitev, uporablja oboje. Da ustvarimo samo publikacijo in prvo subskripcijo, uporabimo

uporabniški vmesnik. Za nadaljnje subskripcije pa iz prve ustvarimo skripto in jo potem

samo ustrezno priredimo.

Za testne namene smo najprej na strežniški podatkovni bazi ustvarili publikacijo s pomočjo

Management Studia. V pojavnem meniju na vozlišču Replication/Local Publication smo za

to izbrali New Publication, kot je prikazano na sliki (Slika 6.5).

Page 58: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

46

Slika 6.5: Pot do ustvarjanja nove publikacije

Nato se odpre dialog, v katerem nastavimo vse potrebno. Na prvem koraku nas vpraša,

katero podatkovno bazo želimo publicirati – izbrali smo TronRetailServer. V naslednjem

koraku moramo izmed štirih možnosti (Snapchat publication, Transactional publication,

Peer-to-Peer publication in Merge publication) izbrati tip publikacije – izberemo Merge

publication. Naslednji korak je namenjen izbiri artiklov. Artikli v replikaciji MS SQL so lahko

tabele, shranjene procedure, pogledi in uporabniške funkcije. Izbrali smo 140 tabel.

Nekatere med njimi imajo po 50 polj in 300.000 zapisov, nekatere so pa samo pomožni

šifranti z recimo 5 polji in 10 zapisi. Na samem artiklu tabela lahko označimo tudi, katera

polja naj se prenašajo. Ker smo prenašali celotne tabele, polj nismo izključevali. V

naslednjem koraku smo določili filtre. Posameznem naročniku bi lahko iz iste tabele prenesli

podatke, namenjeni samo njemu, ampak smo želeli, da ima vsak naročnik vse podatke,

zato filtrov nismo določali. Uporabniški vmesnik nas je vprašal tudi, ali želimo posnetek

baze (Snapshot) ustvariti takoj in na koliko časa naj se posodablja. Kakšno časovno

obdobje izberemo, je odvisno od velikosti podatkovne baze in količine sprememb, ki se

dogajajo. Privzeta vrednost je na 14 dni. Če imamo veliko količino sprememb in naročnike

pogosto inicializiramo, je ta čas smiselno zmanjšati. Posnetek se uporablja pri inicializaciji

naročnikove podatkovne baze. Ko ustvarimo naročnika in ga inicializiramo, se najprej

prenese posnetek, za njim pa še vse spremembe, ki so ustvarjanju posnetka sledile. Če je

posnetek zastarel, lahko inicializacija naročnikove podatkovne baze traja precej časa. V

naslednjem koraku smo morali določiti še uporabnika, pod katerim se bo posnetek ustvarjal.

Za konec smo publikaciji določili ime SifrantiPub.

Page 59: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

47

Namestiti je bilo potrebno še naročnika, ki smo ga ustvarili na povezavi do naročnikove

podatkovne baze. Na vozlišču Replication/Local Subscription smo iz pojavnega menija

izbrali New Subscriptions, kot je prikazano na sliki (Slika 6.6).

Slika 6.6: Pot do ustvarjanja nove subskripcije

Po korakih dodajanja nove naročnine moramo najprej izbrati publicista, nato pa še način

naročnine – »pull« ali »push«. Tehniki sta opisani v poglavju 3.2. Izbrali smo »pull«

subskripcijo, ker želimo posodobitev podatkov zaganjati iz klienta. V naslednjem koraku

izberemo naročnikovo podatkovno bazo, za katero je najbolje, če je kar prazna, saj MS

SQL-replikacija sama ustvari objekte, ki jih potrebuje. Podati je bilo potrebno še prijavne

podatke za povezavo v bazo in ustvarjanje naročnika je bilo končano.

Sledilo je proženje prenosov. »Pull« naročnino lahko sinhroniziramo na tri načine:

- z orodjem SQL Server Management Studio;

- z uporabo RM-objektov (Replication Management Objects);

- z replikacijskimi agenti.

Ob tem obstajajo določene omejitve. Orodje SSMS lahko uporabimo, če imamo plačljivo

licenco MS SQL. Ker naša postavitev določa, da imamo na strani naročnika nameščen MS

SQL Server 2014 Express, ta opcija odpade.

RM objekti so knjižnice, ki jih lahko vključimo v lastno aplikacijo. Sinhronizacijo lahko

prožimo sinhrono ali asinhrono, odvisno od potreb. Najprej se preko razreda

ServerConnection povežemo na naročnika, nato ustvarimo instanco razreda

MergePullSubscription in mu zagotovimo ustrezne parametre. Na koncu pa še preko

metode SynchronizeWithJob zaženemo sinhronizacijo.

Tretja opcija za zagon sinhronizacije je preko replikacijskega agenta. To je izvršilni program,

ki se namesti z instalacijo strežnika MS SQL. V primeru »merge« replikacije je to

REPLMERG.EXE, ki ga najdemo v mapi C:\Program Files\Microsoft SQL

Page 60: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

48

Server\120\COM\. Pri zagonu programa je potrebno zagotoviti določene parametre za

dostop do publikacije in naročnine, zato smo ustvarili zagonsko datoteko runSync.bat, s

katero bomo zaganjali »merge« replikacijo MS SQL. Vsebina datoteke je prikazana na sliki

(Slika 6.7).

Slika 6.7: Vsebina datoteke runSync.bat

Zaradi optimalnega prikaza vsebine datoteke na sliki Slika 6.7 je ukaz, ki zažene

REPLMERG.EXE, razdeljen v več vrstic. Za delovanje morajo biti atributi zagona ločeni s

presledkom in ne z novo vrstico.

Na sliki (Slika 6.8) opazimo, da po zagonu datoteke runsync.bat vidimo v orodju za

spremljanje sinhronizacije (Replication Monitor), da sinhronizacija poteka. Konfiguracija je

torej bila uspešna.

Slika 6.8: Opazovanje stanja replikacije v Replication Monitorju

Page 61: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

49

6.2 Postavitev replikacije TRONsync

Replikacijo TRONsync smo namestili na isti strežnik kot replikacijo MS SQL. Naprej je bilo

potrebno namestiti distribucijsko podatkovno bazo, ki je morala biti pripeta na isto instanco

SQL-strežnika kot publikacijska podatkovna baza. Distribucijska podatkovna baza vsebuje

tabele:

ActiveClient;

GroupSync;

GroupTable;

TableWhere;

UpGroup;

UpContext;

UpContextTable;

LogSync;

TableSync;

ClientSync;

TimeSync.

V tabeli Active Client se vodijo naročniki, ki trenutno prenašajo podatke. Tabela služi

avtentikaciji uporabnika. Ob pričetku repliciranja se ustvari seja, ki se zapiše v to tabelo.

Tabeli GroupSync in GroupTable služita definiciji skupine tabel, katerih podatki se

prenašajo v replikaciji iz strežnika na klienta. V tabeli GroupSync smo definirali zapis z

imenom WinTronPos, v tabeli GroupTable pa tabele. Izbrali smo iste kot pri replikaciji MS

SQL.

Ker za naročnike v nekaterih primerih ne potrebujemo celotne vsebine neke tabele, lahko v

tabeli TableWhere definiramo filter za to tabelo. Zapis povežemo preko tujega ključa na

tabelo GroupTable. V naši postavitvi filtrov nismo uporabljali.

Tabele UpContext, UpContextTable in UpGroup služijo definiciji tabel, katerih podatki se

replicirajo na publicista. Ustvarili smo skupino z nazivom TRONPos Win in v njej definirali

tematsko skupino Document. Ime tematske skupine predstavlja tudi ime primarne tabele.

Tematska skupina Document vsebuje zraven tabele Document še 21 drugih, vsebinsko

povezanih tabel. Ko smo sprožili prenos skupine Document, so se na strežnik prenesli

spremenjen ali vnesen zapis iz tabele Document in podatki, povezani s tem zapisom v

drugih 21 tabelah. Da je orodje znalo povezati pravilne podatke v paket nad vsako tabelo,

ki je v tematski skupini, smo naredili »where« pogoj po primarnem ključu iz primarne tabele.

V primeru, ko tabela v tematski skupini nima tujega ključa na primarno tabelo ali ime ključa

Page 62: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

50

ni enako, lahko na tabeli UpContextTable definiramo pogojni stavek, s katerim povežemo

primarno tabelo in tabelo iz skupine.

Tabela LogSync distribucijske baze služi beleženju napak in procesov.

V tabeli TableSync definiramo tabele, ki jih uporabljamo v skupini za prenos na naročnika

(»GroupTable«) in tematskih skupinah za prenos na strežnik (»UpContextTabel«).

Tabela ClientSync služi definiranju naročnikov. Ustvarili smo naročnika z uporabniškim

imenom AlesNB. Določiti mu je bilo potrebno tudi ime publicistove podatkovne baze, iz

katere se podatki prenašajo (v našem primeru je to TronRetailServer). Nato smo izbrali že

prej definirano skupino za prenos iz strežnika in skupino za prenos na strežnik. Določili smo

tudi velikost paketa, izraženo v številu vrstic, ki se v paketu prenašajo. Za začetek smo

nastavili velikost paketa na 20.000 zapisov v tabeli. Velikost lahko priredimo glede na hitrost

širokopasovne povezave in zmogljivost strežnika, ki predstavlja publicista. Večjo kot

nastavimo velikost paketa, hitrejši bo prenos podatkov, a ob enem povečamo tudi trenutno

obremenjenost omrežja in strojne opreme.

V tabeli TimeSync smo določili urnik samodejnega proženja prenosa podatkov.

Po nastavitvi distribucijske podatkovne baze je bilo potrebno strežniško podatkovno bazo

povezati z distribucijsko. To smo naredili na tak način, da smo v strežniški podatkovni bazi

sprožili proceduro syncEnabled. Shranjena procedura je namestila potrebne poglede in

sprožilce na primerne tabele. Pogledi na podatkovno bazo TRONsync služijo zajemanju

pravilnih podatkov, prožilci pa beleženju sprememb, ki so se nad definirano tabelo za

prenos v distribucijski tabeli zgodile.

Namestiti je bilo potrebno tudi distributerja. Gre za spletni servis, ki ga lahko namestimo v

IIS (Internet Information Services). IIS je Microsoftov spletni strežnik, ki podpira spletne

servise HTTPS in ga je možno kot komponento namestiti na operacijski sistem, ki ga

uporabljamo. Za testne namene smo servis namestili na privzeto spletno stran, ki jo ob

namestitvi definira IIS. Servis smo poimenovali TRONSync. V produkcijskem okolju je

potrebno za varno komunikacijo vzpostaviti SSL. V našem spletnem strežniku smo tako

dobili eno spletno stran z enim spletnim servisom, kot je prikazano na sliki (Slika 6.9).

Page 63: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

51

Slika 6.9: Hierarhija spletnega strežnika

Nastaviti je bilo potrebno še konfiguracijsko datoteko spletnega servisa, kar je opisano v

poglavju 5.3.

Replikacija TRONsync ne zagotovi začetnih struktur v naročnikovi podatkovni bazi, zato je

bilo potrebno prazno podatkovno bazo z vsemi strukturami zagotoviti ročno. Nato smo na

klienta namestili vzorčno podatkovno bazo, ki smo jo poimenovali TronRetailCS.

Obe replikaciji – MS SQL in TRONsync – potrebujeta agenta, ki proži sinhronizacijo. Za

agenta smo uporabili aplikacijo TRONpos, sistem za maloprodajo, ki uporablja replikacijo

TRONsync za zagotavljanje dostopnosti podatkov, tudi ko povezava do strežnika ni

mogoča.

Najprej smo nastavili povezavo do naše začetne podatkovne baze. V aplikaciji TRONpos

smo izbrali »Orodja« in »Povezava do podatkovne baze«. Odprlo se je okno, v katero smo

vnesli vse potrebne podatke. Okno vnosa je prikazano na sliki (Slika 6.10).

Slika 6.10: Vnos podatkov za povezavo do naročnikove podatkovne baze

Da smo odprli okno za vnos dostopnih podatkov in spremljanje prenosa podatkov, smo v

aplikaciji na začetni strani izbrali »Orodja« in »Prenos podatkov«. Odprl se nam je dialog, v

Page 64: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

52

katerega smo vnesli naslov, uporabniško ime in geslo naročnika. Z gumbom »Prenesi« smo

nato podatke inicializirali v naročnikovi podatkovni bazi. »Posodobi šifrante« je sprožilo

sinhronizacijo podatkov od zadnjega stanja do stanja na strežniku. Okno za vnos

naročnikovih podatkov in zagon sinhronizacije je prikazano na sliki (Slika 6.11).

Slika 6.11: Okno za zagon sinhronizacije

6.3 Merjenje hitrosti inicializacije podatkov

Hitrost prenosa posnetka podatkovne baze smo zaganjali izmenično, najprej smo sprožili

prenos z orodjem MS SQL Replication in po zaključku s Comtron TRONsync. Da smo

zmanjšali vpliv nihanja pasovne širine internetne povezave, smo prenos ponovili 5-krat.

Rezultati so prikazani v tabeli (Tabela 6.1).

ŠTEVILKA

PONOVITVE

TRAJANJE (MIN)

REPLIKACIJA MS SQL

TRAJANJE (MIN)

REP. TRONSYNC

1. 14:56 9:40

Page 65: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

53

2. 14:55 9:48

3. 14:32 9:45

4. 14:29 9:40

5. 14:26 9:41

POVPREČJE 14:39 9:42

Tabela 6.1: Rezultati inicializacije naročnikove podatkovne baze

Iz tabele (Tabela 6.1) je razvidno, da je Microsoftovo orodje za iste podatke porabilo

približno 50 % več časa za prenos inicializacijskih podatkov. Pri tem je vredno omeniti, da

je orodje MS v primerjavi s TRONsync moralo ustvariti tudi objekte (tabele, procedure,

poglede ...). V bazi TronRetailCS so vsi objekti bili ustvarjeni že prej, saj orodje tako

zahteva.

6.4 Merjenje hitrosti posodobitve podatkov

Iz standardnega poročila MSSMS »Disk Usage by Top Tables« je razvidno, katere tabele

zasedejo največ prostora. Del tega poročila je prikazan na sliki (Slika 6.12).

Slika 6.12: Del poročila »Disk Usage by Top Tables«

Predvidevamo lahko, da bodo posodobitve podatkov nad tabelami, ki so večje, trajale dlje,

saj posodabljanje zahteva lociranje podatka. Spreminjali smo podatke tabel:

Page 66: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

54

- Customer;

- Article;

- ArticlePrice;

- ArticleCode.

6.4.1 Izvajanje sprememb nad podatkovno bazo publicista

Postopek testiranja je potekal na sledeč način:

1. izvršitev ukaza, ki izvedel spremembe na strežniškem PB;

2. zagon MS-replikacije;

3. beleženje časa, potrebnega za prenos sprememb;

4. zagon replikacije TRONsync;

5. beleženje časa, potrebnega za prenos sprememb;

6. merjenje pravilnosti podatkov.

Na strežniški PB smo v več korakih izvršili ukaze TSQL in po vsakem izmerili trajanje

posodobitve. Izvajali smo v nadaljevanju opisane ukaze.

Korak 1.1

update Customer set LastName = Lastname + '_modified' update Article set ArticleTitle = ArticleTitle + '_modified' update ArticlePrice set ModificationDate = GETDATE() update ArticleCode set ArticleCode = ArticleCode + '_modified'

Sprememba podatkov 6.1: Sprememba na vseh zapisih

Korak 1.2

update Customer set LastName = Lastname + '1' where lastname not like 'SKALA D.O.O.%' update Article set ArticleTitle = ArticleTitle + '1' where len(ArticleID) <8 update ArticlePrice set ModificationDate = GETDATE() where ValidFrom is not null update ArticleCode set ArticleCode = ArticleCode + '1' where ArticleCode like '11%'

Sprememba podatkov 6.2: Sprememba samo določenih zapisov

Korak 1.3

Page 67: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

55

update Customer set LastName = Lastname + '1' where customerID like '12000%' update Customer set FirstName = FirstName + '2' where customerID like '12000%' update Customer set SearchAlias = SearchAlias + '3' where customerID like '12000%' update Customer set [Address] = [Address] + '4' where customerID like '12000%' update Customer set Phone1 = Phone1 + '5' where customerID like '12000%'

Sprememba podatkov 6.3: Večkratna sprememba istih zapisov na različnih poljih

Korak 1.4

update Customer set LastName = Lastname + '1' where customerID like '12000%' update Customer set LastName = Lastname + '2' where customerID like '12000%' update Customer set LastName = Lastname + '3' where customerID like '12000%' update Customer set LastName = Lastname + '4' where customerID like '12000%' update Customer set LastName = Lastname + '5' where customerID like '12000%'

Sprememba podatkov 6.4: Večkratna sprememba istih zapisov na istem polju

Korak 1.5

update Customer set LastName = Lastname + '6' where customerID like '12000%'

Sprememba podatkov 6.5: Sprememba enega polja istih zapisov

Korak 1.6

WITH e1(n) AS (SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1), /* 10 */ e2(n) AS (SELECT 1 FROM e1 CROSS JOIN e1 as b), /* 10*10 */ e3(n) AS (SELECT 1 FROM e1 CROSS JOIN e2), /* 10*100 */ e4(n) AS (SELECT 1 FROM e1 CROSS JOIN e3) /* 10*1000 */ SELECT n = ROW_NUMBER() OVER (ORDER BY n) into #t FROM e4 INSERT INTO [dbo].[Article]([RowGuidArticle],[ArticleID],[ArticleType],[ArticleTitle],[SearchAlias],[RowGuidTaxRate],[RowGuidArticleUnit],[WeighableItem],[CheckSerialNumbers]) SELECT newid(), cast(newid() as nvarchar(40)), 0,'title_'+ cast(newid() as nvarchar(40)),'search_'+ cast(newid() as nvarchar(40)),'F4DD85CF-CE1E-E2D1-3171-650938ABD2B7','A293D768-B68C-E311-B524-005056904834',0,0 FROM #t drop table #t

Sprememba podatkov 6.6: Dodajanje zapisov

Korak 1.7

Page 68: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

56

delete Article where len(ArticleID) = 36

Sprememba podatkov 6.7: Brisanje zapisov

Trajanje posameznih korakov je prikazano v spodnji tabeli (Tabela 6.2).

KORAK

ŠT. SPREMENJENIH

ZAPISOV

TRAJANJE (MIN)

REPLIKACIJA MS SQL

TRAJANJE (MIN)

REP.TRONSYNC

1.1 1.682.734 41:53 32:13

1.2 327.175 10:04 3:18

1.3 9.741 1:10 0:12

1.4 9.741 1:17 0:09

1.5 9.741 1:23 0:08

1.6 10.000 2:28 0:10

1.7 10.000 1:28 0:09

Tabela 6.2: Trajanje prenosov na klienta iz vseh korakov

Iz tabele (Tabela 6.2) je razvidno, da je trajanje prenosa podatkov v veliki meri odvisno od

količine podatkov, ki jih je potrebno prenesti. Replikacijsko orodje TRONsync se je pri tem

odrezalo bolje. Precejšnja razlika je v času sinhronizacije pri majhni količini spremenjenih

podatkov, ki so v praksi ravno najpogostejše. Iz zapisnika prenosa replikacije MS SQL je

razvidno, da ob vsakem zagonu orodje preverja vse tabele, vključene v publikacijo. To

preverjanje traja približno 1,5 minute, kar posledično pri manjši količini podatkov predstavlja

večji del porabljenega časa. Orodje TRONsync pa preveri samo tabele, ki so bile deležne

sprememb, in s tem pridobi očitno razliko. Poleg tega replikacija MS prenaša spremembe

po samo 100 zapisov hkrati, medtem ko jih TRONsync prenaša 10.000 naenkrat.

V korakih 3, 4 in 5 smo preizkusili, kako se orodji obnašata pri sinhronizaciji več sprememb

nad istimi vrsticami. Glede na to, da je čas vseh treh korakov iz tabele (Tabela 6.2) skoraj

identičen, je razvidno, da je pomembno le, koliko različnih vrstic v podatkovni tabeli je bilo

spremenjenih, in ne kolikokrat se je sprememba nad neko vrstico zgodila.

Page 69: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

57

6.4.2 Izvajanje sprememb na naročnikovi podatkovni bazi

Kot v prejšnjem podpoglavju smo tudi v tem spremembe izvajali po korakih, a tokrat na

strani naročnika. Za testiranje smo izbrali tabelo WorkTime, ki je v obeh orodjih nastavljena

kot tabela, ki se ne prenaša samo na klienta, ampak tudi na strežnik. Postopek testiranja je

potekal na sledeč način:

1. izvršitev spremembe na strani naročnika v PB TronRetailMS;

2. zagon replikacije MS;

3. beleženje trajanja prenosa na strežnik;

4. izvršitev spremembe na strani naročnika v PB TronRetailCS;

5. zagon replikacije TRONsync (prenos na strežnik);

6. beleženje trajanje prenosa na strežnik;

7. zagon replikacije MS;

8. zagon replikacije TRONsync (prenos na klienta);

9. merjenje pravilnosti podatkov.

Ker replikacija MS SQL Merge ne omogoča, da bi prenos na strežnik in iz strežnika izvajali

ločeno, smo z izvajanjem sprememb pričeli v PB, ki uporablja to replikacijo. Na tak način

smo lahko izmerili čas, ki ga orodje porabi samo za prenos na strežnik (ker sprememb za

prenos iz strežnika še ni). Po vseh devetih korakih mora biti stanje podatkov v vseh treh PB

enako. Spremembe, ki smo jih naredili na eni in drugi naročnikovi PB, pričakujemo v vseh

treh PB.

Koraki sprememb podatkov, ki smo jih izvajali nad naročniškima PB, so prikazani v

nadaljevanju.

Page 70: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

58

Korak 2.1

WITH e1(n) AS (SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1), /* 10 */ e2(n) AS (SELECT 1 FROM e1 CROSS JOIN e1 as b), /* 10*10 */ e3(n) AS (SELECT 1 FROM e1 CROSS JOIN e2) /* 10*100 */ SELECT n = ROW_NUMBER() OVER (ORDER BY n), newid() as RowGuidWorkTimeMS, newid() as RowGuidWorkTimeCS ,DATEADD(DAY, (ROW_NUMBER() OVER (ORDER BY n)), 0) as DateToMS ,DATEADD(DAY, (ROW_NUMBER() OVER (ORDER BY n))+1000, 0) as DateToMSUpdate ,DATEADD(DAY, (ROW_NUMBER() OVER (ORDER BY n))+2000, 0) as DateToCS ,DATEADD(DAY, (ROW_NUMBER() OVER (ORDER BY n))+3000, 0) as DateToCSUpdate INTO #t FROM e3 INSERT INTO TronRetailMS.[dbo].[WorkTime] ([RowGuidWorkTime],[RowGuidUser],[WorkTimeFrom],[WorkTimeTo],[WorkTimeDuration]) SELECT RowGuidWorkTimeMS, '3c21b63c-1709-e111-a97b-005056904834',DateToMS, DateToMS,0 FROM #t INSERT INTO TronRetailCS.[dbo].[WorkTime] ([RowGuidWorkTime],[RowGuidUser],[WorkTimeFrom],[WorkTimeTo],[WorkTimeDuration]) SELECT RowGuidWorkTimeCS, '3c21b63c-1709-e111-a97b-005056904834',DateToCS, DateToCS,0 FROM #t INSERT INTO TronRetailCS.[dbo].[SyncUP] ([ContextName],[RecordKey],[RecDate],[Status]) SELECT 'WorkTime', #t.RowGuidWorkTimeCS, getdate(),0 FROM #t

Sprememba podatkov 6.8: Vnos zapisov

Korak 2.2

UPDATE WorkTimeMS SET [WorkTimeFrom] = #t.DateToMSUpdate FROM TronRetailMS.[dbo].[WorkTime] WorkTimeMS INNER JOIN #t ON #t.RowGuidWorkTimeMS = WorkTimeMS.RowGuidWorkTime UPDATE WorkTimeCS SET [WorkTimeFrom] = #t.DateToCSUpdate FROM TronRetailCS.[dbo].[WorkTime] WorkTimeCS INNER JOIN #t ON #t.RowGuidWorkTimeCS = WorkTimeCS.RowGuidWorkTime UPDATE su SET [Status] = 0 FROM TronRetailCS.[dbo].[SyncUP] su INNER JOIN #t ON #t.RowGuidWorkTimeCS = su.[RecordKey]

Sprememba podatkov 6.9: Sprememba zapisov

Page 71: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

59

Korak 2.3

DELETE WorkTimeMS FROM TronRetailMS.[dbo].[WorkTime] WorkTimeMS INNER JOIN #t ON #t.RowGuidWorkTimeMS = WorkTimeMS.RowGuidWorkTime DELETE WorkTimeCS FROM TronRetailCS.[dbo].[WorkTime] WorkTimeCS INNER JOIN #t ON #t.RowGuidWorkTimeCS = WorkTimeCS.RowGuidWorkTime UPDATE su SET [Status] = 0 FROM TronRetailCS.[dbo].[SyncUP] su INNER JOIN #t ON #t.RowGuidWorkTimeCS = su.[RecordKey]

Sprememba podatkov 6.10: Izbris zapisov

KORAK

ŠT. SPREMENJENIH

ZAPISOV

TRAJANJE (MIN)

MS SQL REPLIKACIJA

TRONSYNC REP.

2.1 1.000 0:35 2:05

2.2 1.000 0:34 1:56

2.3 1.000 0:28 0:48

Tabela 6.3: Rezultati prenosov na strežnik

Rezultati iz tabele (Tabela 6.3) kažejo, da je prenos podatkov od odjemalca na strežnik pri

orodju TRONsync precej počasnejši. Razliko lahko pripišemo tehniki izvajanja prenosa.

Replikacija MS zajema in zapisuje podatke na strežnik na enak način kot iz strežnika, s

pomočjo orodja BCP, ki je najhitrejši možen način, da neke podatke zapišemo v tabelo.

Podatkovni paket BCP je tudi najmanjši možni paket, katerega podatke podatkovna baza

MS razume in jih lahko zapiše v svoje tabele. TRONsync podatke na strežnik prenaša v

obliki XML-paketov, ki so predstavljeni v poglavju 5.2.2. Operacija pretvarjanja podatkov v

XML-paket je potratnejša. Poleg tega je omenjeni paket z istimi podatki tudi približno enkrat

večji ob BCP-paketa. Velikost paketa poglavitno vpliva na čas prenosa preko omrežja. Vsi

dejavniki skupaj odražajo pričakovani rezultat, ki smo ga prikazali v tabeli (Tabela 6.3).

Vprašati se je potrebno, zakaj TRONsync ne uporablja enake metode kot replikacija MS.

Paketi XML so res počasnejši, vendar imajo možnost prenosa podatkov več tabel hkrati v

enem paketu. V sistemu TRONpos, kjer se orodje tudi uporablja, je pomembno, da podatki

dokumenta, ki je v osnovi sestavljen iz tabel Document in DocumentPos, prispejo na

strežnik istočasno, saj se tam dogajajo še nadaljnje obdelave, pri katerih je pomembno, da

so podatki dokumenta prisotni v celoti.

Page 72: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

60

6.5 Integriteta podatkov

Med testiranjem, opisanim v podpoglavju 6.4, smo po vsakem koraku naredili še test

skladnosti podatkov med strežniško in naročnikovo podatkovno bazo. Uporabili smo dve

metodi, primerjavo števila zapisov v tabeli in primerjavo kontrolnih vsot.

Za štetje vrstic v tabeli smo uporabili SQL-ovo funkcijo COUNT. Primer za eno tabelo je

naslednji:

SELECT COUNT(*) FROM TronRetailCS.dbo.Article

Kontrolne vsote smo izračunali s pomočjo funkcije CHECKSUM in CHECKSUM_AGG.

Funkcija CHECKSUM vrne kontrolno vsoto za eno vrstico, CHECKSUM_AGG pa je

agregatna funkcija, ki iz kontrolnih vsot vseh vrstic naredi skupno kontrolno vsoto. Na tak

način dobimo eno število, ki reprezentira vsebino celotne tabele. Primer za izračun

kontrolne vsote nad tabelo Article je sledeč:

SELECT '[dbo].[Article]' table_name, CHECKSUM_AGG (CHECKSUM ([RowGuidArticle], [ArticleID], [ArticleType] …)) CHECKSUM FROM TronRetailCS.[dbo].[Article]

V funkciji CHECKSUM smo upoštevali vsa polja dotične tabele. V tabeli (Tabela 6.4) so

prikazani rezultati.

KORAK TABELA – METODA

(C-COUNT,

CS-CHECKSUM)

STREŽNIŠKA

PB

REPLIKACIJA

MS SQL

ODJEMALČEVA

PB

REPLIKACIJA

TRONSYNC

ODJEMALČEVA

PB

INI ARTICLE – CS -1905601347 -1905601347 -1905601347

ARTICLE – C 325058 325058 325058

ARTICLECODE – CS -1909983505 -1909983505 -1909983505

ARTICLECODE – C 330510 330510 330510

ARTICLEPRICE – CS -1911884987 -1911884987 -1911884987

ARTICLEPRICE – C 405647 405647 405647

CUSTOMER – CS 1009719609 1009719609 1009719609

Page 73: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

61

CUSTOMER – C 624175 624175 624175

1.1 ARTICLE – CS 2132638785 2132638785 2132638785

ARTICLE – C 325058 325058 325058

ARTICLECODE – CS -260850399 -260850399 -260850399

ARTICLECODE – C 330510 330510 330510

ARTICLEPRICE – CS 2131425869 2131425869 2131425869

ARTICLEPRICE – C 405647 405647 405647

CUSTOMER – CS -1822182583 -1822182583 -1822182583

CUSTOMER – C 624175 624175 624175

1.2 ARTICLE – CS -789921029 -789921029 -789921029

ARTICLE – C 325058 325058 325058

ARTICLECODE – CS 2133997310 2133997310 2133997310

ARTICLECODE – C 330510 330510 330510

ARTICLEPRICE – CS 269135458 269135458 269135458

ARTICLEPRICE – C 405647 405647 405647

CUSTOMER – CS 1719147651 1719147651 1719147651

CUSTOMER – C 624175 624175 624175

1.3 CUSTOMER – CS -621839475 -621839475 -621839475

CUSTOMER – C 624175 624175 624175

1.4 CUSTOMER – CS 1307861000 1307861000 1307861000

CUSTOMER – C 624175 624175 624175

1.5 CUSTOMER – CS -657161648 -657161648 -657161648

CUSTOMER – C 624175 624175 624175

1.6 ARTICLE – CS -260930992 -260930992 -260930992

Page 74: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

62

ARTICLE – C 335058 335058 335058

1.7 ARTICLE – CS -789921029 -789921029 -789921029

ARTICLE – C 325058 325058 325058

2.1 WORKTIME – CS -162781550 -162781550 -162781550

WORKTIME – C 2001 2001 2001

2.2 WORKTIME - CS -162781592 -162781592 -162781592

WORKTIME – C 2001 2001 2001

2.3 WORKTIME – CS -1170899550 -1170899550 -1170899550

WORKTIME – C 1 1 1

Tabela 6.4: Rezultati merjenja integritete podatkov

Podatki števila vrstic in kontrolne vsote se v vseh treh podatkovnih bazah ujemajo v vseh

korakih, tako da lahko z gotovostjo trdimo, da sta obe orodji podatke pravilno prenesli in

posodobili. Integriteta podatkov med publikacijsko podatkovno bazo in naročnikovo

podatkovno bazo je ključnega pomena. Če skladnost podatkov ne bi bila dosežena, je

orodje neuporabno.

Page 75: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

63

7 SKLEP

Izbira pravega orodja za replikacijo podatkov med podatkovnimi bazami, kljub mali izbiri, ni

lahko delo. Strokovna literatura tako rekoč ne obstaja, vsi viri, s tem mislimo predvsem

spletna socialna omrežja, so preveč subjektivni, kar je sicer razumljivo, saj vsak član

zagovarja orodje, ki ga sam uporablja in s tem najbolje pozna. V diplomskem delu se nismo

ukvarjali z analizo znanstvenih metod vrednotenja izbire pravega orodja, ampak smo

poskušali preko treh najpomembnejših atributov, poiskati najprimernejše orodje. Ti atributi

so enostavnost uporabe, čim večja hitrost in brez pogojni atribut - zagotovljena integriteta

podatkov. Dobra izbira orodja za replikacijo podatkov med podatkovnimi bazami prinese

podjetju kakovostno zagotavljanje podatkov in lažje ter cenejše vzdrževanje.

Orodji, ki smo ju primerjali, Microsoft SQL Replication in Comtron TRONsync, opravljata

svoje delo odlično, vendar se v določenih točkah pojavijo razlike. Orodje TRONsync je

hitrejše, kar izstopa v sistemih, v katerih je potreba po skoraj realnih podatkih (NRT) velika.

Orodje je bilo sicer razvito za uporabo v katerem koli poslovnem sistemu, vendar se opazi,

da je namenjeno predvsem POS-sistemom. S tem mislimo predvsem na omogočanje filtrov

nad tabelami in prenosu podatkov na strežnik. Prenos podatkov na strežnik je v obliki XML-

podatkov, kar pomeni, da ni namenjen prenosu velike količine podatkov. V POS-sistemih

se na strežnik večinoma prenašajo dokumenti, katerih podatki so v več tematsko povezanih

tabelah. Podatke več tabel je enostavno zapakirati v XML in jih poslati na strežnik. Orodje

omogoča replikacijo podatkov tudi na podatkovno bazo SQLite. Funkcija je zelo

pomembna, saj je slednjo možno uporabiti v operacijskem sistemu Android. Trend

poslovnih mobilnih aplikacij je vedno večji, hitro se zgodi, da moramo sinhronizirati podatke

iz katerega večjega sistema. Šibkost orodja je v nastavljanju samih publikacij. Ker ni

grafičnega vmesnika, je vsako definicijo potrebno nastaviti ročno v distribucijski podatkovni

bazi.

Microsoftovo orodje je komercialno orodje, ki je uporabniku prijaznejše. Izdelan ima grafični

vmesnik, ki poenostavi definicijo publikacij in nadzor nad replikacijo. Za sam zagon

posodobitve ima na voljo tri načine. V plačljivi verziji SQL lahko posodobitev zaženemo brez

kakršne koli implementacije, kar na klik. Pri TRONsync je v vsakem primeru potrebno

implementirati knjižnico, ki omogoča zagon replikacije podatkov. Replikacija MS SQL je

zelo obširno orodje, zato se v samih funkcionalnostih in vseh možnih nastavitvah hitro

izgubimo. Za dobro implementacijo je potrebno odlično poznavanje orodja.

Glede na to, da obe orodji zagotavljata integriteto podatkov, za naslednji najpomembnejši

atribut pa smo izbrali hitrost, lahko sklepamo, da je TRONsync boljša izbira.

Page 76: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

64

8 BIBLIOGRAFIJA

[1] James, M., Design and strategy for distributed data processing, London: Prentice-

Hall, 2011, str. 624.

[2] Craig, E. in Buchanan, T., Teach yourself Microsoft Access 2000 in 24 Hours,

Canada: SAMS Publishing, 1999.

[3] Mohorič, T., Podatkovne baze, Ljubljana: BI-TIM, 2002.

[4] Baloh, P. in Vrečar, P., Ob praktičnih primerih skozi Microsoft Access 2007 in

informatizacijo poslovanja, Ljubljana: Pasadena, 2009.

[5] McDonald, M., Access 2007, Beijing: Pogue Press, 2006.

[6] Frye, C., Microsoft Access 2007 hitro in jasno, Ljubljana: Pasadena, 2007.

[7] Ramakrishnan, R., Database management systems, Boston: MacGraw-Hill, 1997.

[8] Perpar, M., Sql Server 2012, FRI, Ljubljana, 2013.

[9] Bradač, P., Popolni vodič skozi Access 2003, Ljubljana: Pasadena, 2005.

[10] Mrhar, P., Uvod v SQL, Nova Gorica: Flamingo založba, 2002.

[11] Werber, B., Uporaba MS ACCESS-a 2003 v praksi, Kranj: Moderna organizacija,

2003.

[12] Schmidt, K., High Availability and Disaster Recovery, Frankfurt: Springer Berlin

Heidelberg, 2006, str. 108−125, 199−205.

[13] Goswami, H. S., Microsoft SQL Server 2008 High Availability, Birmingham: Packt

Publishing, 2011, str. 13−83, 203−253.

[14] MSDN, C# Programming Guide, 2014. [Elektronski]. Dostopno na:

https://msdn.microsoft.com/sl-si/enus/library/67ef8sbd.aspx. [Poskus dostopa 9. 4.

2016].

[15] Technet, High Availability Solutions (SQL Server), 2014. [Elektronski]. Dostopno na:

https://technet.microsoft.com/en-us/library/ms190202(v=sql.110).aspx. [Poskus

dostopa 9. 4. 2016].

[16] Sack, J. in Mishra, S., AlwaysOn Architecture Guide: Building a High Availability and

Disaster Recovery Solution by Using Failover Cluster Instances and Availability

Groups, 2012. [Elektronski]. Dostopno na: http://download.microsoft.com/

download/D/2/0/D20E1C5F-72EA-4505-9F26-FEF9550EFD44/Building_a_HA_and

_DR_Solution_using_AlwaysON_SQL_FCIs_. [Poskus dostopa 9. 4. 2016].

Page 77: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

65

[17] Replication Guide and Reference, 2010. [Elektronski]. Dostopno na:

http://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/c2711210.pdf. [Poskus

dostopa 9. 4. 2016].

[18] Replication, Oracle, 1999. [Elektronski]. Dostopno na: http://www.csee.umbc.edu/

help/oracle8/server.815/ a67781/c31repli.htm#12636. [Poskus dostopa 15. 9. 2015].

[19] Sybase, Replication Server: An Architecture for Distributing and Sharing Corporate

Information, 2012. [Elektronski]. Dostopno na: http://www.sybase.com/content/

1019249/4427RepServerArch_3.v4.pdf. [Poskus dostopa 15. 9. 2015].

[20] Rankins, R., Jensen, P. in Bertucci P., Microsoft SQL Server 2000 Unleashed, Izv.

II, Canada: Sams, 2002.

[21] What is Database Replication?, Microsoft, 2001. [Elektronski]. Dostopno na:

http://support.microsoft.com/default.aspx?scid=/support/access/content/repl/replovr

vw.asp. [Poskus dostopa 16. 9. 2015].

[22] Oracle, Database Replication, 1999. [Elektronski]. Dostopno na: http://www.csee.

umbc.edu/portal/help/oracle8/server.815/a67781/c31repli.htm#12636. [Poskus

dostopa 9. 4. 2016].

[23] Yair, A. in Cipirian, T., From Total Order to Database Replication, 2012. [Elektronski].

Dostopno na: http://www.cnds.jhu.edu/pub/papers/AT02_icdcs.pdf. [Poskus dostopa

9. 4. 2016].

[24] Kodrič, A., Ali že uporabljate D2D «backup« rešitev?, Maribor: LanCom, 2012.

[25] Stodder, D., Bound to Succeed, DB2magazine, 2003. [Elektronski]. Dostopno na:

http://www.ibm.com/db_area/archives/2003/q1/stodder.shtml. [Poskus dostopa

16. 9. 2015].

[26] Why Use Database Replication?, 2014. [Elektronski]. Dostopno na: http://perso.

wanadoo.fr/mnfauvel/Kb/html/using_da.htm. [Poskus dostopa 16. 9. 2015].

[27] Daudjee, K. in Salem, K., Lazy Database Replication with Freshness Guarantees,

2002. [Elektronski]. Dostopno na: http://www.cs.uwaterloo.ca/cs-archive/CS-

2002/31/techrep.pdf. [Poskus dostopa 10. 9. 2015].

[28] Beth, H., New Features in DB2 Replication Version 8, 2014. [Elektronski]. Dostopno

na: http://www-3.ibm.com/software/data/dpropr/pres13/v8featuresprz.pdf. [Poskus

dostopa 10. 9. 2015].

[29] Charles, T., Database Replication, DB2magazine 5, 2007. [Elektronski]. Dostopno

na: http:// www.dbmsmag.com/9705d15.html. [Poskus dostopa 11. 9. 2015].

Page 78: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

66

[30] Arup, N., Altering the Master Table in a Snapshot Replication Environment without

Recreating the Snapshot, 2012. [Elektronski]. Dostopno na: http://www.dbazine.

com/nanda2.html. [Poskus dostopa 11. 9. 2015].

[31] Tips for Performance Tuning SQL Server Replication, 2011. [Elektronski]. Dostopno

na: http://www.sqlserver-performance.com/replication_tuning.asp. [Poskus dostopa

15. 8. 2015].

[32] Johnston, D., PostgreSQL Database Replication Options, 2013. [Elektronski].

Dostopno na: http://conferences.oreillynet.com/presentations/os2013/johnson_dar

ren.pdf. [Poskus dostopa 15. 8. 2015].

[33] Database Replication in Microsoft Jet 4.0, Microsoft Corporation, 2009. [Elektronski].

Dostopno na: http://www.homelancs.com/Download_Files/dbrepjet.htm]. [Poskus

dostopa 15. 8. 2015].

[34] Building the Operational Data Store on DB2 UDB Using IBM Data Replication,

WebSphere MQ Family, and DB2 Warehouse Manager, 2011. [Elektronski].

Dostopno na: http://www.tower.com/building-operational-data-store-on-db2-udb-

using-ibm-redbooks-paperback/wapi/101741342. [Poskus dostopa 15. 8. 2015].

[35] Meine, S., Fundamentals of SQL Server, Poulsbo, WA: Simple Talk Publishing,

2013.

[36] Mike, H., «Automated Replication Management«, 2012. [Elektronski]. Dostopno na:

http://www.dbazine.com/hordila5.html. [Poskus dostopa 16. 9. 2015].

[37] «Replication Server: An Architecture for Distributing and Sharing Corporate

Information«, 2012. [Elektronski]. Dostopno na: http://www.sybase.com/content/

1019249/4427RepServerArch_3.v4.pdf. [Poskus dostopa 17. 9. 2015].

[38] Rankins, R., Jensen, P. in Bertucci, P., Microsoft SQL Server 2000 Unleashed, druga

ured., Sams, 2008.

[39] The Need for Replication Technology, 2014. [Elektronski]. Dostopno na:

http://www.unifx.com/data/replication.html. [Poskus dostopa 15. 8. 2015].

[40] Pensak, D., Cristy, J. in Singles, S., An Architecture for Distributing and Sharing

Corporate Information and Information security architecture for encrypting

documents for remote access while maintaining access control, 2012.

[41] Yakushin, I., Selected features of DB2 & metadatabase replication, 2015.

[Elektronski]. Dostopno na: http://www.ligo.caltech.edu/docs/G/G020413-00.pdf.

[Poskus dostopa 15. 9. 2015].

Page 79: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

67

[42] Kemme, B. in Alonso, P., Using Optimistic Atomic Broadcast in Transaction

Processing Systems, 2010. [Elektronski]. Dostopno na: http://csdl.computer.org/

comp/trans/tk/2003/04/k1018abs.htm. [Poskus dostopa 16. 9. 2015].

[43] Baragoin, C., Building the operational data store on DB2 UDB using IBM Data

Replication, WebSphere MQ Family, and DB2 Warehouse Manager, San Jose,

California: IBM Corp., International Technical Support Organization, 2001.

[44] Otey, M., Database Replication Components, SQL Server Magazine, 2009.

[Elektronski]. Dostopno na: http://www.sqlmag.com/Articles/Print.cfm?ArticleID=

5677. [Poskus dostopa 16. 9. 2015].

Page 80: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

68

Page 81: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

69

Page 82: PRIMERJAVA ORODIJ ZA REPLIKACIJO PODATKOV MED … › download › pdf › 67606177.pdf · Smetanova ulica 17 2000 Maribor, Slovenija Aleš Flajšman PRIMERJAVA ORODIJ ZA REPLIKACIJO

70