Udostępnij za pośrednictwem


Etapy migracji bazy danych Oracle do usługi Azure Database for PostgreSQL

Kompleksowa migracja z bazy danych Oracle do usługi Azure Postgres wymaga starannego wykonania kilku kluczowych kroków i etapów migracji. Te kamienie milowe są ściśle powiązane i niezbędne do ukończenia i pomyślnej migracji.

Zrzut ekranu przedstawiający etapy migracji: odnajdywanie, ocena, migracja schematu, migracja kodu, migracja danych, migracja aplikacji, dostrajanie wydajności i optymalizacja chmury.

Odnajdowanie

Większość klientów jest już dobrze zaznajomiona z ilościami i lokalizacjami wystąpień bazy danych Oracle (zwłaszcza powiązanymi z nimi kosztami licencjonowania), jednak ze względu na kompletność podkreślamy tę fazę jako ważny punkt początkowy migracji. Faza odnajdywania to idealny etap określający odpowiedni zakres działań związanych z migracją. Czy masz środowisko "farmy" serwera bazy danych Oracle wymagające migracji dziesiątek, setek, a nawet tysięcy baz danych? Rozważasz migrację na dużą skalę po podejściu "fabryka migracji"? Czy środowisko jest bardziej odpowiednie do kompleksowej migracji pojedynczej bazy danych wraz z równoległą modernizacją wszystkich połączonych klientów przed przejściem do następnej bazy danych na liście migracji? W obu przypadkach aktualny i dokładny spis jest krytycznym wymaganiem wstępnym, a faza odnajdywania zapewnia przygotowanie do sukcesu.

Oceny

Oceny hermetyzują wiele różnych typów operacji eksploracyjnych opartych na oszacowaniu, które są indywidualnie zdefiniowane przez ich unikatowe cechy. Niektóre oceny są przeznaczone do szacowania i kategoryzowania złożoności nakładu pracy i zasobów związanych z migracją obiektów bazy danych oraz na podstawie czynników, takich jak liczba obiektów (potencjalnie nawet eksplorowanie liczby wierszy kodu) wymagających uwagi eksperta w danej dziedzinie. Alternatywnie, inne typy ocen badają strukturę i rozmiar danych bazowych oraz zawierają wskazówki dotyczące ilości czasu wymaganego do pełnej migracji danych do środowiska docelowego. Jednak inny typ oceny ma strukturę w celu zapewnienia, że docelowe zasoby usługi Azure Postgres są odpowiednio skalowane w celu uwzględnienia obliczeń, pamięci, liczby operacji we/wy na sekundę i konfiguracji sieci wymaganej do obsługi danych. Jedną z najważniejszych ocen, które należy uwzględnić w celu zapewnienia pomyślnego przeprowadzenia migracji, jest gruntowny przegląd wszystkich połączonych klientów i zakres obejmujący wszystkie aplikacje zależne. Podsumowując, podczas przygotowywania ocen migracji upewnij się, że oceniasz wszystkie aspekty migracji bazy danych, w tym:

  • Schemat bazy danych/ilość konwersji kodu i złożoność
  • Rozmiar i skala bazy danych
  • Wymagania operacyjne dotyczące zasobów bazy danych
  • Migracja kodu aplikacji klienckiej

Dokładność oceny będzie ściśle powiązana z konkretnymi podstawowymi narzędziami i platformami usług zaangażowanymi w wykonanie i ukończenie kolejnych kroków migracji. Dlatego należy wziąć pod uwagę, że istnieje kilka czynników, które mogą mieć wpływ na dokładność tych szacunków oceny i zgłoszone wyniki są bezpośrednio skorelowane z podstawowymi narzędziami używanymi w ocenie migracji. Należy zachować ostrożność, aby uniknąć interpolacji danych wyjściowych szacunkowych z różnych lub połączonych narzędzi podczas przeglądania i dołączania danych wyjściowych oceny do planów migracji.

Aby uzyskać więcej informacji, zobacz nasz podręcznik oracle to Azure Postgres Migration

Migracja schematu bazy danych

Definicje danych ustrukturyzowanych są jedną z cech aparatów transakcyjnych baz danych i podstawowymi podstawami dobrze zaprojektowanej platformy danych. Upewnienie się, że unikatowe struktury danych i definicje typów danych Oracle zostaną prawidłowo zamapowane na odpowiednie tabele w usłudze Azure Postgres, jest kluczowym wymaganiem dla ogólnego sukcesu migracji. Chociaż wszystkie transakcyjne bazy danych współdzielą wiele podobieństw, istnieją różnice między typami danych tabeli danych i kolumn, a należy zadbać o to, aby upewnić się, że dane nie są przypadkowo utracone, obcięte lub mangled z powodu niezgodności definicji danych. Typy danych liczbowych, typy danych daty/godziny i typy danych opartych na tekście to tylko niektóre przykłady obszarów, które należy dokładnie zbadać podczas opracowywania odpowiednich mapowań danych na potrzeby migracji.

Aby uzyskać dodatkowe informacje i przykłady różnic między typami danych Oracle i Postgres, zobacz nasz podręcznik Oracle to Azure Postgres Migration

Migracja kodu bazy danych

Migracja kodu bazy danych odnosi się do procesu konwertowania kodu bazy danych napisanego dla bazy danych Oracle w celu zapewnienia zgodności z aparatem bazy danych Postgres przy zachowaniu zarówno oryginalnej funkcjonalności, jak i istniejących cech wydajności. Ten proces obejmuje konwertowanie zapytań Oracle PL/SQL, procedur składowanych, funkcji, wyzwalaczy i innych obiektów bazy danych w celu zapewnienia zgodności bazy danych Postgres PL/pgSQL. Na szczęście dialekty proceduralne PL/pgSQL firmy Oracle i PL/pgSQL firmy Oracle mają wiele podobieństw, a często jest to początkowy czynnik, który wielu organizacji identyfikuje podczas wybierania bazy danych Postgres jako najlepszego dopasowania do migracji baz danych Oracle. Istnieją jednak pewne unikatowe różnice i różnice między dwoma językami bazy danych, które należy rozważyć. Obszary uwagi obejmują: słowa kluczowe i składnia specyficzna dla bazy danych, obsługa wyjątków, wbudowane funkcje, typy danych i inkrementacja sekwencji.

W wielu przypadkach ekosystem rozszerzenia Postgres może być zaawansowanym sojusznikiem, który ułatwia usprawnianie procesu migracji kodu. Na przykład rozszerzenie "Oracle Functions for PostgreSQL" (orafce) udostępnia zestaw wbudowanych funkcji zgodności Oracle i pakietów, które mogą zmniejszyć konieczność ponownego zapisywania części bazy kodu, które opierają się na tych funkcjach Oracle i odwołują się do nich. Użycie tego podejścia opartego na zgodności podczas migracji kodu Oracle do bazy danych PostgreSQL zapewnia znaczne korzyści w zakresie zmniejszenia złożoności, czasu i kosztów procesu migracji dzięki utrzymaniu oryginalnej logiki i funkcjonalności źródłowych definicji bazy danych, zapewnia spójność w wynikach i zwiększa produktywność deweloperów. Wszystkie te korzyści składają się na osiągnięcie uproszczonej i bardziej wydajnej migracji kodu do bazy danych PostgreSQL.

Aby uzyskać dodatkowe informacje i przykłady różnic między wbudowanymi funkcjami i operatorami logiki oracle i postgres, zobacz nasz podręcznik Oracle to Azure Postgres Migration

Migracja danych

W dzisiejszym środowisku opartym na danych twoje dane są prawdopodobnie najbardziej cennym zasobem. Zasoby danych mają coraz większy wpływ na każdy aspekt świadomych operacji biznesowych i podejmowania strategicznych decyzji. W związku z tym szczególnie ważne jest, aby potoki migracji danych działały wydajnie i wydajnie, były w pełni spójne i weryfikowalne i ostatecznie zakończyły się pomyślnie.

Strategia migracji danych powinna być starannie przemyślana w celu określenia, czy podejścia "offline" lub "na żywo" mają zastosowanie do danego środowiska. Każda strategia migracji danych ma własną mieszankę korzyści i zagadnień, a wybór między operacjami "offline" i "na żywo" zależy od konkretnych wymagań i ograniczeń środowiska. Na przykład migracje "offline" mogą być prostsze i mniej złożone niż migracje na żywo, jednak migracje "offline" obejmują przestój przez okres wymagany do pełnej migracji danych do docelowej bazy danych. Migracje na żywo oferują minimalny czas przestoju, jednak wymagają one większej złożoności i infrastruktury w celu nadzorowania początkowego ładowania danych wypełniania oraz kolejnych synchronizacji zmian, które mogły wystąpić od początku migracji danych. Staranne planowanie, dokładna ocena wymagań biznesowych i uwzględnienie określonych czynników krytycznych twojego zespołu zapewni możliwość podjęcia świadomej decyzji w pełni dostosowanej do potrzeb związanych z migracją danych.

