Databases - marcinogo/robot GitHub Wiki

Instrukcja do bazy danych

W pliku znajdują się wskazówki i podstawowe operacje (komendy) wykonywane na bazie danych postawionej na serwerze Heroku/Aruba.

Heroku (PostgreSQL)

  1. Podstawowe informacje

    Kredki oraz ustawienia bazy danych można znaleźć pod następującym adresem:

    lub skorzystać z komendy heroku pg:info -a bookrobotja7 przy użyciu Heorku CLI.

  2. Reset bazy danych

    Często gęsto wymagane jest czyszczenie bazy danych, czy to przy demonstracji aplikacji klientowi, czy w trakcie "testów" na bazie produkcyjnej.

    Aby zresetować bazę danych należy skorzystać z komendy heroku pg:reset URL -a bookrobotja7, gdzie URL jest to unikalna nazwa bazy danych, którą możemy pobrać korzystając z komendy heorku pg:info -a bookrobotja7 tak jak na zamieszczonym obrazku:

  3. Diagnoza

    W przypadku jakiegoś spadku wydajności bazy danych można ją zdiagnozować następującą komendą:

    heroku pg:diagnose --app bookrobotja7

    Kolejnym dobrym narzędziem do rozwiązywania problemów, tym razem nadmierną liczbą połączeń, jest program PgBouncer.

    Niektóre kwerendy mogą się wykonywać dłużej i blokować działanie bazy danych. Zwykle takie blokady są wychwytywane i szybko usuwane, ale zdarzają się patologiczne sytuacje i wtedy możemy ręcznie zabić taką kwerendę komendą:

    heroku pg:kill <tutaj_id_kwerendy>

    Aby zobaczyć kwerendy obecnie wykonywane możemy użyć komendy: heroku pg:ps -a bookroobotja7

  4. Lokalna baza danych

    Możemy podłączyć się zdalnie pod serwerową bazę z naszego komputera. Żeby to zadziałało musimy mieć oczywiście zainstalowane PostgreSQL na naszym systemie. Ważne żeby wersja sterownika Postgres JDBC była 9.2, albo wyższa.

    Następnie możemy się podłączyć komendą: heroku pg:psql -a boookrobotja7

    Możemy pobrać aktualne dane na naszą bazę lokalna (np. dla testów) korzystając z poniższej komendy:

    heroku pg:pull postgresql-horizontal-53980 mylocaldb --app bookrobotja7

    Powyższa komenda tworzy nową lokalną bazę danych o nazwie "mylocaldb" i ściąga wszystkie dane z bazy serwerowej postgresql-horizontal-53980.

    Możemy ustawić kredki dla naszej lokalnej bazy następującą komendą:

    PGUSER=postgres PGPASSWORD=password heroku pg:pull postgresql-horizontal-53980 mylocaldb --app bookrobotja7

  5. Zmiana danych do logowania

    Zmiana kredek dla głównej bazy serwerowej (np. w przypadku gdyby gdzieś wyciekły) można zrobić następującą komendą:

    heroku pg:credentials:rotate postgresql-horizontal-53980

    Login i hasło są generowane automatycznie przez Heroku, nie ma możliwości wprowadzenia danych manualnie.

    Heroku pozwala na tworzenie kilku użytkowników bazy danych z różnymi uprawnieniami. Aby tego dokonać należy skorzystać z CLI i przejść przez kroki opisane w poniższym linku:

  6. Dataclips

    Heroku udostępnia bardzo przyjemne GUI do tworzenia kwerend do bazy danych, wykonywania ich oraz zbierania statystyk z danej kwerendy. Klarowna instrukcja do tworzenia i zarządzania "dataclipsami" znajduje się pod poniższym linkiem:

Aruba (H2)

H2 jest na Arubie w katalogu /home/h2

Aby odpalić bazę należy wejśc do tego katalogu i w konsoli wklepać: java -jar h2* -web -webAllowOthers -tcp -tcpAllowOthers -browser &

Ampersand jest ważny, bo inaczej proces odpali się w konsoli i po zamknięciu konsoli proces umrze.

Jak więc potem zabić proces H2?

sudo netstat -plnt | grep 9082

upewnijmy się, czy to jest ten proces: ps aux | grep <nr pidu który odczytamy>

a potem kill -9 <nr pid> i po robocie

Aby dostac się do bazy nalezy wejśc pod link Web Console server running at http://80.211.241.126:9082 (others can connect) TCP server running at tcp://80.211.241.126:9092 (others can connect)

Ustawienie H2 jako usługi:

inne pomocne komendy vim /etc/systemd/system/h2.service

vim h2-start.sh

sudo chmod u+x h2-start.sh

⚠️ **GitHub.com Fallback** ⚠️