V administraci databází se používá mnoho nástrojů, které pomáhají zjednodušit správu databází s otevřeným zdrojovým kódem. Výhodou použití těchto typů aplikací jsou nabídky dostupnosti z různých objektů v databázi (jako jsou tabulky, indexy, sekvence, procedury, pohledy, triggery), takže při použití nativního databázového klienta nemusíte používat příkazový řádek . Stačí jednoduše procházet nabídku a okamžitě se objeví na obrazovce.
V tomto blogu se podíváme na jednu z aplikací třetí strany pro správu databází pro PostgreSQL s názvem pgAdmin. Jedná se o open source nástroj pro správu databází, který je užitečný pro správu databází, od vytváření tabulek, indexů, pohledů, spouštěčů a uložených procedur. Kromě toho může pgAdmin také monitorovat databázi pro informace týkající se relací, transakcí za sekundu a zamykání.
Monitorování pgAdmin
V pgAdmin jsou některé metriky, které mohou být cenným přehledem pro pochopení aktuálního stavu databáze. Zde jsou metriky zobrazení na pgAdmin.
Na řídicím panelu můžete sledovat informace související s příchozími připojeními k databázi prostřednictvím serverových relací. Informace týkající se transakcí potvrzení, vrácení zpět a celkového počtu transakcí za sekundu v databázi lze vidět na obrazovce Transakce za sekundy. N-tice v obsahuje informace související s celkovým vkládáním, aktualizací, mazáním n-tic v databázi. N-tice out obsahují informace o nicích, které se vracejí klientovi z databáze. Samotné ntice jsou v PostgreSQL termín pro řádky. Metrics Block I/O obsahuje informace související s informacemi o disku, celkový počet přečtených a načtených bloků z mezipaměti databáze.
Aktivita serveru obsahuje informace související se spuštěnými relacemi, zamykáním, ke kterému dochází v databázi, připravenými příkazy z dotazů a konfigurací databáze. Jak je znázorněno na obrázku níže.
Ve vlastnostech můžete vidět informace týkající se právě probíhající databáze PostgreSQL přístup, jako je název databáze, typ serveru, verze databáze, ip adresa a použité uživatelské jméno.
SQL obsahuje informace související s vygenerovaným skriptem SQL vytvořeným z vybraného objektu takto:
Informace ve zvýrazněném objektu jsou zobrazeny velmi podrobně, protože obsahují skript pro rekonstrukci objektu.
Na kartě Statistiky se v nabídce zobrazují informace související se statistikami shromážděnými od každého objektu spuštěného v databázi.
Například výše uvedená tabulka obsahuje informace týkající se n-tic (vložené, aktualizované , smazaný, živý, mrtvý). Jsou zde také informace týkající se vakua a automatické analýzy.
Vakuum se spustí, aby vyčistilo mrtvé n-tice v databázi a obnovilo diskové úložiště používané mrtvými n-ticemi. Funkce automatické analýzy generuje statistiky objektů, takže optimalizátor může přesně určit plán provádění dotazu.
ClusterControl PostgreSQL Monitoring
ClusterControl má různé metriky související s databází PostgreSQL, které lze nalézt na kartách Overview, Nodes, Dashboard, Query Monitor a Performance. V ClusterControl se zobrazí následující metriky.
Sekce Přehled obsahuje informace související s metrikami zatížení serveru od připojení, čísla vložení, odstranění, aktualizace, potvrzení a vrácení a připojení. Kromě toho jsou zde informace, jako jsou zdravotní uzly, stav replikace databáze PostgreSQL a také informace související s využitím serveru, jak je znázorněno na obrázku níže.
Záložka Nodes poskytuje informace související s grafem na straně serveru počínaje CPU Využití, Paměť, Využití disku, Využití sítě a Swapu.
Hlavní panel má několik možností metrik, jako je Přehled systému, Přehled clusteru a Přehled PostgreSQL. Pro každou možnost existují různé metriky, které souvisejí se stavem běžícího systému. Například v metrikách PostgreSQL Overview jsou informace od průměrů zatížení z databáze, dostupné paměti a síťového přenosu a příjmu, jak je uvedeno níže.
Sledování dotazů obsahuje informace související se spouštěním dotazů spuštěných v databázi. Můžeme zjistit, jaké dotazy běží, jak dlouhá je doba provádění, informace o zdrojové adrese klienta a stavu relace. Kromě toho existuje funkce Kill session, kde můžeme ukončit relaci, která způsobí zpoždění databáze. Toto je zobrazení z Query Monitor:
Kromě spouštění dotazů můžeme také zobrazit informace statistiky dotazů, počínaje z přístupu pomocí sekvenčního nebo indexového skenování, statistiky I/O tabulky, statistiky indexu I/O, Velikost databáze, Top 10 největších tabulek.
Karta Výkon obsahuje informace týkající se databázových proměnných a aktuálně spuštěné hodnoty, kromě toho je zde Poradce, který poskytuje vstup související s následnými kroky po varování, které se objevilo.
Růst databází a tabulek lze také sledovat v nabídce Růst DB, můžete předvídat potřeby úložiště nebo jiné akce, které budou provedeny, pomocí analýzy metrik růstu těchto databází a tabulek.
Úlohy administrace PostgreSQL s pgAdmin
pgAdmin má různé funkce pro správu databáze a objektů, které jsou v databázi, od vytváření tabulek, indexů, uživatelů a tabulkových prostorů. Různé funkce pgAdmin jsou velmi užitečné pro vývojáře i DBA, protože velmi usnadňují správu databázových objektů. Následuje vzhled stromu nabídek v pgAdmin.
Stačí kliknout pravým tlačítkem na objekt, který má být zvýrazněn, a pak tam budou akce, které lze z tohoto objektu provést. Například zvýrazněním položky Databáze můžete vytvořit novou databázi takto:
Zobrazí se dialogové okno pro vyplnění informací o názvu databáze, vlastník databáze, která má být vytvořena, kódování, které bude použito, tabulkový prostor, který bude databáze používat, bezpečnostní přístup k databázi.
K čemu mají uživatelé přístup a jaká oprávnění budou udělena.
Úlohy správy PostgreSQL s ClusterControl
ClusterControl může také vytvářet uživatele a oprávnění, která budou udělena Správě uživatelů, jak ukazuje následující obrázek.
S ClusterControl můžete nasadit vysoce dostupné databáze PostgreSQL. Správa vašeho PostgreSQL je stejně snadná, jako pouhé kliknutí na nabídku na řídicím panelu. Existují některé funkce pro správu vašeho PostgreSQL na straně clusteru, jako je Add Load Balancer, Add Replication Slave, Enable/Disable Cluster Recovery a Node Recovery, jak je uvedeno níže.
Můžete také vytvořit nový cluster PostgreSQL a nechat jej replikovat ze spuštěného clusteru pomocí položky nabídky Vytvořit podřízený cluster. Replikace Cluster-to-Cluster je nová funkce poskytovaná ClusterControl.
Na straně uzlu je několik úloh správy databáze, které můžete provést, jako je Reboot Host, Restart Node, Stop Node, Promote Slave, Stop Slave. Ke svým hostitelům můžete přistupovat vzdáleně prostřednictvím konzoly SSH.
Rebuild Replication Slave je elegantní funkce, která automaticky opravuje podřízené servery, které překonaly opravit. Zastaví slave, vymaže jeho obsah a streamuje novou zálohu z hlavního serveru. Jakmile je záloha použita, replikace se obnoví, aby mohla znovu dohnat hlavní server. To vše pouhým kliknutím.
K dispozici je také funkce pro vizualizaci aktuálního stavu vaší architektury topologie PostgreSQL v ClusterControl.
Poskytuje rychlým pohledem užitečné informace o aktuálním clusteru PostgreSQL, např. jako je latence mezi uzly, doba provozu databáze, verze databáze, kterou používáte, stav synchronizace, zpoždění replikace.
Můžete také změnit konfiguraci související s parametry databáze a ip adresu ACL, která má právo přístupu k databázi, v nabídce Konfigurace.
Spuštění distribuovaného databázového prostředí obvykle vyžaduje určitý druh vyrovnávání zátěže a řízení provozu , protože existuje více instancí databáze a aplikace by nesledovaly, která z nich je zapisovatelná master a která jsou podřízená zařízení pouze pro čtení. ClusterControl umožňuje za tímto účelem integrovat HAProxy. HAProxy může být samo o sobě vysoce dostupné pomocí Keepalived, takže aplikace se mohou připojit pomocí jedné virtuální IP adresy, která je převedena na jinou instanci v případě, že selže primární HAProxy load balancer.
ClusterControl má další funkce, jako jsou provozní zprávy, které poskytují týdenní nebo měsíční analýzy využití serveru, doby provozuschopnosti, zabezpečení a kapacity. pgAdmin je skvělý v manipulaci s objekty v databázi, zatímco ClusterControl se více zaměřuje na provoz systému a jeho udržování.