Migracja kodu aplikacji

Chociaż aplikacje zewnętrzne mogą być technicznie brane pod uwagę poza domeną obowiązków związanych z migracją zespołu bazy danych, aktualizowanie i modernizacja łączności bazy danych z aplikacjami klienckimi jest istotnym i ściśle powiązanym etapem ogólnego sukcesu migracji bazy danych. Podobnie jak w przypadku innych faz migracji, związane z tym nakłady pracy i złożoność związane z korygowaniem zgodności platformy aplikacji klienckiej zależą od unikatowych okoliczności środowiska. Czy aplikacje klienckie są opracowywane przez inną firmę? Jeśli tak, ważne jest, aby upewnić się, że ich produkt oprogramowania jest certyfikowany do obsługi platformy bazy danych Postgres. Czy aplikacje wewnętrzne korzystają z technologii mapowania obiektów, takich jak Hibernate lub Entity Framework? W niektórych przypadkach niewielka zmiana konfiguracji lub pliku może być wymagana. Z drugiej strony, jeśli masz znaczne ilości zapytań i instrukcji bazy danych osadzonych w kodzie, może być konieczne przydzielenie więcej czasu, aby odpowiednio przejrzeć, zmodyfikować i zweryfikować zmiany kodu.

Alternatywnie istnieją dostawcy rozwiązań partnerskich oferujący nowatorskie podejścia umożliwiające tłumaczenie starszych operacji bazy danych klienta w czasie rzeczywistym. Te usługi proxy zapewniają abstrakcję warstw bazy danych, które skutecznie oddzielają aplikacje od wszelkich zależności języka specyficznego dla bazy danych.

W wielu przypadkach decyzja może obejmować kombinację wielu strategii i podejścia hybrydowego wspólnie stosowanego dla odpowiednich mocnych i połączonych możliwości. Wdrożenie warstwy tłumaczenia bazy danych w czasie rzeczywistym może umożliwić zespołom szybkie ponowne wdrażanie aplikacji klienckich przy jednoczesnym zapewnieniu inżynierom oprogramowania i deweloperom odpowiedniego czasu i planowania zasobów w celu refaktoryzacji zależności specyficznych dla bazy danych w celu obsługi natywnych operacji Postgres.

Ważne

Każdy z tych wyborów towarzyszy im własne konkretne zestawy zagadnień i korzyści i ważne jest, aby zespoły uważnie przejrzeły każde z tych podejść, aby określić idealną ścieżkę strategiczną do przodu.

Walidacja migracji

Podczas migracji z bazy danych Oracle do bazy danych PostgreSQL zapewnienie integralności danych i spójności logicznej jest najważniejsze. Walidacja migracji odgrywa kluczową rolę w tym procesie, ponieważ polega na sprawdzeniu, czy dane przesyłane ze źródłowej bazy danych Oracle są dokładne i kompletne w docelowym systemie PostgreSQL. Ten krok jest niezbędny nie tylko do utrzymania wiarygodności danych, ale także do potwierdzenia, że proces migracji nie wprowadził żadnych błędów ani rozbieżności. Sprawdzanie poprawności może obejmować porównywanie liczby tabel, weryfikowanie typów danych i struktur, porównywanie wartości kolumn na poziomie wiersza oraz zapewnienie, że złożone zapytania dają spójne wyniki w obu bazach danych. Ponadto należy zwrócić szczególną uwagę podczas obsługi różnic w sposobie zarządzania danymi w dwóch systemach baz danych, takich jak różnice w formatach daty i godziny, kodowanie znaków i obsługa wartości null.

Zwykle obejmuje to skonfigurowanie zautomatyzowanych skryptów sprawdzania poprawności, które mogą porównywać zestawy danych w obu bazach danych i wyróżniać wszelkie anomalie. Narzędzia i struktury przeznaczone do porównywania danych można wykorzystać w celu usprawnienia tego procesu. Weryfikacja po migracji powinna być procesem iteracyjnym, a wiele kontroli przeprowadzonych na różnych etapach migracji w celu wczesnego przechwytywania problemów i zminimalizowania ryzyka uszkodzenia danych. Dzięki określaniu priorytetów weryfikacji danych organizacje mogą bezpiecznie przejść z bazy danych Oracle do PostgreSQL, wiedząc, że ich dane pozostają niezawodne i możliwe do działania.

