Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
PostgreSQL
psql - podstawowe narzędzie administratora, które warto znać
psql to podstawowe narzędzie każdego administratora PostgreSQL. Jest zawsze pod ręką, bo instaluje się razem z bazą, działa przez SSH na każdym serwerze i nie wymaga środowiska graficznego. Początkującym wydaje się ubogi, ale to złudzenie - psql ma dziesiątki metapoleceń zaczynających się od odwrotnego ukośnika, które błyskawicznie pokazują strukturę bazy, uprawnienia i stan obiektów. Kilka z nich wystarczy, aby wykonywać codzienne zadania szybciej niż w jakimkolwiek kliencie graficznym.
Osoba znająca tylko narzędzia graficzne po zalogowaniu na serwer produkcyjny przez SSH czuje się zagubiona - nie ma okienek, jest tylko znak zachęty. Żeby sprawdzić listę tabel, próbuje pisać zapytania do katalogu systemowego, choć wystarczyłoby jedno metapolecenie. Żeby zobaczyć definicję tabeli, szuka jej w dokumentacji, zamiast wyświetlić ją od ręki. Objawem braku wprawy w psql jest wolne, męczące poruszanie się po bazie i przepisywanie długich zapytań do information_schema tam, gdzie skrót załatwia sprawę natychmiast. Tymczasem to właśnie na serwerze bez GUI psql jest często jedynym dostępnym narzędziem, więc jego znajomość jest nie luksusem, lecz koniecznością.
psql łączy w sobie dwie warstwy. Pierwsza to zwykły interpreter SQL - wszystko, co wpiszemy zakończone średnikiem, leci do bazy jako zapytanie. Druga to metapolecenia klienta, które zaczynają się od odwrotnego ukośnika i nie są SQL-em; obsługuje je sam psql, tłumacząc je pod spodem na odpytania katalogu systemowego i formatując wynik w czytelną tabelę. Początkujący nie wie o tej drugiej warstwie, więc próbuje robić ręcznie to, co metapolecenia dają od razu. Do tego dochodzi konfiguracja połączenia: psql czyta parametry hosta, portu, użytkownika i bazy z argumentów oraz ze zmiennych środowiskowych, a hasło może brać z pliku ukrytego w katalogu domowym, dzięki czemu nie trzeba go wpisywać za każdym razem.
psql -h 127.0.0.1 -U postgres -d nazwa_bazy. Bez podania bazy psql łączy się z bazą o nazwie użytkownika.\l pokazuje listę baz, \c nazwa_bazy przełącza aktywne połączenie, a \dn wyświetla schematy.\dt to lista tabel, \di indeksy, \dv widoki, a \df funkcje. Dodanie znaku plus, na przykład \dt+, dokłada rozmiary.\d nazwa_tabeli - pokaże kolumny, typy, indeksy, klucze i ograniczenia bez pisania jakiegokolwiek zapytania.\du listuje role i ich atrybuty, a \dp pokazuje uprawnienia nadane na tabelach.\i sciezka/plik.sql wykonuje polecenia z pliku, a \timing on włącza pomiar czasu każdego zapytania. Klienta zamykasz przez \q..psqlrc z ustawieniami, na przykład włączonym timingiem, oraz plik .pgpass z hasłem, aby psql nie pytał o nie przy każdym logowaniu.Sprawdź wersję i połączenie zaraz po wejściu: SELECT version(); potwierdzi, że jesteś w bazie, a znak zachęty pokaże nazwę aktywnej bazy. Wykonaj \conninfo, aby zobaczyć, jako kto i do czego jesteś podłączony. Następnie sprawdź dowolne metapolecenie, na przykład \dt - jeśli zwróci listę tabel w czytelnej tabelce, warstwa metapoleceń działa. Jeśli po założeniu pliku z hasłem kolejne uruchomienie psql łączy się bez pytania o hasło, konfiguracja jest kompletna i możesz pracować płynnie także na serwerach bez środowiska graficznego.
Wróć do listy: 100 najczęstszych pytań i problemów z PostgreSQL

Sprawdź szkolenie: Administracja, replikacja i tuning baz danych PostgreSQL
To szkolenie może być dofinansowane z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5

Sprawdź szkolenie: Zaawansowana administracja PostgreSQL (HA, DR, monitoring, skalowanie)
To szkolenie może być dofinansowane z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Komentarze (0)
Brak komentarzy...