Paweł W.

Paweł W. java developer at
https://rozwoj-oprog
ramowania.pl

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

witam,
mialem baze(6 tabel,w nich po ok. kilkaset tysiecy rekordow) i kilka miesiecy temu musialem podzielic ta baze na 2(rozdzielic dane) wedlug pewnego kryterium.to bylo proste.teraz musze poprzenosic czesc danych z jednej bazy do drugiej i na odwrot.kryterium-inna tabela w ktorej na sztywno mam przypisane w ktorej z baz powinno znalezc sie dane ID.w trzech tabelach mam pole typu autoincrement-jasne jest, ze w tym momencie ID w tych polach beda sie duplikowac w niektorych rekordach.wszystkie tabele sa powiazane roznymi polami... czy ktos moze podsunac jakies rozwiazanie aby to wykonac najbezpeczniej ,najprosciej ?

dzieki
pozdr

konto usunięte

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

a masz jakieś relacje po pola z autoincrementem (ID)?
Paweł W.

Paweł W. java developer at
https://rozwoj-oprog
ramowania.pl

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

teraz nie mam dostepu do tej bazy, ale z tego co pamietam to tak. jedno z pol autoincrement laczy ze soba 2 tabele. czyli trzebaby zrobic tak, zeby kopiujac(przenoszac do drugiej) bazy rownoczesnie nadawac w obu polach tych tabel nowa najwieksza wartosc...?

konto usunięte

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

operacja jest jednorazowa, czy to zaplanowany ciągły proces replikacji danych?

konto usunięte

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

operacja jest jednorazowa, czy to zaplanowany ciągły proces replikacji danych?
Paweł W.

Paweł W. java developer at
https://rozwoj-oprog
ramowania.pl

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

1) musze zrobic to wlasnie jednorazowo za pomoca jakiegos mechanizmu
2) jednakze, prawdopodobnie bede musial to zrobic jeszcze kilka razy(co kilkanascie dni) z powodu "migracji" danych - trzeba bedzie je przeniesc do drugiej(odpowiedniej) bazy
Jakub L.

Jakub L. Programista

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

Jak miałem robić coś podobnego to napisałem skrypt w Perlu, który wpiął się do bazy źródłowej, wyciągał po kolei rekord podstawowy, rekordy referujące, robił niezbędne konwersje i wkładał do bazy docelowej.
Oczywiście miałem jeszcze skrypt, który sprawdzał zawartość bazy docelowej po operacji, czy jest wszystko to, co powinno zostać wywleczone z bazy źródłowej, i dopiero gdy oba zagrały poszło to na produkcję.
Jak masz kilka tabel, to nie powinno to być rocket science.
Dariusz Żukowski

Dariusz Żukowski [keczerad]
Programista z
zamiłowania.

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

Jakub L.:
Jak miałem robić coś podobnego to napisałem skrypt w Perlu, który wpiął się do bazy źródłowej, wyciągał po kolei rekord podstawowy, rekordy referujące, robił niezbędne konwersje i wkładał do bazy docelowej.
Oczywiście miałem jeszcze skrypt, który sprawdzał zawartość bazy docelowej po operacji, czy jest wszystko to, co powinno zostać wywleczone z bazy źródłowej, i dopiero gdy oba zagrały poszło to na produkcję.
Jak masz kilka tabel, to nie powinno to być rocket science.

po co te komplikacje, przeciez jest t-sql mozna w nim spokojnie to zrobic.
Paweł W.

Paweł W. java developer at
https://rozwoj-oprog
ramowania.pl

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

jasne. a jakies szczegoly? moze mnie ktos bardziej naprowadzic? a moze ma ktos linki do jakichs tutoriali z podobnymi operacjami na bazach danych..Paweł Wtorek edytował(a) ten post dnia 05.09.07 o godzinie 14:29
Dariusz Żukowski

Dariusz Żukowski [keczerad]
Programista z
zamiłowania.

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

Paweł W.:
jasne. a jakies szczegoly? moze mnie ktos bardziej naprowadzic? a moze ma ktos linki do jakichs tutoriali z podobnymi operacjami na bazach danych..Paweł Wtorek edytował(a) ten post dnia 05.09.07 o godzinie 14:29

Insert INTO baza.schemat.tabela (pole1,pole2)
Select pole3, pole4 from baza2.schemat.tabela
Where warunek

Jezeli tabele sa powiazane kluczami obcymi i maja identyfiaktory z bazy drugiej to mozna otworzyc kursor i leciec po kursorze a w petli robic operacje na tychze rekordach i odpowiednio je powiazac i insertowac do bazy jeden.
Grzegorz G.

Grzegorz G. ASE / Systems
Architect, Syniverse

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

[author]Dariusz
Daniel Kumór

Daniel Kumór Senior Sofware
Engineer

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

Ja proponuje do tego wykorzystać narzędzie ETL, np DTS lub MiS Microsoftu czy darmowy Kettle
Jakub L.

Jakub L. Programista

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

[author]Dariusz
Maciej Filipiak

Maciej Filipiak właściciel, VizMedia

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

Paweł W.:
rozwiazanie aby to wykonac najbezpeczniej ,najprosciej ?

podlinkuj serwery i możesz się bawic insertami i selektami

sp_addlinkedsrvlogin
sp_addlinkedsrvlogin
Paweł W.

Paweł W. java developer at
https://rozwoj-oprog
ramowania.pl

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

po co linkowac serwery? mam 2 bazy danych na tym samym serwerze...
poza tym bawienie sie insertami i selektami to jeszcze nie jest rozwiazanie problemuPaweł Wtorek edytował(a) ten post dnia 06.09.07 o godzinie 12:37
Piotr Andrzejczak

Piotr Andrzejczak Senior Business IT
Consultant /
Business Analyst /
Change...

Temat: MSSQL-przeniesienie danych z 1bazy do 2bazy

Z tego co czytam, to wydaje mi się, że jest chyba też nieco prostsze, bardziej "łopatologiczne" rozwiązanie, które powinno się sprawdzić.

OGÓLNY OPIS ROZWIĄZANIA:
Skoro cały problem polega na powtarzających się ID, to można zadbać o to żeby się nie powtarzały odpowiednio zwiększając jedne z nich (oczywiście we wszystkich tabelach jednej z baz, więc tam by trzeba było porozpinać tymczasowo relacje np., zmienić te pola na nieautoincement-y itp.) Co do ogólnej zasady najprościej to chyba zrobić dodając (jakiś) rząd wielkości do tych ID, np. jeżeli max. ID w pierwszej bazie wynosi powiedzmy około 500.000, to dodawać do ID w drugiej bazie 1.000.000 (update id set id=id+1000000). A potem tylko poprzenosić rekordy z tabel drugiej bazy do pierwszej bazy.

Zdaję sobie sprawę, że jest to może mało eleganckie, mało tu kodu, a dużo "robótek ręcznych" i np. ostateczne ID może przyrosnąć o dużą wartość (czy to tak bardzo przeszkadza?) ale ... jeżeli cały proces nie ma się powtarzać, bazy są dwie a tabel kilka, to może coś właśnie w tym kierunku. Oczywiście wszystko to można zautomatyzować w pełni (myślę o T-SQL), ale wydaje mi sie, że w tym przypadku nie będzie się to opłacało (no chyba, że ze względów poznawczych ;) ).



Wyślij zaproszenie do