Welcome to Sign in | Help
in Search

replicare SQL 2005

Last post 11-19-2009, 3:41 PM by crestinul. 5 replies.
Sort Posts: Previous Next
  •  11-18-2009, 1:43 PM 7828

    replicare SQL 2005

    Salut
    As avea si eu nevoie de un sfat pentru urmatoarea situatie: o aplicatie client pe C# si baza de date pe MSSQL 2005.
    Aplicatia trebuie sa ruleze in 2 locatii (filiala A, filiala B), fiecare locatie cu serverul propriu de SQL.
    La inceput se porneste cu baze de date identice, si apoi fiecare isi desfasoara fluxul de lucru normal.
    Ideea e ca imi trebuie ca toate datele din filiala B sa se replice si in filiala A (one way)...deci filiala A sa contina datele introduse local, cat si cele introduse la filiala B.

    tabelele au primary key autoincrement (1,1)

    Abordarea mea este urmatoarea:
    -baza de date de start este DB
    -copii baza DB pe filiala A si pt toate tabelele schimb increment 2 si seed urmatorul id available impar
    -copii baza DB pe filiala B si pt toate tabelele schimb increment 2 si seed urmatorul id available par (ca sa previn conflict primary key)
    -setez baza de date din filiala B ca publisher
    -setez baza de date din A ca subscriber
    -setez o replicare transactionala ce ruleaza continuu

    Prima problema ar fi daca este ok aceasta abordare, apoi:
    - in mod normal este indicat ca la o replicare sa se faca periodic (zilnic) si o replicare de tip snapshot, astfel incat sa se pastreze integritatea si consistenta datelor
    - in caz ca la filiala B se introduce o inregistrare noua, si, din nustiuce motiv aceasta nu se replica in filiala A, cum ar trebui sa procedez? trebuie sa captez erorile din replication monitor? cum fac sa fiu sigur de consistenta datelor?

    Atept orice sfat,
    Bafta


  •  11-18-2009, 2:43 PM 7829 in reply to 7828

    Re: replicare SQL 2005

    creieru:
    Salut
    As avea si eu nevoie de un sfat pentru urmatoarea situatie: o aplicatie client pe C# si baza de date pe MSSQL 2005.
    Aplicatia trebuie sa ruleze in 2 locatii (filiala A, filiala B), fiecare locatie cu serverul propriu de SQL.
    La inceput se porneste cu baze de date identice, si apoi fiecare isi desfasoara fluxul de lucru normal.
    Ideea e ca imi trebuie ca toate datele din filiala B sa se replice si in filiala A (one way)...deci filiala A sa contina datele introduse local, cat si cele introduse la filiala B.

    tabelele au primary key autoincrement (1,1)

    Abordarea mea este urmatoarea:
    -baza de date de start este DB
    -copii baza DB pe filiala A si pt toate tabelele schimb increment 2 si seed urmatorul id available impar
    -copii baza DB pe filiala B si pt toate tabelele schimb increment 2 si seed urmatorul id available par (ca sa previn conflict primary key)
    -setez baza de date din filiala B ca publisher
    -setez baza de date din A ca subscriber
    -setez o replicare transactionala ce ruleaza continuu

    Prima problema ar fi daca este ok aceasta abordare, apoi:
    - in mod normal este indicat ca la o replicare sa se faca periodic (zilnic) si o replicare de tip snapshot, astfel incat sa se pastreze integritatea si consistenta datelor
    - in caz ca la filiala B se introduce o inregistrare noua, si, din nustiuce motiv aceasta nu se replica in filiala A, cum ar trebui sa procedez? trebuie sa captez erorile din replication monitor? cum fac sa fiu sigur de consistenta datelor?

    Atept orice sfat,
    Bafta



    Ai putea sa incerci cu o replicare tranzactionala de tip push.
    Adica atunci cand se fac modificari pe B datele se replica de mssql engine folosind o tranzactie pe A,daca nu se reuseste acest lucru se face roolback la tranzactie.
    Deci ai putea incerca sa-ti definesti sa-ti faci un publish pe B avand ca item tabela cu pricina in care sa specifici ca replicarea sa fie push si tranzactionala, iar apoi sa faci subscribe la ea de pe A ,sa vezi cu repliucation Monitor cum merg lucrurile.
    Secolul XXI ori va fi religios ori nu va fi deloc
  •  11-18-2009, 3:00 PM 7831 in reply to 7829

    Re: replicare SQL 2005

    Asa am si definit replicarea tranzactionala, ca fiind de tip push.....
    dar ma gandeam...in situatia cand, sa zicem ca serverul B nu este disponibil...ce se intampla atunci? transaction distribuitorul de pe A incearca sa faca push la tranzactie,  si nu are unde....

    Poate ar fi recomandat ca atunci sa setez ca fiind de tip pull, adik sa extraga serverul B cand este disponibil.

    In alta ordine de idei, in afara de replication monitor, nu am siguranta ca datele din B sa se replice exact in A, fara lacune....adik sa fiu sigur ca atunci cand ambele servere sunt functionale, datele din B se reflecta exact si in A
    ?
  •  11-18-2009, 3:34 PM 7832 in reply to 7831

    Re: replicare SQL 2005

    Pai pune transaction distributorul pe b,si datele or sa fie impinse catre A atunci cand masina B o sa fie available...
    Secolul XXI ori va fi religios ori nu va fi deloc
  •  11-19-2009, 12:46 PM 7841 in reply to 7832

    Re: replicare SQL 2005

    Salut din nou.
    Inca o chestie...sa spunem ca se face insert pe o inregistrare in publisher, iar cand se incearca rularea tranzactiei si pe subscriber, apare o eroare (de ex. de foreign keys) si nu se face tranzactia. Situatii de genul asta se pot monitoriza numai cu replication monitor? adik periodic ar trebui sa verific daca totul e ok, si daca nu, ar trebui sa vad unde a aparut eroarea si s incerc sa rulez din nou tranzactia?

    sau cum se procedeaza?

    multumesc

  •  11-19-2009, 3:41 PM 7842 in reply to 7841

    Re: replicare SQL 2005

    Da situatiile de genu asta se inregistreaza in sql server logs te poti uita acolo si analiza situatia...
    Secolul XXI ori va fi religios ori nu va fi deloc
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems