Jest wiele sytuacji, w których w bazie danych trzeba zapisać unikalne informacje, oznaczone unikalnym identyfikatorem. Tak jest zresztą nie tylko w bazach danych. Idziesz do urzędu, a na wejściu musisz pobrać numerek, dzięki czemu od razu jesteś zakolejkowany 🙂 Obiektem, który w bazie danych generuje kolejne wartości jest tzw. SEQUENCE. Bardzo podstawowa definicja sequence może […]
Archiwum dla kategorii ‘PostgreSQL’
PostgreSQL: Sequences – co to jest i jak ich używać?
PostgreSQL: Liczba rekordów w każdej tabeli
Jeden z ostatnich kroków migracji danych, to sprawdzenie, czy migracja „niczego nie zgubiła”. Potencjalnie można się np. spodziewać, że tuż po zakończeniu migracji, jakiś zbłąkany użytkownik dopisał swoje rekordy do źródłowej bazy danych, a my tego rekordu nie przenieśliśmy. Jeden z „topornych” sposobów sprawdzenia, czy żaden rekord nie zostanie utracony, jest po prostu policzenie rekordów […]
PostgreSQL: Wykrywanie tabel bez primary key i dodawanie primary key
Niektóre mechanizmy PostgreSQL, jak np. replikacja logiczna wymagają, aby tabele posiadały primary key. Dlatego przyda się wiedzieć, czy baza danych spełnia wymogi dla replikacji logicznej. Oto polecenie, które wyświetli informację o tabelach bez primary key:
1 2 3 4 5 6 7 8 9 10 11 |
select tab.table_schema, tab.table_name from information_schema.tables tab left join information_schema.table_constraints tco on tab.table_schema = tco.table_schema and tab.table_name = tco.table_name and tco.constraint_type = 'PRIMARY KEY' where tab.table_type = 'BASE TABLE' and tab.table_schema not in ('pg_catalog', 'information_schema') and tco.constraint_name is null order by table_schema, table_name; |
I co jeśli takie tabele się znajdą? Ogólnie masz kłopot, ale w najlepszym przypadku, znajdzie się w tabelach kolumna, […]
PostgreSQL: PostgreSQL Build Europe 2021 Conference
Zainteresowanym polecam udział w przyszłych edycjach konferencji PostgreSQL Build. Ostatnia w jakiej uczestniczyłem to europejska edycja 2021. https://www.postgresbuild.com/agenda Jak to na konferencjach bywa, było poruszanych mnóstwo tematów. 2 dni pełne wykładów podzielonych na kilka równoległych ścieżek. Organizatorzy przyjęli koncepcję nagrywania sesji wcześniej i odtwarzania ich w trakcie konferencji. Wielką zaletą konferencji jest to, że po […]
Azure: Postgresql – powershell module
Kiedy chcesz automatyzować instalację PostgreSQL w Azure przyda się zestaw poleceń dostępny w module Az.PostgreSql. Niestety nie jest on domyślnie instalowany nawet w Cloud Shell. Komenda do instalacji:
1 |
Install-Module -Name Az.PostgreSql |
Po instalacji warto sprawdzić czy i w jakiej wersji ten moduł jest dostępny:
1 2 3 4 5 |
Getl-Module -Name Az.PostgreSql ModuleType Version PreRelease Name ExportedCommands ---------- ------- ---------- ---- ---------------- Script 0.8.0 Az.PostgreSql {Get-AzPostgreSqlConfiguration, Get-AzPostgreSqlConnectionString, Get-AzPostgreSqlFirewallRule, Get-AzPostgreSqlFlexibleServer…} |
Teraz widać, że moduł jest i ma mnóstwo fajnych komend. Ich dokładniejszy […]
PostgreSQL: Konfiguracja klienta
Nie kazdy serwer musi pelnic role serwera. Zdarzaja sie maszyny, ktore pracuja po prostu jako klient. W przypadku postgresql wymagane bedzie wtedy zainstalowanie narzedzi klienckich. Swietnie sie zapowiadajace polcenie:
1 |
sudo apt install postgresql-client-common |
moze jednak sprawic niespodzianke. Po probie polaczenia mozna otrzymac blad: Error: You must install at least one postgresql-client-<version> package O co chodzi? Ten pakiet zawiera […]
PostgreSQL: FATAL: the database system is in recovery mode
No i co tu poradzić? Połączenia do bazy danych czasami się udają, ale nawet wtedy po krótkiej chwili sesja jest zabijana i można znaleźć komunikaty
1 2 3 4 5 6 7 |
WARNING: terminating connection because of crash of another server process DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory. HINT: In a moment you should be able to reconnect to the database and repeat your command. server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: Failed. |
1 |
edb-psql: error: FATAL: the database system is in recovery mode |
Zwykle pierwszym dobrym krokiem, kiedy chce się zobaczyć coś więcej od środka, jest analiza zapisów w logu systemowym. Znajdziesz je w /var/lib/edb/as13/data/logs. Log pełen był zapisów w postaci: