Databases - marcinogo/robot GitHub Wiki
W pliku znajdują się wskazówki i podstawowe operacje (komendy) wykonywane na bazie danych postawionej na serwerze Heroku/Aruba.
-
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. -
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 komendyheorku pg:info -a bookrobotja7
tak jak na zamieszczonym obrazku: -
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
-
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
-
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:
-
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:
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:
tutaj jest tutorial https://dzone.com/articles/run-your-java-application-as-a-service-on-ubuntu
inne pomocne komendy vim /etc/systemd/system/h2.service
vim h2-start.sh
sudo chmod u+x h2-start.sh