Dostosowywanie wydajności

Wydajność jest ogólnie postrzegana jako jedna z najbardziej namacalnych i ważnych cech, które określają postrzeganie i użyteczność platformy. Zapewnienie, że migracja jest zarówno dokładna, jak i wydajna, ma kluczowe znaczenie dla osiągnięcia sukcesu i nie można jej pominąć. W szczególności wydajność zapytań jest często uważana za najbardziej krytyczny wskaźnik optymalnej konfiguracji bazy danych i jest często używana jako test lakmusowy przez użytkowników w celu określenia stanu kondycji środowiska.

Na szczęście platforma Azure natywnie obejmuje narzędzia i możliwości potrzebne do monitorowania punktów wydajności w różnych metrykach, w tym skalowanie, wydajność i być może najważniejszą szybkość. Te funkcje inteligentnej wydajności współpracują z zasobami monitorowania postgres, aby uprościć procesy dostrajania, a w wielu przypadkach zautomatyzować te kroki, aby automatycznie dostosowywać się i dostosowywać zgodnie z potrzebami. Poniższe narzędzia platformy Azure mogą zapewnić, że systemy baz danych działają na ich najlepszych poziomach.

Magazyn zapytań

Magazyn zapytań dla usługi Azure Postgres stanowi podstawę funkcji monitorowania. Magazyn zapytań śledzi statystyki i metryki operacyjne z bazy danych Postgres, w tym zapytania, skojarzone plany wyjaśnień, wykorzystanie zasobów i chronometraż obciążenia. Te punkty danych mogą odkrywać długotrwałe zapytania, zapytania zużywające najwięcej zasobów, najczęściej uruchamiane zapytania, nadmierne wzdęcie tabeli i wiele innych aspektów operacyjnych bazy danych. Te informacje pomagają poświęcać mniej czasu na rozwiązywanie problemów, szybko identyfikując wszelkie operacje lub obszary wymagające uwagi. Magazyn zapytań zapewnia kompleksowy widok ogólnej wydajności obciążenia, identyfikując:

  • Długotrwałe zapytania i sposób ich zmiany w czasie.
  • Typy oczekiwania wpływające na te zapytania.
  • Szczegółowe informacje na temat zapytań bazy danych według wywołań (liczby wykonań), użycia danych, liczby operacji we/wy na sekundę i tymczasowego użycia plików (potencjalne kandydaty dostrajania w celu poprawy wydajności).
  • Przejdź do szczegółów zapytania, aby wyświetlić identyfikator zapytania i historię wykorzystania zasobów.
  • Lepszy wgląd w ogólne użycie zasobów baz danych.

Dostrajanie indeksu

Dostrajanie indeksu to funkcja elastycznego serwera usługi Azure Database for PostgreSQL, która może automatycznie poprawić wydajność obciążenia, analizując śledzone zapytania i dostarczając rekomendacje dotyczące indeksów. Jest ona natywnie wbudowana w serwer elastyczny usługi Azure Database for PostgreSQL i opiera się na funkcjach magazynu zapytań. Dostrajanie indeksu analizuje obciążenia śledzone przez magazyn zapytań i generuje zalecenia dotyczące indeksu w celu zwiększenia wydajności analizowanego obciążenia lub porzucania zduplikowanych lub nieużywanych indeksów. Jest to realizowane na trzy unikatowe sposoby:

  • Określenie, które indeksy są korzystne do utworzenia, ponieważ mogą one znacząco poprawić zapytania analizowane podczas sesji dostrajania indeksu.
  • Zidentyfikuj indeksy, które są dokładnymi duplikatami i można je wyeliminować, aby zmniejszyć ich wpływ na ich istnienie i konserwację na ogólną wydajność systemu.
  • Zidentyfikuj indeksy, które nie są używane w konfigurowalnym okresie, który może być kandydatem do wyeliminowania.

Inteligentne dostrajanie

