konto usunięte

Temat: Synchronizacja baz danych.

Witajcie,

naszła mnie ostatnio myśl czy istnieje może jakieś narzędzie do synchronizacji baz danych. Zarówno ręczna jak i automatyczna.

___System:
Dwa środowiska:
1. Deweloperskie (DEV)
2. Produkcyjne (PROD)

___Problem:
Cały projekt wstępnie rozwijany jest i tworzony oczywiście na DEV. Po testach i sprawdzeniu DEV przerzucana jest na PROD (eksport/import).

Produkcja żyje a ludzie z niej korzystający są zbyt leniwi by wprowadzając zmiany przechodzi proces DEV(zmiany)->PROD(exp/imp) dlatego robią zmiany od razu na produkcji.

Po pewnym czasie postanawia się rozbudować system i robi się to po bożemu czyli zaczynając od DEV.

___Pytanie:
1. Jak dokonać synchronizacji baz danych?
2. Czy istnieje jakiś automat, który będzie mi sprawdzał różnice baz co jakiś czas?
3. Czy znacie jakiś sprawdzony sposób sprawdzania różnic między bazami? Jeszcze jak to jest jedna baza to nie ma problemu, ale co jak bazy się różnią i jeszcze po pewnym czasie zmieniły się struktury i dane w obu bazach?

Daniel
Łukasz Kurowski

Łukasz Kurowski Usque Ad Finem

Temat: Synchronizacja baz danych.

Czy chodzi o synchronizację kodu, czy danych?

konto usunięte

Temat: Synchronizacja baz danych.

Witaj

Jeśli problem dotyczy danych to proponuje zapoznać się z technologią replikacji baz danych. Na 100% ma ten mechanizm MySQL, SQL Server, ASE (osobny Replication Server). przypuszczam że Oracle i inne znane i popularne też mają zaimplementowane takie mechanizmy

konto usunięte

Temat: Synchronizacja baz danych.

Właśnie chodzi zarówno o synchronizację danych jak i struktury.

Nie wiem czy korzystaliście kiedyś z synchronizacji folderów w Total Commandrze, który porównuje wskazane foldery pod kątem różnić w plikach ewentualnie pokazuje ich braki czy nadmiar.

Replikacja jest słabym rozwiązaniem w tym przypadku. Bo synchronizuje w jedną stronę i tylko dane.

Ja bym chciał mieć możliwość porównania na żądanie dwóch lub więcej źródeł zarówno pod kątem danych jak i struktury.

Dodatkowo nie chciałbym się ograniczać do jednego rodzaju baz danych.

Znacie coś takiego?
Łukasz Kurowski

Łukasz Kurowski Usque Ad Finem

Temat: Synchronizacja baz danych.

Daniel Kmieć:
Właśnie chodzi zarówno o synchronizację danych jak i struktury.

Nie wiem czy korzystaliście kiedyś z synchronizacji folderów w Total Commandrze, który porównuje wskazane foldery pod kątem różnić w plikach ewentualnie pokazuje ich braki czy nadmiar.

Replikacja jest słabym rozwiązaniem w tym przypadku. Bo synchronizuje w jedną stronę i tylko dane.

Ja bym chciał mieć możliwość porównania na żądanie dwóch lub więcej źródeł zarówno pod kątem danych jak i struktury.

Dodatkowo nie chciałbym się ograniczać do jednego rodzaju baz danych.

Znacie coś takiego?

Ile chcesz wydać i czy w ogóle chcesz na to coś wydać? Za taki soft na moje oko ktoś zechce co najmniej kilkaset tysięcy.

Do synchronizacji danych pomiędzy różnej maści bazami danych w obie strony i w ogóle super duper może Ci posłużyć to:
http://www-01.ibm.com/software/data/infosphere/change-...

O synchronizacji modelu danych itp. nie słyszałem w ogóle, ale to akurat jest w miarę proste, więc może nawet być tego sporo.

konto usunięte

Temat: Synchronizacja baz danych.

Daniel Kmieć:
Ja bym chciał mieć możliwość porównania na żądanie dwóch lub więcej źródeł zarówno pod kątem danych jak i struktury.

Porównanie pod kątem struktury mogą zapewniać narzędzia do modelowania, np InfoSphere Data Architect (na podstawie porównania tworzy również delty). Co do danych stosuje się raczej replikacje (może być dwukierunkowa i heterogeniczna), np. z użyciem wspomnianego wyżej InfoSphere Change Data Capture.

konto usunięte

Temat: Synchronizacja baz danych.

porównanie struktur tabel nie jest problemem -> information_schema twoim przyjacielem jest, porównanie danych - hmm a jak masz bazy po kilkaset MB robi się trochę niefajnie

konto usunięte

Temat: Synchronizacja baz danych.

Jest jeszcze coś takiego jak GIODO. Mówienie o replikowaniu danych produkcyjnych do bazy testowej... W tym kontekście może się okazać dość drogie w razie "wizyty" kogoś od nich. :)
Co do tematu. W bazie danych robi się tabelę, która przechowuje naniesione zmiany. W systemie plików, w aplikacji, zakłada się katalog ze zmianami do naniesienia. Procedura przeniesienia danych z produkcji do systemu developerskiego powinna zakładać anonimizację. Dalej nakłada się patche, z dysku, które jeszcze nie zostały nałożone na produkcji. Naniesienie zmian na bazę produkcyjną jest banalne. Dodatkowy bonus jest taki, że jak jest 10 testerów, to każdy może mieć swoją kopię systemu, bywa pomocne... :D
Spójności systemu pilnują ciągłe testy integracyjne.
Całość trzeba przemyśleć, bo nie wszystko jest oczywiste. No, ale - jak już się zrobi - pozostaje czytać maile od Hudsona i walić po łapach. Polecam :) Raczej przemyślenie jak walenie po łapach :D
Wojciech Nowak

Wojciech Nowak Konsultant Systemów
Bankowych | Analityk
Systemowy

Temat: Synchronizacja baz danych.

Przemysław R.:
porównanie struktur tabel nie jest problemem -> information_schema twoim przyjacielem jest, porównanie danych - hmm a jak masz bazy po kilkaset MB robi się trochę niefajnie

dokładnie, w zasadzie w każdym silniku załatwić to może prosty select na odpowiednich tablicach systemowych. Porównać można nie tylko struktury ale nawet i body procedur składowanych.

Temat: Synchronizacja baz danych.

Jeżeli to Oracle to polecam TOAD'a, kilka kliknięć i tylko czekać. Ale jeżeli chcesz wyrównać stan baz pod kątem danych i struktur jednocześnie to przecież wystarczy zrobić kopię bazy. Chyba, że czegoś nie zrozumiałem.Marcin D. edytował(a) ten post dnia 10.03.11 o godzinie 00:16
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Synchronizacja baz danych.

Daniel Kmieć:
Replikacja jest słabym rozwiązaniem w tym przypadku. Bo synchronizuje w jedną stronę i tylko dane.

To akurat nie jest prawdą, replikować można w obie strony i nie tylko dane. Kwestia ustawień.

konto usunięte

Temat: Synchronizacja baz danych.

Przemysław R.:
porównanie struktur tabel nie jest problemem -> information_schema twoim przyjacielem jest, porównanie danych - hmm a jak masz bazy po kilkaset MB robi się trochę niefajnie

niekoniecznie, akurat mam to teraz na tapecie ;)

http://rkubalski.blogspot.com/2011/03/tablediff.html

co do replikacji dev <=> prd to pierwszy krok do poważnych problemów

konto usunięte

Temat: Synchronizacja baz danych.

zgadzam sie z tym ze replikacja prod <=> dev nie jest dobrym pomyslem,rownie dobrze mozesz robic zmiany na samej produkcji (No bo przeciez masz backupy)
Kiedys uzywalem TOADA i sprawowal sie niezle z oracle, ale jest chyba tez pod inne DB.
TableDiff mozna by opakowac w jakis GUI zeby bylo bardziej intuicyjne...

konto usunięte

Temat: Synchronizacja baz danych.

Fakt,

wszystko można załatwić zaglądając do baz danych wyciągając struktury tabel i porównywać to z drugą bazą. Tylko to nie o to chodzi.

Czy znacie narzędzie, które posiada silnik do zarządzania tym wszystkim bez konieczności pisania zapytań SQL?

Narzędzie, które można dać praktycznie każdemu by przy pomocy myszki sobie zaznaczył co chce porównać i co gdzie nadpisać, dopisać, usunąć?

Replikacja mi nie wystarczy, bo z tego co wiem synchronizuje tylko dane i tylko w obrębie jednego typu bazy.

Temat: Synchronizacja baz danych.

A moje zdanie jest takie, że nie potrzebujesz softu do synchronizacji tylko bata na developerów modyfikujących bazę bezpośrednio na produkcji.Wojciech T. edytował(a) ten post dnia 10.03.11 o godzinie 10:48

konto usunięte

Temat: Synchronizacja baz danych.

