Sinkronizoni SQL Server databazat në disa burime në largësi (remote)

Skenari

Aplikacionet që përdoren nga përfaqësuesit e shitjës të cilët janë në udhëtime ose punëtor të fushave të tjera – ngasësit e shpërndarjës, vizitat e motrave medicinale etj, janë të atilla që kërkojnë të mbledhin të dhëna nga vendet e largëta dhe më pastaj t’i sjellin ato në qendrën kryesore të të dhënave. Gjithashtu edhe të dhënat nga qendra e të dhënave, herë pas herë është e nevojshme që të dërgohen nëpër këto vende në largësi, për të qenë të dhëna të freskuara në të dy anët.

Për shembull, kurdo që motrat medicinale bëjnë vizita tek një pacient, japin informatat e vizitës në databazë përmes një pajisje mobile. Në fund të ditës, të gjitha këto të dhëna që janë krijuar dërgohen tek qendra e të dhënave në një spital. Më pastaj, motrat medicinale mund të sinkronizojnë pajisjet mobile me databazën e qendrës së të dhënave të sipitalit, kështu që aty ruhen të dhënat për pacientët e tyre dhe gjithashtu informatat rreth ndonjë vizite të re që duhet bërë në ditët në vijim.

Në skenaret e tilla, është e nevojshme që të sinkronizohen informatat nga pajisja mobile në databazën qëndrore.

Zgjidhja

1. Përdorni replikimin e SQL Server. Ajo sinkronizon databazat duke kopjuar dhe duke bërë shpërndarjën e rekordeve apo të rreshtave nga një databazë në tjetrën kur këto databaza janë në vende të ndryshme.

Janë disa nga limitimet kur SQL Server Replikimi nuk mund të përdoret:

  • Vetëm edicionet Standard ose Enterprise të SQL Server mund të sillen si Publisher, kështu që nëse ju jeni duke përdorur edicionin SQL Express, ju do të duhej të bëni ngritje (Upgrade) në version/edicion.
  • Një konfigurim me një Publisher të SQL Server 2005 dhe Subcriber të SQL Server 2008 nuk përkrahet për replikime ueb.
  • Versioni i Distributor duhe të jetë më i madhë ose baraz me versionin e Publisher.
  • Versioni i Subscriber në replikimet transakcionale nuk duhet të jetë më i vjetër ose më larg së dy versione të Publisher, shembull një Publisher i SQL Server 2000 nuk mund të ketë Subscriber të SQL Server 2012.
  • Versioni i Subscriber nw replikimet merge duhet tw jetw mw i vogwl apo baraz me versionin e Publisher, shembull Subscriber i SQL Server 2012 nuk mund tw ketw Publisher tw SQL Server 2008.

2. Përdorimi i platformës për Sinkronizim (Sync Framework), apo një API e cila mundëson krijimin e aplikacioneve të cilat sinkronizojnë databazat në mes tyre. Ofron shumë fleksibilitet por kërkon zhvillim e cila rritë kostot dhe kohën e zbatimit.

3. Përdorni ApexSQL Data Diff, një vegël për krahasim të të dhënave dhe për sinkronizim e cila gjenë ndryshimet në mes të të dhënave dhe rregullon ato pa ndonjë gabim. Ajo mund të krahason dhe të sinkronizon databazat aktive (live) dhe ato që janë kopje të rregullta dhe të kompresuara dhe të gjeneron raporte gjithpërfshirëse për ndryshimet e gjetura, të krijoj fajllin për sinkronizim dhe të ekzekutoj atë.

Si të bëhet kjo

