prisoner management system sql server 2008 replication · • publisher = baza de date care...

106
Prisoner Management System SQL Server 2008 Replication Mihai Matei, MCSD, MCT Daniel Bitin, MCITP, MCDBA, MCSD

Upload: others

Post on 06-Sep-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Prisoner Management SystemSQL Server 2008 Replication

Mihai Matei, MCSD, MCTDaniel Bitin, MCITP, MCDBA, MCSD

Page 2: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Agenda

EssensysPMS WebArhitecturaSQL Server 2008 ReplicationMetodologieQ & A

1

2

3

4

5

6

Page 3: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Essensys1 3 4 5 62

1 Essensys

Page 5: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Quality Software on Time !

Essensys1 3 4 5 62

Page 6: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Oameni•MCITP - BI Dev, DB Dev, DB Dev 2008, DB Admin, etc.•MCPD•MCTS - Web Dev, Windows Dev, etc.•MCDBA•MCSD .Net•MCT•MCP

Essensys1 3 4 5 62

Page 7: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Oameni Proces

•Microsoft Solutions Framework•ISO9001, IQNet•Tailoring•Influente: SCRUM, FDD

Essensys1 3 4 5 62

Page 8: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Oameni Proces Tehnologie

•.Net Framework 3.5 – 1.0•SQL Server 2008-2000•Sharepoint•Office•Dynamics CRM

Essensys1 3 4 5 62

Page 9: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Business Intelligence Solutions

• SQL Server 2008, 2005, 2000• Reporting Services• Integration Services• Analysis Services• Crystal Reports

Essensys1 3 4 5 62

Page 10: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Business Intelligence Solutions

Custom Solutions

• Application integration• Workflow solutions• Web based applications• Windows forms• Web services• Windows services• Simulation solutions

Essensys1 3 4 5 62

Page 11: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Business Intelligence Solutions

Custom Solutions

Collaboration Solutions

• Internet & Intranet portals• Sharepoint Portal• eCommerce solutions

Essensys1 3 4 5 62

Page 12: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Business Intelligence Solutions

Custom Solutions

Collaboration Solutions

Consulting Services

• Requirements analysis• Software architecture• Development Process Guidance (MSF)• Technical Reviews• Training

Essensys1 3 4 5 62

Page 13: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Business Intelligence Solutions

Custom Solutions

Collaboration Solutions

Consulting Services

CRM Solutions• Customer Relationship Management• Microsoft Dynamics CRM

Essensys1 3 4 5 62

Page 14: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Business Intelligence Solutions

Custom Solutions

Collaboration Solutions

Consulting Services

CRM Solutions

Outsourcing Services

Essensys1 3 4 5 62

Page 16: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Alte informatii:

• 5 ani de activitate (2005 - 2010)• 50+ proiecte de succes• Sectoare: financiar-bancar, telecom,

distributie, militar, servicii, public• 100% satisfactie clienti (87%+13%) • 96% din clienti ar recomanda Essensys• 97% din clienti ar contracta Essensys

http://www.essensys.ro

Essensys1 3 4 5 62

Page 17: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

PMS Web2 3 4 5 61

2 PMS Web

Page 18: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Beneficiar: Administratia Nationala a Penitenciarelor,Ministerul Justitiei

Denumire: Sistemul de evidenta a datelor persoanelorprivate de libertate a.k.a PMS Web

Scop: Dezvoltarea PMS Web V3

Deadline: 23 Decembrie 2008

PMS Web2 3 4 5 61

Page 19: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Functionalitate:

•Evidenta datelor personale•Pedepse•Drepturi•Evidenta medicala•Evidenta psihologica•Evidenta financiara•Paza•Incidente•Sistem de telefonie•Vizite•Evidenta contracte

•Organizarea muncii•Evidenta juridica•Cod penal•Cartele acces•Prezentari instante•Calcul zile muncite•Calcul drepturi banesti•Pontaj•Miscare zilnica•Rapoarte•Etc. etc.

PMS Web2 3 4 5 61

Page 20: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Provocari:

• Timp !• Complexitate functionala

• Domenii : medical, legal, financiar, etc.• Echipa de proiect

• Distributie geografica: 46 locatii• Nr mare de utilizatori (>3000)• Aplicatie critica• Baza de cod considerabila• Timp !• Timp !

PMS Web2 3 4 5 61

Page 21: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Echipa Essensys: 13 persoane1 Project Manager 1 Technical Lead 11 Dezvoltatori

Echipa ANP: 7 persoane (IT ANP)Echipa ANP analiza: 17 persoane (beneficiari)Echipa ANP IT teritoriu: 45 persoane (IT teritoriu)--------------------------------------------------------------------Total ~81 persoane

PMS Web2 3 4 5 61

Page 22: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Statistici:

Total linii de cod: 785.886Nr de tabele: 361Nr total inregistrari: 28.505.940Volum baza centrala: 30 GbNr de pagini: 373Nr de proceduri stocate: 1841Nr de view-uri: 140Nr de rapoarte: 341Nr utilizatori: 3100

PMS Web2 3 4 5 61

Page 23: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Arhitectura2 4 5 61 3

3 Arhitectura

Page 24: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare
Page 25: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Arhitectura2 4 5 61 3

Page 26: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Arhitectura logica

Arhitectura2 4 5 61 3

Page 27: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Tehnologii:

• Microsoft .Net Framework 3.5 : C#, ASP.Net, ADO.Net, AJAX,

• SQL Server 2008 Enterprise

• SQL Server Integration Services

• SQL Server Reporting Services

• Windows Server 2008

• HyperV

• Active Directory

Arhitectura2 4 5 61 3

Page 28: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

4 Replicare in SQL Server 2008

Replicare2 3 5 61 4

Page 29: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Replicare :

Copierea, distribuire si sincronizare de date intre baze de date distincte.

Replicare2 3 5 61 4

Page 30: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Publisher

Publication

Distributor

Subscriber

Subscriber

Subscriber

Replicare2 3 5 61 4

Page 31: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Publisher

Publication = N articles

Distributor

Subscriber

Subscriber

Subscriber

TablesViewsStored proceduresFunctionsRecordsFiltre

Replicare2 3 5 61 4

Page 32: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

• Publisher = Baza de date care furnizeaza publicatii.

• Distributor = Baza de date cu informatii despre replicare. Fiecare publisher este asociat unui singur distributor. Local = Publisher si Distributor pe acelasi server (comun)Remote = Publisher si Distributor servere separate

• Subscriber = Baza de date care receptioneaza informatii.Poate receptiona date de la mai multi publisheri.In functie de tipul replicarii poate modifica datele!

• Article = Obiect inclus in replicare. Tabele, view-uri, proceduri stocate.Pentru tabele se pot filtra coloanele si inregistrarile incluse.

• Publication = Colectie de unul sau mai multe articole

• Subscription = Cererea unui subcriber de a primi date replicate

• Replication Agents = Aplicatii care participa la executia replicarii

Replicare2 3 5 61 4

Page 33: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Agents

• SQL Server Agent

• Snapshot Agent

• Log Reader Agent

• Distribution Agent

• Merge Agent

• Queue Reader Agent

Replicare2 3 5 61 4

Page 34: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Scenarii de utilizare

• Server – Client• Server – Server

Replicare2 3 5 61 4

Page 35: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Server - Client

Replicare2 3 5 61 4

Page 36: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Exemple scenarii Server – Client

• Sales Force Automation

• Distributie

• POS

• Aplicatii de sondaje

• Aplicatii tip Info Kiosk

• Transporturi (aerian, maritim, terestru)

• Aplicatii SCADA

Scenarii semiconectate (conexiune permanenta indisponibila)

Replicare2 3 5 61 4

Page 37: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Server - ServerSincronizare intre locatii

Replicare2 3 5 61 4

Page 38: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Server - ServerScalability Load Balancing

READ

WRITE

Replicare2 3 5 61 4

Page 39: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Server - ServerScalability & Availability

Bucuresti

Iasi

Craiova

Cluj

Replicare2 3 5 61 4

Page 40: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Server - ServerPerformance :- Business Intelligence - Batch Processing

Replicare2 3 5 61 4

ETL

Page 41: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Server - ServerIntegrare Oracle / IBM DB2

Replicare2 3 5 61 4

Page 42: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Exemple scenarii Server – Server

• Aplicatii distribuite geografic• Cu centralizarea datelor (ex: PMS Web)

• eCommerce

• Solutii BI

• Aplicatii cu procesari complexe (ex: procesari statistice)

• Aplicatii cu incarcare mare (preponderent citire, ex: site-uri)

• Integrare cu Oracle / IBM DB2 (ex: integrare core banking)

Replicare2 3 5 61 4

