KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax: (0-32) 209-07-15 Internet: http://www.kamsoft.pl [email protected] SPIS TREŚCI Program DBMove 1. Przenoszenie danych pomiędzy bazami systemu KS-SOMED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 iii NOTATKI iv KS-SOMED Program DBMove Program DBMove 1. Przenoszenie danych pomiędzy bazami systemu KS-SOMED Do przenoszenia danych pomiędzy bazami Firebird lub bazą Firebird a Oracle, z którymi współpracuje system KS-SOMED służy program DBMove. Program znajduje się w katalogu Tools, dostępnym w katalogu głównym systemu KS-SOMED. Do przenoszenia danych przy użyciu programu DBMove zaleca się, aby ilość wolnego miejsca na dysku C była nie mniejsza niż 10 GB. Po uruchomieniu programu zostanie wyświetlone okno „Przenoszenie danych”, w którym należy wykonać następujące czynności: 1. Krok I – Wybór źródła danych. Rys. 2. Okno: Alias. Wybór aliasu do bazy źródłowej należy zatwierdzić przyciskiem „OK”. Następnie zostanie wyświetlone okno do zalogowania się, w którym w polu „Użytkownik” należy wpisać Gabinet oraz w polu „Hasło” domyślne hasło – GM. Rys. 3. Okno: Logowanie. Rys. 1. Okno: Przenoszenie danych – zakładka Źródło danych [1]. W celu wybrania bazy źródłowej należy na zakładce lub klawi„Źródło danych” [1], użyć przycisku sza funkcyjnego F2. Wówczas zostanie wyświetlone okno „Alias”, w którym należy wybrać alias do bazy źródłowej w jednej z widocznych zakładek: – Zakładka „Aliasy BDE”, – Zakładka „Lokalna kartoteka”, – Zakładka „Firebird”, – Zakładka „Oracle”, – Zakładka „Historia”. 2 Po wybraniu bazy źródłowej w dolnym obszarze okna „Przenoszenie danych”, zostanie wyświetlona lista tabel do skopiowania. Uaktywnione również zostaną następujące ikony: – – zaznacza wszystkie tabele [Ctrl+A], – – odznacza wszystkie tabele [Ctrl+U], – – odwraca zaznaczenie tabel [Ctrl+R], – – odznacza tabele archiwizacyjne [Ctrl+X], – – wyświetla okno, w którym można zaznaczyć lub odznaczyć wybrane grupy tabel do skopiowania, Program DBMove Rys. 5. Okno: Filtr kopiowania. Rys. 4. Okno: Zaznacz/ odznacz grupy. – – wyświetla takie samo okno jak ikona opisana powyżej, w którym można zarówno zaznaczyć jak i odznaczyć grupy tabel, – – zaznacza lub odznacza tabele występujące w pliku [Ctrl+O], – – umożliwia wygenerowanie pliku z listą zaznaczonych tabel [Ctrl+S], – – – Opcja „Nawiąż połączenie po każdej tabeli” – opcję należy włączyć przy kopiowaniu zawartości uszkodzonych baz, powoduje, że po skopiowaniu każdej tabeli zostanie nawiązane połączenie z bazą źródłową. 2. Krok II – Wybór miejsca docelowego kopiowanych danych. – powiększa obszar listy tabel [Ctrl+Z], – umożliwia ponowne nawiązanie połączenia z bazą danych [Alt+F2]. Na zakładce „Źródło danych” można zaznaczyć następujące opcje: – Opcja „Sortuj przed kopiowaniem” – zaznaczenie opcji powoduje, że dane z bazy źródłowej są kopiowane w sposób uporządkowany. Umożliwia to w przypadku przerwania kopiowania danych, ponowną kontynuację od przerwanego momentu. Opcja ta powinna być włączona. – Opcja „Filtr kopiowania” – przed rozpoczęciem kopiowania danych zostanie wyświetlone okno „Filtr kopiowania”, w którym użytkownik może podać dowolny filtr kopiowania – fragment SQL’a (fraza WHERE jest już w samym zapytaniu obecna, więc pomija się ją) np. ID >= 10000. Rys. 6. Okno: Przenoszenie danych – zakładka Cel [2]. W celu wybrania miejsca docelowego kopiowanych danych, należy na zakładce „Cel” [2] użyć przycisku lub klawisza funkcyjnego F3. Wyświetlone wówczas zostanie znane już okno „Alias”, w którym należy wybrać alias do bazy docelowej i zatwierdzić przyciskiem „OK”. Następnie wyświetlone zostanie okno do zalogowania się. Sposób logowania się do bazy docelowej uzależniony jest od typu bazy. Dlatego też jeżeli jest to baza Firebird, wówczas w polu „Użytkownik” należy wpisać SYSDBA – z uwagi na brak uprawnień do struktury bazy dla GABINET-u oraz w polu „Hasło” podać hasło. Jeżeli bazą docelową jest Oracle, w polu „Użytkownik” wystarczy wpisać Gabinet oraz w polu „Hasło”domyślne hasło GM. Na zakładce „Cel” można również zaznaczyć następujące opcje: – Opcja „Ignoruj błędy i kopiuj dalej” – zaznaczenie opcji powoduje, że w razie wystąpienia błędu 3 1. Przenoszenie danych pomiędzy bazami systemu KS-SOMED zostanie on zapisany do logu i kopiowanie będzie kontynuowane. Gdy opcja nie zostanie zaznaczona, po każdym błędzie pojawi się komunikat, – Opcja „Po błędzie wznów kopiowanie tej samej tabeli” – zaznaczenie opcji powoduje, że w razie wystąpienia błędu program będzie próbował kontynuować dalsze kopiowanie tej samej tabeli z pominięciem rekordu z błędem. Gdy opcja nie zostanie zaznaczona, program pominie tabelę z błędem i przejdzie do następnej, – Opcja „Po błędzie połącz ponownie” – zaznaczenie opcji powoduje, że w razie wystąpienia błędów i zerwaniu połączenia z bazą, połączenie zostanie ponownie wznowione, – Opcja „Czyść tabelę” - zaznaczenie opcji powoduje, że tabela przed dokopiowaniem nowych danych będzie czyszczona. Opcję należy włączyć, gdy kopiujemy tabelę pierwszy raz. Gdy kopiujemy tabelę partiami, opcję należy włączyć tylko podczas kopiowania pierwszej paczki, przy kolejnych należy ją wyłączyć, w przeciwnym razie dane wcześniej skopiowane zostaną utracone, – Opcja „Commit co” – zaznaczenie opcji umożliwia określenie jak często mają być zatwierdzane dane. Zbyt wielka wartość nie jest wskazana, gdyż niekorzystnie wpływa na rozmiar segmentu wycofań (Oracle), zbyt mała może obniżyć wydajność, – Opcja „Po porównaniu odznacz zgodne tabele i niekopiowalne (brak pól ID, brak tabeli docelowej)” – w trakcie porównywania każda tabela, dla której ilość rekordów w źródle i tabeli docelowej będzie identyczna, ale także taka, której nie można skopiować, bo brak odpowiednika w bazie docelowej, lub nie spełnia ona kryterium kopiowania będzie odznaczona z listy źródłowej (zakładka 1 – „Źródło danych”). W przypadku baz zawierających rozliczenia z OW NFZ należy, już po poprawnym uruchomieniu programu, wykonać zadanie USTAW SEKWENCJE REJ SWIA. Zadanie to jest dostępne w menu głównym Serwis w module Serwis, po użyciu funkcji „Zarządzanie zadaniami”. 3. Krok III. Kopiowanie danych. Aby rozpocząć kopiowanie danych, należy użyć przycisku „Kopiowanie”. Spowoduje on przejście na zakładkę „Komunikaty” [3], w której zostanie pokazany proces kopiowania każdej zaznaczonej tabeli. Kopiowana tabela musi mieć kolumnę ID. Nie są przenoszone rekordy z ID=0. Z tego powodu po zakończeniu kopiowania, należy bezwględnie uruchomić funkcję „Testera Baz” z modułu Serwis, w przeciwnym razie część danych może być niewidoczna. – Opcja „Wypełniaj puste pola, na których jest unikalny indeks” – część serwerów wymaga, by indeks unikalny nie zawierał żadnych wartości NULL, inne pozwalają na to, ale kombinacja taka musi być unikalna. Zaleca się włączenie tej opcji – nie ma w systemie takich indeksów, przy których zakłada się istnienie wartości NULL (z uwagi na konieczność obsługi różnych serwerów), – Opcja „Wyłącz wyzwalacze podczas kopiowania (dla FB wymaga zalogowania się jako SYSDBA)” – część wyzwalaczy typu BEFORE INSERT modyfikuje dane, część dopisuje rekordy do innych tabel. Dlatego opcja ta powinna być załączona. Wymaga to zalogowania się do bazy docelowej na użytkownika posiadającego prawo do modyfikacji struktury. Dla bazy Firebird w polu „Użytkownik” należy wpisać SYSDBA. – Opcja „Wypisz różnice w strukturze tabel (brakujące pola)” – umożliwia skontrolować czy wszystkie dane z bazy źródłowej zostaną skopiowane do bazy docelowej, Rys. 7. Okno: Przenoszenie danych – zakładka Komunikaty [3]. – Opcja „Po błędzie wypisz zawartość wszystkich pól” – pozwala ocenić przyczynę błędu w razie wystąpienia problemów ze skopiowaniem danego rekordu, Program DBMove nie aktualizuje istniejących danych w bazie docelowej oraz nie sprawdza czy dany rekord istnieje już w nowej bazie. – Opcja „Pokazuj stopień zaawansowania kopiowania pojedyńczej tabeli” – dla każdej tabeli z osobna pokazuje stopień zaawansowania kopiowania, Większość błędów kopiowania danych jest wykrywana. W niektórych przypadkach, jak np. przy przekroczeniu zakresu kopiowanego pola (Firebird nie ma ścisłej kontroli danych, można więc wprowadzić wartość większą niż dopuszczalna dla danego pola), lub przy kopiowaniu danych z bazy Firebird do Oracle program wstawia wartości domyślne tzn.: – Opcja „Automatycznie porównaj ilości rekordów po zakończeniu kopiowania” – po zakończeniu kopiowania zostanie automatycznie uruchomiona funkcja porównywania tabel pod kątem ilości rekordów, – Opcja „Przy porównaniu pokazuj tylko niezgodne” – podczas porównywania pod kątem ilości rekorów, w raporcie pojawią się tylko te, których ilość jest różna w źródle i tabeli docelowej, 4 – 0 – dla pól numerycznych, – . (kropka) – dla pól tekstowych, – 1800-01-01 – dla pól daty. Program DBMove Program generuje jednocześnie plik: DBMove <data> <godzina>.sql, zawierający polecenia UPDATE aktualizujące takie rekordy. Aby przejrzeć oraz zapisać do pliku raport z przebiegu procesu kopiowania lub porównywania tabel, należy posłużyć się przyciskiem „Podgląd”. Przykład: /* ARPLEK */ update ARPLEK set ILSC = #ARPLEK ILSC where id = 164382 // było: 15000 update ARPLEK set ILSC = #ARPLEK ILSC where id = 350951 // było: INF update ARPLEK set LIC1 = #ARPLEK LIC1 where id = 350951 // było: 427860055 (gdzie INF to nieskończoność). Tu już musimy sami zadecydować, czy należy skorygować te wartości, czy pozostawiamy jak jest. Często jest tak, że błędy pojawiające się podczas kopiowania dotyczą danych archiwalnych i w programie zostały już dawno poprawione: /* ZLEC */ update ZLEC set SDATA = #ZLEC SDATA where id = 58429 // było: 5005-02-02 update ZLEC set ILSC = #ZLEC ILSC where id = 595457 // było: 20070702 (data skierowania: 5005-02-02, czy data wykonania wpisana w pole "Ilość"). Cały proces kopiowania danych rejestrowany jest w pliku logu o nazwie "DBMove <data><godzina>.txt", znajdującym się w katalogu [KS-SOMED]\ Raporty\ Log\ [użytkownik systemu Windows] – to na wypadek, gdyby pracownicy serwisu KAMSOFT poprosili o przysłanie takich raportów w celu analizy. W każdym momencie można przerwać proces kopiowania, w tym celu należy użyć przycisku „Przerwij”. Użycie przycisku „Porównaj” spełnia podobną rolę jak opisana wyżej opcja „Automatycznie porównaj ilości rekordów po zakończeniu kopiowania”, czyli umożliwia porównywanie tabeli źródłowej i docelowej pod kątem ilości rekordów. Porównywanie tabel uwzględnia tylko rekordy ID>0. Rys. 9. Okno: Raport. W oknie „Przenoszenie tabel” znajdują się ponadto elementy: – Sekcja „Czas trwania” – rejestruje czas kopiowania pojedyńczej tabeli oraz czas trwania całego procesu kopiowania. – Opcja „Query Trace” – opcja zaznaczona automatycznie, umożliwia generować pliki Query Trace z pojawiającymi się błędami podczas procesu kopiowania, – Opcja „Zapam. aliasy” - zapamiętuje ustawienia baz danych, użytkownika i hasła. Umożliwia automatyczne nawiązanie połączenia. Rys. 8. Okno: Przenoszenie danych – proces porównywania tabel. 5 NOTATKI 6