Własna chmurowa piaskownica z instancją bazy danych Oracle Autonomous Database, część 1/2.

Własna chmurowa piaskownica z instancją bazy danych Oracle Autonomous Database, część 1/2.

hejto.pl

Stawianie instancji Oracle Autonomous Database

Fajnie jest mieć własną bazę danych Oracle do zabawy. Do tego bez jakichkolwiek opłat. Można oczywiście zainstalować lokalnie bazę Oracle Express, dodatkowo obciążając swoją maszynę. A co jeśli nad jednym projektem pracujesz z kilku komputerów? (Ja mam stareńkiego MacBooka oraz już niezbyt świeżą stacjonarkę z Windowsem 10 i Solusem (taka tam fajna dystrybucja Linuxa). Musiałbym instalować bazę Oracle Express 3 razy. Na Macbooku, na stacjonarnym Windowsie i na stacjonarnym Solusie. Populacja danych na bazy? Znów 3 razy. Synchronizacja danych? Zakurwiście upierdliwa.

Może by tak wybrać bezpłatne rozwiązanie chmurowe? Zakładając że to baza do zabawy lub pod małe projekty, nie musi być postawiona na jakiejś potężnej instancji Oracle Compute (albo AWS EC2 czy GCP GCE).

No dobra, Dziki, ale jak takową bazę pozyskać? Przedstawię to w kilku krokach.

Pierwszą rzeczą którą należy zrobić, to pobranie i zainstalowanie darmowej aplikacji od Oracle o wdzięcznej nazwie SQLDeveloper, by móc z naszą bazą się połączyć. Można go pobrać tutaj .

Gdy mamy za sobą instalację SQLDevelopera należy wejść na https://cloud.oracle.com i dokonać rejestracji. Wybieramy Free Tier, podajemy dane swojej karty bankowej (oracle pobierze a następnie zwróci coś około 1 Euro dla weryfikacji, później nie będzie pobierał żadnych opłat!).

Gdy się zarejestrujemy, logujemy się do chmury, i na górze strony, w pasku wyszukiwania wpisujemy "autonomous" i wybieramy pierwszą pozycję z prawego panelu okna (Autonomous database)



W sekcji "Provide basic information for the Autonomous Database" wybieramy wyświetlaną nazwę naszej bazy danych. Najlepiej zmienić to na coś krótszego i łatwiejszego do zapamiętania. W sekcji "Choose a workload type" wybrałem "Transaction Processing", ponieważ najbardziej odpowiada moim potrzebom. Wy wybierzcie to co Wam bardziej pasuje. W sekcji "Configure the database" możemy wybrać wersję bazy której chcemy używać. Do wyboru jest 19c oraz 21ai. Ja wybrałem tę drugą.

Ostatnie rzeczy które nam zostały do zrobienia to utworzenie hasła dla admina. Poniżej jest jeszcze sekcja "Choose network access", tam wybieramy wg. własnych preferencji, ale na potrzeby drugiej części tego artykuł, powiązanego z Javą, dla uproszczenia wybrałem "Secure access from everywhere". Na końcu strony znajduje się sekcja "Provide contacts for operational notifications and announcements", gdzie podajemy swojego maila.

Klikamy "Create Autonomous Database", i na kolejnej stronie która się wyświetli, pokazującej dane naszej instancji Autonomous Database, oraz w lewej górnej części ekranu - status naszej instancji. Czekamy aż instancja będzie miała status "AVAILABLE".



Gdy tak się stanie, przechodzimy do zakładki Database Connection, upewniamy się że w sekcji "Download client credentials (Wallet)" pole "Wallet type" ustawione jest na "Instance". Klikamy "Download wallet", umieszczamy pobrany plik ZIP w jakimś sensownym miejscu (ja go trzymam w katalogu użytkownika, w folderze "code" (przykładowo, na MacOS folder ten znajduje się w ścieżce /Users/USER/code, ale Wy umieśćcie go tam gdzie Wam jest wygodnie. Prace na stronach Oracle Cloud są zakończone, przechodzimy więc do SQLDevelopera.

W. SQLDeveloperze dodajemy nowe połączenie. Podajemy nazwę użytkownika ADMIN i jego hasło. Następnie wybieramy "Connection type" i ustawiamy Cloud Wallet. W "Configuration file" wskazujemy ścieżkę do pobranego pliku zip, który nazywać się będzie "Wallet nazwawyswietlana.zip". W service wybieramy nazwainstancji_high (u mnie oratest_high). Klikamy "Test", i jeśli w lewym dolnym rogu okienka konfiguracj pojawi się "Status: Success", oznacza to że udało się połączyć do bazy danych, i można jej zacząć używać! Po kliknięciu w "Connect" możemy zacząć bawić się naszą świeżutką bazą danych.



Populacja danych na bazie Oracle Autonomous Database


Ta część artykułu dotyczy osób które chcą załadować na bazę trochę danych by móc zacząć się bawić SQLem czy PL/SQLem, bez konieczności pisania skomplikowanych skryptów bazodanowych do uzupełnienia bazy przykładowymi danymi.

Jeśli chcesz wypełniać bazę danymi samodzielnie, zmigrować dane lub po prostu napisać aplikację która będzie tej bazy używała, bez konieczności wrzucania na nią danych - nie czytaj dalej.

By mieć jakieś dane na bazie, przydałby się jakiś gotowiec, prawda? Gotowców jest mnóstwo, ale ja skupię się na oficjalnych SQLach od Oracle, które można znaleźć tutaj: https://github.com/oracle-samples/db-sample-schemas

Klonujemy lub pobieramy repozytorium jako ZIP, rozpakowujemy, umieszczamy w sensownym folderze. W SQLdeveloperze, po połączeniu się do bazy jako ADMIN, w lewym górnym rogu klikamy ikonkę folderu, wchodzimy do folderu ze sklonowanym/rozpakowanym folderem db-sample-schema-main. Wchodzimy do folderu human_resources (jest to chyba najlepiej utrzymywany przez Oracle pakiet przykładowych danych), otwieramy plik hr_install.sql, a w worksheecie w którym otworzy się ten plik klikamy "Run script", albo naciskamy F5.

Skrypt w trakcie pracy zapyta o hasło dla schematu HR, a po chwili o namespace dla HR, domyślnie jest to "data", i taką opcję wpisujemy. Gdy skrypt skończy działanie, powtórz krok z dodawaniem połączenia, tylko nazwij je np. nazwawyswietlana_hr (w moim przypadku oratest_hr), nazwa użytkownika to HR, hasło to hasło które wcześniej ustawiłeś/aś. Plik portfela pozostaje ten sam co wcześniej, jak i reszta ustawień:



Przetestuj połączenie. Jeśli wszystko jest ok, gratulacje, właśnie udało Ci się postawić instancję Oracle Autonomous Database, oraz udało Ci się wrzucić na nią przykładowe dane

#programowanie #oracle #oraclecloud #cloud #sql #plsql

W drugiej części tego artykułu pokażę jak z użyciem Kotlina i Spring Boota stworzyć aplikację która 1. będzie łączyła się z naszą bazą danych, 2. pokaże jak uruchamiać PL/SQLowe procedury, funkcje i kursory z poziomu kodu.

Komentarze (4)

roadie

@dziki dzięki, zapisuję, całkiem możliwe że się przyda

koszotorobur

@dziki - napracowałeś się - mi się to nie przyda - ale może komuś kto zaczyna to akurat

furyat

@dziki Ciekawe na jak długo będzie za darmo. Z moimi projektami, które robię i zostawiam na miesiące i lata, mogę się nagle obudzić z jakąś płatna subskrypcja.

dziki

@furyat Oracle twierdzi że niby "forever free", więc może się bardzo ewentualnie okazać że mówią prawdę, ale mogą w przyszłości ucinać ram, moc obliczeniową, czy wolne miejsce na dane (obecnie Autonomous Database w wersji darmowej ma 40gb miejsca na dane.

Zaloguj się aby komentować