Page 43: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

PUSH Vs. PULL

Model PUSH

• “Push subscription”• Agentii ruleaza la Distributor• Distribuitor-ul controleaza replicarea

Model PULL

• “Pull subscription”• Agentii ruleaza la Subscriber• Subcriber-ul controleaza replicarea

Replicare2 3 5 61 4

Page 44: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

3 Tipuri de replicare:

•Snapshot

•Transactional• Standard • Updating subscription (Immediate updates)• Updating subscription (Queued updates)• Peer-to-peer

•Merge

Replicare2 3 5 61 4

Page 45: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Snapshot Replication (“Copy & Paste”)Detectia modificarilor: Nu se aplicaModificari la subscriber: NU Conflicte: NUAgenti: Snapshot, DistributionFiltare/partitionare: DA

Aplicatii:•Sincronizare initiala pentru transactional & merge•Volum mic de date •Date semistatice (modificari rare)•Multe modificari intr-o perioada scurta de timp•Datele neactualizate sunt acceptabile

Replicare2 3 5 61 4

Page 46: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Replicare2 3 5 61 4

Snapshot

Pas initial in Transactional & Merge

Page 47: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Transactional ReplicationDetectia modificarilor: Transaction LogModificari la subscriber: NU (Default)

DA (Updating Subscription)Conflicte: NU / DAAgenti: Snapshot, Log Reader, Distribution, Queue Read.Filtare/partitionare: DA

Aplicatii:• Latenta minima (~Real time)• Starile intermediare sunt necesare • Volum mare de operatii (insert, delete, update)• Modificari incrementale sunt necesare• Integrare cu Oracle sau IBM DB2

Replicare2 3 5 61 4

Page 48: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Replicare2 3 5 61 4

Transactional - Default

Page 49: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Replicare2 3 5 61 4

Transactional – Immediate Updates

Page 50: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Replicare2 3 5 61 4

Transactional – Queued Updates

Page 51: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Transactional – Peer-to-Peer

• Caz particular tranzactional• Fiecare nod este si publisher si subscriber

Avantaje: • + Performanta la citire • Performanta la scriere este identica• Availability• Scriere pe un singur nod (partitionare)• Mentenanta

Nu suporta:• Initializari snapshot (backup)• Participanti non-SQL Server• Filtre pe inregistrari sau coloane• Updating subscriptions• Coloane timestamp

Replicare2 3 5 61 4

Page 52: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Merge ReplicationDetectia modificarilor: TriggersModificari la subscriber: DAConflicte: DAAgenti: Snapshot, MergeFiltare/partitionare: DA

Aplicatii:• Mai multi subscriberi pot modifica aceleasi date• Subscriberi autonomi (offline)• Modificari incrementale nu sunt necesare (doar starea finala)• Date partitionate intre subscriberi

Replicare2 3 5 61 4

Page 53: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. RowguidIdentifica unica o inregistrare replicata

2. Triggers INS, UPD, DELPentru determinarea modificarilor

3. Tabele sistemContin metadate despre modificariMSMerge_contents & MSMerge_tombstone

4. Proceduri stocatePentru aplicarea modificarilor la destinatie

Replicare2 3 5 61 4

Page 54: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Initializare

Replicare2 3 5 61 4

Page 55: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Sincronizare (PULL)1. UPLOAD

2. DOWNLOAD

Replicare2 3 5 61 4

Page 56: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Sincronizare (PUSH)1. UPLOAD

2. DOWNLOAD

Replicare2 3 5 61 4

Page 57: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Detectie Conflicte

•Prioritati (Server/Client)•Change Tracking

•Row level•Column level•Logical record level

Replicare2 3 5 61 4

Page 58: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Tipuri Conflicte

•Update – Update

•Update – Delete

•Failed change conflicts• Violari de constrangeri (FK, unique, etc.)• Coloane identity (fara range-uri)• Conflicte intre triggeri (ex: triggeri custom)• Lipsa obiecte dependente (ex: view publicat fara table)

Solutia in general este marcarea constrangerii Not For Replication

Replicare2 3 5 61 4

Page 59: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Partitii - Publicare nefiltrata

Replicare2 3 5 61 4

Page 60: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Partitii - Filtre statice

Replicare2 3 5 61 4

Page 61: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Partitii - Filtrare dinamica (Partitii distincte)

Replicare2 3 5 61 4

Page 62: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Partitii – Filtrare dinamica (Partitii intersectate / Overlapping)

Replicare2 3 5 61 4

Page 63: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Partitii - Filtre Join

Replicare2 3 5 61 4

Page 64: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Evaluarea partitiilor

• Precalculate (default)• Performanta la download (Publisher->Subscriber)• Hit minor de performanta la upload (Subscriber->Publisher)• MSmerge_partition_groups• MSmerge_current_partition_mappings =

Partition_groups X Contents • MSmerge_past_partition_mappings• Conditii pentru filtre (sintaxa)

• Determinate dinamic (“SetupBelongs”)• Mai putin performante la download• Tabele temporare• #belongs• #notbelongs

Replicare2 3 5 61 4

Page 65: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

CONCLUZII

1. Sincronizarea este o problema complexa

2. Replicarea este o solutie robusta de sincronizare

3. Performanta: minim de trafic (column tracking)

4. Flexibilitate: snapshot, tranzactional, merge

5. Fiabilitate: SQL Server 7.0 -> 2008 R2

6. Comunicatii: IP, HTTPS, VPN, IPSec

7. Costuri dezvoltare: minime vs. development

8. Costuri licentiere: rezonabile (SQL Standard)

9. Necesita un efort minim de mentenanta

10. Unele constrangeri in design-ul bazei

11. Alternative: Sync Framework, SQL Service Broker, Third party, Custom

Replicare2 3 5 61 4

Page 66: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

DEMOMerge Replication

Replicare2 3 5 61 4

Page 67: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Replicare2 3 5 61 4

Page 68: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Replicare2 3 5 61 4

ID Name LoginName ReportsToLoginName Rowguid

1 Ion Popescu vanzator1 vanzator2 123abf-…..

2 Pop Ionescu vanzator2 NULL 4e5cde-…..

SalesPerson

OrderHeader

ID SalesPersonID CustomerID OrderDate Rowguid

1 1 1 3/10/2010 a23abf-…..

2 2 1 3/10/2010 4e5cde-…..

OrderDetails

ID OrderID ProductID Quantity Price Rowguid

1 1 1 2 5 a23abf-…..

2 1 2 3 4 4e5cde-…..

3 2 2 3 6

4 2 3 4 7

Vanzator 1 + Vanzator 2

Vanzator 2

Vanzator 1 + Vanzator 2

Vanzator 1 + Vanzator 2

Vanzator 2

Vanzator 2

Page 69: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Demo Merge Replication

1. Initializarea publicarii

2. Initializare subscriber 1

3. Initializare subscriber 2

4. Sincronizare

Replicare2 3 5 61 4

Page 70: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiConfigurarea Distributor-ului – acelasi cu instanta Publisher.

Replicare2 3 5 61 4

Page 71: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiCrearea unui share accesibil de subscriber-i si configurarea acestuia ca locatie ptr

snapshot-uri.

Replicare2 3 5 61 4

Page 72: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiCrearea publicarii de tip merge.

Replicare2 3 5 61 4

Page 73: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiAlegerea tipurilor de subscriber-i permise.

Replicare2 3 5 61 4

Page 74: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiAlegerea articolelor ce se vor publica. Pentru fiecare tabela se poate alege daca publicarea

sa fie bidirectionala sau download-only.

Replicare2 3 5 61 4

Page 75: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiCrearea filtrului pe tabela OrderHeader care la replica datele astfel incat un vanzator sa

aibe acces la order-ele lui si ale vanzatorilor subordonati lui.

Replicare2 3 5 61 4

Page 76: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiCrearea filtrului join care va asigura faptul ca, la un vanzator, vor ajunge doar inregistrarile

din OrderDetail corespunzatoare inregistrarilor in OrderHeader la care are acces.

Replicare2 3 5 61 4

Page 77: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiSe alege ca job-ul care creeaza snapshot-ul sa porneasca imediar si sa ruleze periodic.

Replicare2 3 5 61 4

Page 78: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiSe aleg credentialele sub care va rula job-ul de snapshot la Distributor si cum se va

conecta el la Publisher.

Replicare2 3 5 61 4

Page 79: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiSe da un nume publicarii. Pe o baza de date pot exista mai multe publicari.

Replicare2 3 5 61 4

Page 80: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiSe adauga inregistrari in tabelele sistem si se porneste job-ul de snapshot.

Replicare2 3 5 61 4

Page 81: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiSe adauga inregistrari in tabelele sistem si se porneste job-ul de snapshot.

Replicare2 3 5 61 4

Page 82: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiPentru fiecare vanzator avem un login Sql care este in rolul [public] pe baza publicata.

Replicare2 3 5 61 4

Page 83: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiLogin-ul fiecarui vanzator se adauga la Publication Access List.

Replicare2 3 5 61 4

Page 84: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiSe creaza cate un Data Partition ptr fiecare vanzator. Se selecteaza toate Data Partition-

urile create si se apasa “Generate the selected snapshots now”.

Replicare2 3 5 61 4

Page 85: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

1. Initializarea publicariiSe pornesc job-urile de snapshot dinamic care

scriu fisierele cu schema si datelearticolelor publicate.

Replicare2 3 5 61 4

Page 86: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

2. Initializare subscriber 1Se creaza subscrierea ptr vanzator1 de tip pull.

Replicare2 3 5 61 4

Page 87: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

2. Initializare subscriber 1Se creaza o noua baza de date in care se vor replica datele de la Publisher.

Replicare2 3 5 61 4

Page 88: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

2. Initializare subscriber 1Se aleg credentialele sub care va rula job-ul de sincronizare la subscriber si cum se va

conecta la Publisher.

Replicare2 3 5 61 4

Page 89: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

2. Initializare subscriber 1Alegem ca sinscronizarea sa se faca “on demand” si initializarea sa se produca imediat.

Replicare2 3 5 61 4

Page 90: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

2. Initializare subscriber 1Subscrierea este creata si merge agent-ul este rulat prima data.

Replicare2 3 5 61 4

Page 91: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

3. Initializare subscriber 2Initializarea subscrierii 2 se face in acelasi

mod ca si prima cu exceptia ca aceastase va conecta la Publisher folosind login-ul vanzator2.

Replicare2 3 5 61 4

Page 92: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

4. SincronizareAdaugam un order nou la subscriber-ul 1 (vanzator1). Observam ca primeste id-ul 2003

si rowguid-ul b98b20…

Replicare2 3 5 61 4

Page 93: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

4. SincronizareSincronizam subscriber-ul 1.

Replicare2 3 5 61 4

Page 94: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

4. SincronizareNoul order apare la Publisher.

Replicare2 3 5 61 4

Page 95: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

4. SincronizareApare si in MSmerge_current_partition_mapping ca apartinand ambelor partitii de date.

Replicare2 3 5 61 4

Page 96: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

4. SincronizareDupa sincronizare la subscriber2...

Replicare2 3 5 61 4

Page 97: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

4. SincronizareOrder-ul nou introdus va fi accesibil si acestuia.

Replicare2 3 5 61 4

Page 98: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Metodologie

5 Metodologie

2 3 4 61 5

Page 99: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

T0+2 Saptamani

T0+6 Saptamani?????

Metodologie2 3 4 61 5

Page 100: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Decizii:

1. Paralelizare extrema => Riscuri asumate2. T0: Start configuration management3. T0: Start dezvoltare4. Separarea analizei in module5. Echipe separate de analiza6. Sign-off analiza separat pe module7. Start dezvoltare inainte de sign-off8. Planning detaliat9. Status zilnic10.Generare de cod11.1% Inspiratie + 99% Transpiratie

Metodologie2 3 4 61 5

Page 101: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Planning

Stabi

Start Scopecomplete

Metodologie2 3 4 61 5

Development

Page 102: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Configuration Management

Dezvoltare infrastructura & cerinte nefunctionale

Planning M1

Stabilization M1

Stabilization M5

Start Scopecomplete

Releasereadiness

Deployment

Sign off

Development M1

Planning M2 Sign off

Stabilization M2Development M2

Planning M3 Sign off

Development M3 Stabilization M3

Planning M4 Sign off

Development M4 Stabilization M4

Planning M5 Sign off

Development M5

Planning M5 Sign off

Development M5 Stabilization M5

Metodologie2 3 4 61 5

Page 103: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Metodologie2 3 4 61 5

Page 104: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Metodologie2 3 4 61 5

Page 105: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Q&A2 3 4 5 61 7

7 Q & A

Page 106: Prisoner Management System SQL Server 2008 Replication · • Publisher = Baza de date care furnizeaza publicatii. • Distributor = Baza de date cu informatii despre replicare. Fiecare

Quality Software on Time !

http://www.essensys.roPrezentarea in sectiunea Download\Whitepapers