Inteligentne dostrajanie to ciągły proces monitorowania i analizy, który nie tylko uczy się o cechach obciążenia, ale także śledzi bieżące obciążenie i użycie zasobów, takie jak procesor CPU lub liczba operacji we/wy na sekundę. Nie zakłóca to normalnych operacji obciążenia aplikacji. Dzięki procesowi baza danych może dynamicznie dostosowywać się do obciążenia, rozpoznając bieżący współczynnik wzłożenia, wydajność zapisu i wydajność punktu kontrolnego w wystąpieniu. Dzięki tym szczegółowym informacjom inteligentne dostrajanie wdraża akcje dostrajania, które zwiększają wydajność obciążenia i unikają potencjalnych pułapek. Ta funkcja obejmuje dwie funkcje automatycznego dostrajania:

  • Dostrajanie automatycznego czyszczenia: ta funkcja śledzi współczynnik wzdęć i odpowiednio dostosowuje ustawienia automatycznego czyszczenia. Czynnikiem jest zarówno bieżące, jak i przewidywane użycie zasobów, aby zapobiec zakłóceniom obciążeń.
  • Dostrajanie zapisu: ta funkcja monitoruje wolumin i wzorce operacji zapisu oraz modyfikuje parametry wpływające na wydajność zapisu. Te korekty zwiększają wydajność i niezawodność systemu, aby proaktywnie zapobiec potencjalnym komplikacjom.

Napiwek

Dowiedz się więcej na temat stosowania inteligentnej wydajności w celu zmaksymalizowania platform Azure Postgres.

Optymalizacja w chmurze

Optymalizacja nowego środowiska bazy danych Azure Postgres oznacza kulminację wszystkich niesamowitych wysiłków i ciężkiej pracy, która doprowadziła zespół do dotarcia do tego kluczowego punktu. Optymalizacja chmury może być nową odpowiedzialnością, szczególnie w przypadku pochodzących z lokalnego lub starszego środowiska bazy danych. Platforma w chmurze platformy Azure wprowadza nowy i ulepszony zestaw cennych i najnowocześniejszych funkcji skalowalności, co pozwala zespołowi na "wybieranie numerów" precyzyjnej alokacji zasobów, funkcji i wydajności kosztów w celu dopasowania ich do potrzeb organizacji, a także w przyszłości. Optymalizacja chmury to ciągły proces ciągłego uściślenia środowiska, który jest postrzegany przez obiektywy najlepszych rozwiązań związanych z dobrze zaprojektowaną strukturą firmy Microsoft: optymalizację kosztów, doskonałość operacyjną, wydajność wydajności, niezawodność i bezpieczeństwo.

Optymalizacja kosztów to połączenie odpowiedniego określania rozmiaru zasobów, stosowania strategii zarządzania kosztami i efektywnego wykorzystania zasobów.

Doskonałość operacyjna obejmuje wdrożenie automatyzacji dla wdrożeń, monitorowania i skalowania oraz zmniejsza błąd przy jednoczesnym zwiększeniu wydajności.

Wydajność zapewnia wybór odpowiednich zasobów, aby spełnić wymagania bez nadmiernej aprowizacji, a jednocześnie stosowanie najlepszych rozwiązań dotyczących skalowalności w celu wydajnego obsługi różnych obciążeń w okresach szczytowych.

Niezawodność prowadzi do projektowania systemów o wysokiej dostępności i odporności na uszkodzenia z mechanizmami nadmiarowości i trybu failover w celu zminimalizowania przestojów oraz strategii odzyskiwania po awarii w celu zaimplementowania niezawodnych planów odzyskiwania, w tym procedur tworzenia kopii zapasowych i przywracania.

Zabezpieczenia podkreślają znaczenie protokołów silnej tożsamości i praktyk zarządzania dostępem, takich jak najmniej uprzywilejowany dostęp, uwierzytelnianie bez hasła i kontrola dostępu oparta na rolach. Ochrona danych i szyfrowanie zapewniają ochronę poufnych danych zarówno magazynowanych, jak i przesyłanych. Zabezpieczenia obejmują również narzędzia i najlepsze rozwiązania dotyczące wykrywania zagrożeń oraz automatyczne reagowanie na zdarzenia zabezpieczeń szybko. Zgodność zapewnia zgodność środowiska ze standardami branżowymi i przepisami.

Aby uzyskać więcej informacji na temat pięciu filarów wskazówek i podstaw implementacji optymalizacji chmury, odwiedź nasze centrum platformy Azure Well-Architected Framework (WAF).

Aby upewnić się, że te filary są dostosowane do wdrożenia usługi Azure Postgres, zapoznaj się z naszym przewodnikiem po usłudze Azure Well-Architected Framework Service Guide for PostgreSQL.