Marcin Pluta:
zgadzam sie z tym ze replikacja prod <=> dev nie jest dobrym pomyslem,rownie dobrze mozesz robic zmiany na samej produkcji (No bo przeciez masz backupy)
Kiedys uzywalem TOADA i sprawowal sie niezle z oracle, ale jest chyba tez pod inne DB.
TableDiff mozna by opakowac w jakis GUI zeby bylo bardziej intuicyjne...


mówisz i masz
http://www.sqlteam.com/downloads/TableDiffGui.zip

konto usunięte

Temat: Synchronizacja baz danych.

Daniel Kmieć:
Replikacja mi nie wystarczy, bo z tego co wiem synchronizuje tylko dane i tylko w obrębie jednego typu bazy.

Replikacja może obsługiwać bazy danych różnych producentów. Jest to wówczas nic innego niż replikacja heterogeniczna, czego przykładem jest InfoSphere CDC obsługujący jednocześnie Oracle DB, IBM DB2 i Informix, MS SQL Server.
Daniel Kmieć:
wszystko można załatwić zaglądając do baz danych wyciągając struktury tabel i porównywać to z drugą bazą. Tylko to nie o to chodzi.

Czy znacie narzędzie, które posiada silnik do zarządzania tym wszystkim bez konieczności pisania zapytań SQL?

Narzędzie, które można dać praktycznie każdemu by przy pomocy myszki sobie zaznaczył co chce porównać i co gdzie nadpisać, dopisać, usunąć?

Takimi narzędziami mogą być właśnie narzędzia do modelowania.

Wypowiedź o GIODO przypomniała mi jeszcze jedną kwestię. Istnieją narzędzia do przygotowania danych testowych, np IBM Optim Test Data Management czy Informatica Information Lifecycle Management Data Subset. Posiadają one jeszcze opcje maskowania danych by deweloperzy mieli dane spójne ale bez wartości biznesowej.

Takie narzędzia jednocześnie eksportują strukturę i dane. W przypadku Optima znajomość SQLa jest w ogóle niepotrzebna, bo jest to kreator graficzny. Informacje nt produktu mogę Ci przesłać na priv.

konto usunięte

Temat: Synchronizacja baz danych.

Daniel Kmieć:
Właśnie chodzi zarówno o synchronizację danych jak i struktury.

Nie wiem czy korzystaliście kiedyś z synchronizacji folderów w Total Commandrze, który porównuje wskazane foldery pod kątem różnić w plikach ewentualnie pokazuje ich braki czy nadmiar.

Replikacja jest słabym rozwiązaniem w tym przypadku. Bo synchronizuje w jedną stronę i tylko dane.

Ja bym chciał mieć możliwość porównania na żądanie dwóch lub więcej źródeł zarówno pod kątem danych jak i struktury.

Dodatkowo nie chciałbym się ograniczać do jednego rodzaju baz danych.

Znacie coś takiego?

Witaj

Hmm nie zgodzę się z tym. Istnieje kilka typów replikacji, nie tylko w jedną stronę. Myślę że można również replikować zmiany w strukturach tabel, wyzwalaczy itd , ale nie będę polemizował. Istnieje replikacja jednokierunkowa, dwukierunkowa, wielokierunkowa (jeden do wielu, czytałem również o wiele do wielu), ale tu polecam wstępnie google a potem
jeśli potrzeba to szkolenia tematyczne dotyczące wybranej bazy i temu zagadnieniu. Natomiast nie wszystkie bazy to obsługują wszystko zależy od tego z jakiej bazy korzystaszMariusz W. edytował(a) ten post dnia 10.03.11 o godzinie 17:40
Zbigniew R.

Zbigniew R. Kierownik Działu IT,
SKOK Kujawiak

konto usunięte

Temat: Synchronizacja baz danych.

Fajna sprawa, tylko, że to daje możliwość porównania jedynie dwóch tabel zawartości tabel a nie całych baz, więc u mnie to się nie sprawdzi. Za mało uniwersalne. Jednak bardzo ciekawe narzędzie.
Robert Kubalski:
Przemysław R.:
porównanie struktur tabel nie jest problemem -> information_schema twoim przyjacielem jest, porównanie danych - hmm a jak masz bazy po kilkaset MB robi się trochę niefajnie

niekoniecznie, akurat mam to teraz na tapecie ;)

http://rkubalski.blogspot.com/2011/03/tablediff.html

co do replikacji dev <=> prd to pierwszy krok do poważnych problemów

Następna dyskusja:

Synchronizacja baz danych p...




Wyślij zaproszenie do