Imagjinoni që ju keni një databazë qëndrore të të dhënave në një qendër të madhe spitali dhe databazën e Vizitave në pajisjet mobile të motrave medicinale. Spitali vendos rekorded për vizitat në tabelën e Vizitave dhe motrat medicinale sinkronizojnë pajisjet e tyre mobile cdo mëngjes duke marr rekordet e fundit dhe të dhënat për udhëtimet që do t’i bëjnë gjatë ditës. Rekordet që futen gjatë ditës nga motrat medicinale, ruhen në tabelën VisitReports tw pajisjës mobile.

  1. Filloni ApexSQL Data Diff
  2. Për Source, zgjedhni Database që paraqet burimin e të dhënave, qendrën e të dhënave tuaja si Server i të dhënave dhe si databazë zgjedhni databazën tuaj qëndrore.
  3. Për Destination, zgjedhni Database qw paraqet destinacion i të dhënave, një pajisje të largët (remote) si Server i të dhënave (pajisje mobile e motrave) dhe së fundi databazën e cila do të sinkronizohet.

    Datasources type and details selection in ApexSQL Data Diff

  4. Klikoni butonin Compare

    Të gjitha tabelat e databazave do të krahasohen dhe do të paraqitën në pjesën kryesore të aplikacionit

    Main grid after SQL Server database comparison

    Rekordet që janë futur në tabelën Vizitorët, në Spital mund të shihen tek tab-faqja Missing

  5. Kontrolloni tabelat të cilat dëshironi t’i sinkronizoni

    Checking the tables for database synchronization

  6. Klikoni Synchronize në menunë kryesore

    Synchronize button in ApexSQL Data Diff

  7. Klikoni Next në hapin Synchronization direction të magjistarit për sinkronizim apo Synchronization wizard.
  8. Në hapin e Output options të Synchronizatin wizard, zgjedhni Synchronize database si një veprim i radhës

    Choosing output action in Synchronization wizard

  9. Klikoni Next
  10. Kontrolloni përmbledhjën e veprimeve të cilat do të ekzekutohen si dhe ndonjë vërejtje eventuale nëse paraqitet.

    Summary of the actions and warnings preview

  11. Klikoni butonin Synchronize nga menuja kryesore.
  12. Klikoni OK në formën e dialogut të paraqitur

    SQL Server database change notification dialogue

    Kur të përfundon sinkronizimi i databazës së destinuar në rastin tonë e cila është në largësi (remote), do të paraqitet mesazhi si në vijim

    Script execution results message

  13. Klikoni butonin Save në menunë kryesore Home për të ruajtur tiparet e sinkronizimit në një projekt dhe në mënyrë që për herën tjetër të veprohet më shpejtë dhe më lehtë një sinkronizim i tillë.

Nëse në mbrëmje, ju duhe të sinkronizoni rekordet të cilat i kan futur motrat gjatë punës ditore që kan bërë në databazën e tyre, me databazën qendrore, hapat janë të ngjajshëm:

  1. Caktoni databazën e pajisjes mobile si burim i të dhënave Source dhe databazën qëndrore që të jetë databazë e destinuar pra Destination

    Selecting the SQL Server database Source and Destination

  2. Klikoni Compare
  3. Zgjedhni tabelat në të cilat janë futur rekordet e reja gjatë ditës. Rekordet do të paraqiten tek tab-faqja Missing:

    Comparison and synchronization of the Source and Destination databases

  4. Klikoni butonin Synchronize në menu.
  5. Përmes Synchronization wizard, shtoni rekordet të cilat mungojnë në databazën qëndrore.
  6. Klikoni Save në menun kryesore Home të projektit të hapur, ruani tiparet e sinkronizimit në një projekt në mënyrë që herën tjetër të veprohet më shpejtë dhe më lehtë me procesin e sinkronizimit.

Tani pasi që i keni projektet e ruajtura, ju do të mund që t’i automatizoni proceset e sinkronizimit:

    1. Ruani komandën në vazhdim si fajll ekzekutues apo batch fajll E:\Test\Morning.bat i cili do të ekzekutoj projektin e krijuara Morning_Central_Nurse.axdd

      "C:\Program files 
      (x86)\ApexSQL\ApexSQLDataDiff2014\ApexSQLDataDiff.com" /
      pf:D: \Test\Morning_Central_Nurse.axdd /
      of:D: \Test\MorningSync.sql / sync / bu:D: \Test / v / f
      

      Ajo do të krijoj skriptën SQL, MorningSync.sql në follderin D:\Test për të futur të dhënat nga databaza qëndrore në databazën e motrave medicinale, krijon kopje të plotë të databazës së motrave në folderin D:\Test dhe futë rekordet të cilat mungojnë në databazën e motrave.

    2. Fillo SQL Server Management Studio
    3. Object Explorer apo shfletuesin e objekteve të SQL, zgjeroni follderin SQL Server Agent dhe me klik të tastit të djathtë në Jobs zgjedhni New job

    4. Caktoni emrin e Job tek rubrika Name.

    5. Në faqën Steps apo hapat, klikoni New për të shtuar një hap të ri në Job
    6. Caktoni tipin “Operating system (CmdExec)” për të, shtoni emrin e hapit, klikoni Open
    7. Zgjedhni fajllin e ruajtur ekzekutues apo batch D:\Test\MorningSync.bat

      SQL Server job steps

    8. Kliko butonin OK
    9. Hapeni tab-faqën Schedules dhe caktoni orarin se kur duhet të ndodhë puna që bënë sinkronizimin e databazave.

      Scheduling a SQL Server job

Përsëritni hapat nga 3 deri në 9 në mënyrë që të caktoni orarin e punës së sinkronizimit për mbrëmje.

Krahasimi dhe sinkronizimi i SQL Server databazave nga një lokacion në largësi me databazën qëndrore në qendrën e të dhënave duke përdorur ApexSQL Data Diff, mund të bëhet pavarsisht nga versionet e SQL Server-it që është në largësi apo në databazën qëndrore, pa pasur njohuri në programim dhe gjithcka është nën kontrollin tuaj deri në nivel të rekordeve.

Përkthyes: Dukagjin Maloku

October 20, 2015