Niełatwe przejścia

Współczesne narzędzia informatyczne zawierają dużą dozę wbudowanej inteligencji. Chociaż inteligencja ta przewyższa możliwości intelektualne mebla, to jednak nie należy popadać w zachwyt. W porównaniu z ludzkimi możliwościami jest to nic, nie mówiąc o tym, że często człowiek popełnia błędy, które potrafi rozwikłać tylko inny człowiek.

Współczesne narzędzia informatyczne zawierają dużą dozę wbudowanej inteligencji. Chociaż inteligencja ta przewyższa możliwości intelektualne mebla, to jednak nie należy popadać w zachwyt. W porównaniu z ludzkimi możliwościami jest to nic, nie mówiąc o tym, że często człowiek popełnia błędy, które potrafi rozwikłać tylko inny człowiek.

Wykonywałem ostatnio próby migracji baz danych z wersji MS SQL Server 2000 do wersji 2005. W efekcie zakończyło się to sukcesem. Zresztą innego wyniku nie zakładałem, choćby po trupach. Niemniej to, co przy tej okazji użyłem, na długo pozostanie w mej pamięci. Jak zwykle (jakoś tak się dziwnie i często składa) droga nie było prosta i gładka, ale wyboista i kręta. Może dlatego, że przejście między tymi wersjami robiłem pierwszy raz, a może też dlatego, że było to kilka baz i nie tylko mojego projektu, a może też dlatego, że były to bazy produkcyjne, a więc nasiąknięte danymi i procedurami. Wszystkie z wymienionych przyczyn jakoś złożyły się na finalne trudności. Jednak największą zadrę w procesie migracji raczyły stanowić takie czynniki, jak błędy projektanta, pozostawione śmieci i brak logicznej spójności w kolejności działań. Ten ostatni czynnik to wina narzędzia, które inteligencją raczej nie grzeszy.

Nowy MS SQL oferuje przeniesienie baz do nowego środowiska w zasadzie dwiema metodami. Pierwsza z nich to podpięcie się Enterprise Managerem do nowego i starego serwera i wykonania czynności "copy database". Jest jednak pewien szkopuł w tej metodzie. Otóż nie jest ona w żaden sposób wybiórcza, więc kopiuje zawartość wraz z uprawnieniami do obiektów. Trzeba w związku z tym założyć tych samych użytkowników w miejscu przeznaczenia lub usunąć ich w źródle - jak kto woli. Plusem i to dużym tej metody jest jednak to, że przenosi ona struktury nawet z błędami, czego z kolei nie można wykonać, posługując się wbudowanymi narzędziami importu.

Import danych projektuje się w oparciu o kreatory. Tutaj szczęśliwie można odseparować się od uprawnień. Kopiowanie takie, chociaż tworzy tabele wynikowe, to nie odwzorowuje jednak wszystkich zależności pomiędzy elementami struktury, stąd lepiej przygotować się zawczasu, korzystając ze skryptów wygenerowanych na kanwie źródłowej bazy. Jednak skrypty automatycznie generowane mają to do siebie, że kolejność tworzenia poszczególnych obiektów jest przypadkowa, a nie zgodna z logiką istniejących w bazie zależności. Trzeba potem cały ten tworzący strukturę kod ręcznie układać, aby zapewnić odpowiednią sekwencję kroków w fazie wykonania. Jeśli w końcu uda nam się wykrzesać schemat wynikowej bazy, pora na skopiowanie doń danych. I tu sytuacja zdaje się powielać, gdyż nie mamy wpływu na ustalanie kolejności kopiowania zawartości tabel, gdyż narzędzie arbitralnie ustala porządek alfabetyczny wg ich nazw. Z konieczności więc kopiowanie należy dawkować partiami, wiedząc które dane powinny być uwzględnione przed innymi, aby nie popaść w konflikt z zasadami strzegącymi integralności bazy. Jednak prawdziwą paranoję można przeżyć, gdy baza źródłowa okazuje się być zapuszczona jak ogród w majątku Baskerville'ów. A dzieje się to często wskutek złych widoków, powołujących się na nieistniejące już tabele bądź kolumny. Po prostu są to widoki bez widoków na przyszłość - dawno nie używane i zapomniane. I jakoś serwer w miejscu ich składowania nie podnosi rabanu, że coś jest nie tak. Widać już się oswoił. Spróbujcie jednak przenieść je do innego środowiska, to od razu okaże się ile są one warte.

Muszę stwierdzić, że narzędzia do zarządzania bazami są bardzo jednostronne, tendencyjne i wybiórcze. Zezwalają na robienie bałaganu w istniejącej bazie danych, a potem nie pozwalają na dowolne propagowanie tego bałaganu. Strzegą jakiejś logiki, a potem same tej logiki nie potrafią zrozumieć i odwzorować w innym miejscu. Wstyd i hańba!

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200