Migracja do PostgreSQL za pomocą narzędzi Enterprise DB Przemysław Deć Konsultant IT Linux Polska Sp. z o.o.
Cele prezentacji Czym jest Enterprise DB Korzyści migracji do opensource`owej bazy danych Kompatybilność z Oracle i innymi bazami danych Określenie strategii migracji Przykład migracji
Czym jest Enterprise DB Enterprise DB zostało założone w 2004 Misja stworzyć atrakcyjną cenowo bazę danych mogącą konkurować z produktami komercyjnymi Wybór produktu bazowego był prosty PostgreSQL Linia produktów Postgres Plus Świetna wydajność Duże możliwości skalowania Niskie koszty wdrożenia i utrzymania
Postgres Plus Advanced Server Alternatywa dla baz Oracle Częściowa kompatybilność z MySQL, MS SQL, Sybase Migration Studio Infinite Cache GridSQL Serwer replikacji Buforowanie połączeń, planowanie zadań, debugger Wsparcie
Korzyści migracji Oszczędność kosztów Brak kosztów licencji Postgres Plus Wyjście ze starszych technologii Utrzymanie starszych systemów jest kosztowne Unikanie zamknięcia na jednego dostawce Zyskujemy nowe możliwości InfiniteCache, GridSQL Replikacja 11 języków programowania (PL/PgSQL, PL/Tcl, PL/Perl, PL/Python, PL/Java, PL/PHP...)
Migracja za pomocą narzędzi Enterprise DB Kompatybilność z Oracle Minimalne zmiany w kodzie aplikacji lub ich całkowity brak Częściowa kompatybilność z MySQL, MS Server, Sybase Umiejętności developerskie z Oracle pozostają użyteczne Równoważne zestawy funkcji Nie tracimy żadnych funkcjonalności Zautomatyzowane narzędzia do migracji
Kompatybilność z Oracle PL/SQL» Funkcje» Procedury składowane» Kursory» Wyzwalacze» Sekwencje» Synonimy» Wbudowane pakiety» Własne pakiety Wszechstronna kompatybilność Typy obiektów Decode, NVL, Data/czas DUAL, ROWNUM Tablice słownikowe Linki bazodanowe Oracle Call Interface (OCI) SQL*Plus EDB*Plus SQL*Loader EDB*Loader
Kompatybilność z Oracle Cechy Kontrola transakcji Dodatkowe informacje COMMIT/ROLLBACK w procedurach i funkcjach Transaction Error Recovery Extensions Obsługuje błędy na poziomie zapytań SQL bez wycofywania całej transakcji Atrybuty» %TYPE» %ROWTYPE Record Type Definiowanie własnych typów rekordów Pakiety» DBMS_: ALERT, OUTPUT, PIPE.» UTL_FILE
Strategie Migracji Strategie Stworzenie i wdrożenie nowych aplikacji biznesowych Korzyści Znaczne zmniejszenie kosztów Wykorzystanie umiejętności zdobytych przy pracy z Oracle Bardzo małe ryzyko Wdrożenie Postgres Plus jako serwera replikacji bazy Oracle Wykorzystanie Postgres Plus Replication Server Wyraźne obniżenie kosztów Poprawa wydajności transakcji i zapytań Migracja komercyjnych aplikacji do Postgres Plus Największe oszczędności Wykorzystanie zasobów używanych przez Oracle Wykorzystanie posiadanych umiejętności Oracle
Strategie Migracji Aplikacje bez logiki biznesowej po stronie serwera, np. raportujące Aplikacje z kodem po stronie wykorzystujace najpopularniejsze funkcje Oracla Aplikacje z kodem po stronie serwera dla nowszych wersji Oracle Hurtowanie danych wykorzystujące Oracle OLAP SQL Server, MySQL, Sybase bez kodu po stronie serwera Aplikacje wymagające zaawansowanych funkcji Oracle takich jak klastrowanie, zaawansowane kolejkowanie i opcje bezpieczeństwa
Etapy procesu migracji Planowanie Analizy Migracja Testy Wdrożenie Kryteria sukcesu Wymagania Migracji Wymagania systemowe Wymagania testowe Przekazanie wiedzy o aplikacjach i BD Szacowanie nakładów Konfiguracja Migracja schematu Rozw. problemów Migracja danych Testy akceptacyjne Testy funkcjonalne Testy wydajności Przeniesienie systemu do fazy produkcyjnej Analiza potrzeb szkoleniowych Zdefiniowanie projektu Konfiguracja otoczenia operacyjnego Szkolenie Wsparcie Wsparcie na miejscu Zarządzanie Projektem / Kontrola Jakości / Komunikacja
Przykład migracji
Przykład migracji
Przykład migracji
Przykład migracji
Przykład migracji
Przykład migracji
Przykład migracji
Przykład migracji
Przykład migracji
Przykład migracji Zmiana sposobu połączenia do BD Poprzednia składnia połączenia (aplikacja Java) Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe, scott, tiger ); Nowa składnia połączenia Class.forName("com.edb.Driver"); Connection con = DriverManager.getConnection("jdbc:edb://localhost:5444/edb", "enterprisedb","enterprisedb");
Najczęstsze problemy Użycie znaku separatora kolumn wykorzystanego jako treść w komórce Komunikat Extra data after last expected column Rozwiązanie przez użycie innego znaku separatora Błędy zależności Nieudana próba utworzenia obiektu ponieważ obiekt zależny jeszcze nie istnieje Rozwiązaniem jest ponowne uruchomienie odpowiedniego zapytania
Podsumowanie Bazy danych Open source i Postgres Plus są obecnie w głównym nurcie rozwiązań Enterprise DB dostarcza: Kompatybilność z Oracle Zautomatyzowane narzędzia do migracji z Oracle Wsparcie w procesie migracji i użytkowania
Podsumowanie Kompatybilność zapewnia Niższe koszty utrzymania Szybki zwrot inwestycji Krótszy czas migracji Niskie ryzyko (zawsze można wrócić) Światowej klasy organizacje jak Sony Online Entertainment, FTD Florist potwierdzają możliwość skutecznego powstrzymywania kosztów Oracle
Dziękuję pd@linuxpolska.pl +48 519 130 141