Računalniki Windows internet

Osnovni ukazi PostgreSQL. Osnovni ukazi PostgreSQL Iskanje in spreminjanje lokacije primerka gruče

Pozdravljeni, danes želim narediti majhen zapis o osnovnih ukazih PostgreSQL. S PosgreSQL lahko delate tako interaktivno kot iz ukazne vrstice. Program je psql. Prepričan sem, da vam bo ta seznam zelo koristen in vam bo prihranil čas pri iskanju po različnih virih. Naj vas spomnim, da je to odprtokodni projekt, ki temelji na DBMS Postgres, je izšel leta 1986, razvija ga svetovna skupina razvijalcev PGDG, v bistvu je 5-8 ljudi, a kljub temu je se zelo intenzivno razvija, uvaja vse nove funkcije in odpravlja stare napake in napake.

Osnovni ukazi PostgreSQL v interaktivnem načinu:

  • \ connect db_name - povežite se z bazo podatkov z imenom db_name
  • \ du - seznam uporabnikov
  • \ dp (ali \ z) - seznam tabel, pogledov, zaporedij, pravic dostopa do njih
  • \ di - indeksi
  • \ ds - zaporedja
  • \ dt - seznam tabel
  • \ dt + - seznam vseh tabel z opisom
  • \ dt * s * - seznam vseh tabel, ki vsebujejo s v imenu
  • \ dv - pogledi
  • \ dS - sistemske tabele
  • \ d + - opis tabele
  • \ o - pošlji rezultate poizvedbe v datoteko
  • \ l - seznam baz podatkov
  • \ i - branje dohodnih podatkov iz datoteke
  • \ e - odpre trenutno vsebino medpomnilnika zahtev v urejevalniku (če ni drugače določeno v okolju spremenljivke EDITOR, bo privzeto uporabljen vi)
  • \ d "ime_tabele" - opis tabele
  • \ zaženem ukaz iz zunanje datoteke, kot je \ i /my/directory/my.sql
  • \ pset - ukaz za nastavitev parametrov oblikovanja
  • \ echo - prikaže sporočilo
  • \ set - nastavi vrednost spremenljivke okolja. Brez parametrov prikaže seznam trenutnih spremenljivk (\ unset - odstrani).
  • \? - psql reference
  • \ pomoč - referenca SQL
  • \ q (ali Ctrl + D) - zapustite program

Delo s PostgreSQL iz ukazne vrstice:

  • -c (ali -ukaz) - Zaženite ukaz SQL, ne da bi prešli v interaktivni način
  • -f file.sql - izvaja ukaze iz datoteke file.sql
  • -l (ali -list) - navede razpoložljive baze podatkov
  • -U (ali -username) - določite uporabniško ime (na primer postgres)
  • -W (ali -password) - poziv za geslo
  • -d dbname - povezava z bazo podatkov dbname
  • -h - ime gostitelja (strežnik)
  • -s - način korak za korakom, to pomeni, da boste morali potrditi vse ukaze
  • –S - enovrstični način, to pomeni, da bo nova vrstica izvršila poizvedbo (znebite se; na koncu stavka SQL)
  • -V - Različica PostgreSQL brez vstopa v interaktivni način

Primeri:

psql -U postgres -d dbname -c "USTVARI TABELE my (nekaj_id serijski PRIMARN KLJUČ, nekaj_besedilnega besedila);" - izvajanje ukaza v bazi podatkov dbname.

psql -d dbname -H -c "IZBERI * IZ mojega" -o my.html - izpiši rezultat poizvedbe v datoteko html.

PosgreSQL pripomočki (programi):

  • createdb in dropdb - ustvarite in spustite bazo podatkov (oziroma)
  • createuser in dropuser - ustvari in uporabnik (oziroma)
  • pg_ctl - program, zasnovan za reševanje splošnih nalog upravljanja (zagon, zaustavitev, konfiguracija parametrov itd.)
  • postmaster - večuporabniški strežniški modul PostgreSQL (nastavitev ravni odpravljanja napak, vrat, podatkovnih imenikov)
  • initdb - ustvarite nove gruče PostgreSQL
  • initlocation - program za ustvarjanje imenikov za sekundarno shranjevanje baz podatkov
  • vacuumdb - fizično in analitično vzdrževanje baze podatkov
  • pg_dump - varnostno kopiranje in obnovitev podatkov
  • pg_dumpall - varnostno kopirajte celotno gručo PostgreSQL
  • pg_restore - obnovitev baze podatkov iz arhivov (.tar, .tar.gz)

Primeri ustvarjanja varnostnih kopij:

Izdelava varnostne kopije baze podatkov mydb v stisnjeni obliki

Pg_dump -h localhost -p 5440 -U someuser -F c -b -v -f mydb.backup mydb

Ustvarjanje varnostne kopije baze podatkov mydb v obliki datoteke z navadnim besedilom, vključno z ukazom za ustvarjanje baze podatkov

Pg_dump -h localhost -p 5432 -U neki uporabnik -C -F p -b -v -f mydb.backup mydb

Ustvarjanje varnostne kopije baze podatkov mydb v stisnjeni obliki s tabelami, ki vsebujejo plačila v imenu

Pg_dump -h localhost -p 5432 -U neki uporabnik -F c -b -v -t * plačila * -f pay_tables.backup mydb

Izpis podatkov samo iz ene določene tabele. Če morate varnostno kopirati več tabel, so imena teh tabel navedena s stikalom -t za vsako tabelo.

Pg_dump -a -t ime_tabele -f ime_datoteke ime_baze_baze

Izdelava varnostne kopije s stiskanjem gz

Pg_dump -h localhost -O -F p -c -U postgres mydb | gzip -c> mydb.gz

Seznam najpogosteje uporabljenih možnosti:

  • -h gostitelj - gostitelj, če ni določeno, se uporabi localhost ali vrednost iz spremenljivke okolja PGHOST.
  • -p vrata - vrata, če ni določeno, se uporabi 5432 ali vrednost iz spremenljivke okolja PGPORT.
  • -u - uporabnik, če ni določen, se uporablja trenutni uporabnik, vrednost lahko podate tudi v spremenljivki okolja PGUSER.
  • -a, -data-only - izpis samo podatkov, podatki in shema so privzeto shranjeni.
  • -b - vključi velike predmete (bloge) v smetišče.
  • -s, -schema-only - samo izpis sheme.
  • -C, -create - doda ukaz za ustvarjanje baze podatkov.
  • -c - doda ukaze za spuščanje (spuščanje) predmetov (tabel, pogledov itd.).
  • -O - ​​ne dodajajte ukazov za nastavitev lastnika predmeta (tabel, pogledov itd.).
  • -F, -format (c | t | p) - format izhodnega izpisa, po meri, tar ali golo besedilo.
  • -t, -table = TABLE - podajte posebno tabelo za izpis.
  • -v, -verbose - izpis podrobnih informacij.
  • -D, -attribute-inserts - izpis z ukazom INSERT s seznamom imen lastnosti.

Varnostno kopirajte vse baze podatkov z ukazom pg_dumpall.

Pg_dumpall> all.sql

Obnavljanje tabel iz varnostnih kopij (varnostne kopije):

psql - obnovi varnostne kopije, shranjene v datoteki z navadnim besedilom;
pg_restore - obnoviti stisnjene varnostne kopije (tar);

Obnovitev celotne varnostne kopije brez upoštevanja napak

Psql -h localhost -U someuser -d dbname -f mydb.sql

Obnovitev celotne varnostne kopije, ustavitev pri prvi napaki

Psql -h localhost -U someuser -set ON_ERROR_STOP = on -f mydb.sql

Za obnovitev iz arhiva tar moramo najprej ustvariti bazo podatkov z uporabo CREATE DATABASE mydb; (če pri ustvarjanju varnostne kopije ni bila navedena možnost -C) in obnovite

Pg_restore -dbname = mydb -jobs = 4 -verbose mydb.backup

Obnovitev gz-stisnjene varnostne kopije baze podatkov

psql -U postgres -d mydb -f mydb

Mislim, da vam bo baza podatkov postgresql zdaj bolj jasna. Upam, da vam je bil ta seznam ukazov PostgreSQL koristen.

Zadnja posodobitev: 17.03.2018

Za ustvarjanje tabel uporabite ukaz CREATE TABLE, ki mu sledi ime tabele. S tem ukazom lahko uporabite tudi številne operatorje, ki definirajo stolpce tabele in njihove atribute. Splošna sintaksa za ustvarjanje tabele je naslednja:

CREATE TABLE ime_tabele (ime_stolpca1 podatkovni tip atributi_stolpca1, ime_stolpca2 podatkovni tip atributi_stolpca2, ................................... .. .......... ime_stolpcaN tip podatkov stolpec_atributiN, atributi_tabele);

Specifikacija za vse stolpce je navedena v oklepajih za imenom tabele. Poleg tega je treba za vsak stolpec navesti ime in vrsto podatkov, ki jih bo predstavljal. Podatkovni tip določa, katere podatke (številke, nize itd.) lahko vsebuje stolpec.

Na primer, ustvarimo tabelo v bazi podatkov prek pgAdmin. Če želite to narediti, najprej izberite ciljno bazo podatkov v pgAdmin, jo kliknite z desno miškino tipko in v kontekstnem meniju izberite element Orodje za poizvedbe ...:

Po tem se odpre polje za vnos kode SQL. Poleg tega bo tabela ustvarjena posebej za bazo podatkov, za katero bomo odprli to polje za vnos SQL.

CREATE TABLE stranke (ID SERIJSKI PRIMARNI KLJUČ, ZNAK IME SE RAZLIKUJE (30), ZNAK priimka VARING (30), E-poštni ZNAK VARING (30), Age INTEGER);

V tem primeru tabela Stranke definira pet stolpcev: Id, Ime, Priimek, Starost, E-pošta. Prvi stolpec, Id, predstavlja ID stranke, služi kot primarni ključ in je zato tipa SERIAL. Pravzaprav bo ta stolpec shranil številčno vrednost 1, 2, 3 itd., ki se bo samodejno povečala za eno za vsako novo vrstico.

Naslednji trije stolpci predstavljajo ime, priimek in e-poštni naslov stranke in so tipa CHARACTER VARYING (30), torej predstavljajo niz, ki ne vsebuje več kot 30 znakov.

Zadnji stolpec, Starost, predstavlja starost uporabnika in je tipa INTEGER, torej shranjuje številke.

Po izvedbi tega ukaza bo tabela strank dodana v izbrano bazo podatkov.

Spuščanje miz

Če želite spustiti tabele, uporabite ukaz DROP TABLE, ki ima naslednjo sintakso:

DROP TABLE tabela1 [, tabela2, ...];

Na primer, spuščanje tabele strank.

Alternativa delu z bazo podatkov prek konzole je bolj intuitivno okolje za vsakega odjemalca z grafičnim vmesnikom. na primer pgAdmin... Namestitev je zelo preprosta, izvajamo jo s pravicami superuporabnika:

sudo apt-get install pgadmin3
Zdaj lahko tečete pgAdmin prek grafičnega vmesnika. S seznama izberite lokalni strežnik baz podatkov (ima privzeta vrata 5432) in dodajte bazo podatkov, ki smo jo že ustvarili s parametri, ki smo jih določili.
pgAdmin

V tem lokalnem strežniku poleg vozlišča Baze podatkov lahko najdete tudi vozlišče z imenom Vloge za prijavo- vse razpoložljive vloge.

Med vsemi razpoložljivimi bazami podatkov izberimo tisto, s katero smo ustvarili. Baza podatkov vsebuje veliko različnih vrst predmetov. Med posebno pozornost je treba nameniti tabelam in zaporedjem ( zaporedja).

Najpogosteje navadna tabela vsebuje primarni ključ v obliki pozitivne številske vrednosti. Ta vrednost mora biti edinstvena za vsako vrstico, zato lahko zaporedje nastavite kot privzeto vrednost, da je ne bi vsakič nastavili neposredno v zahtevi.

Najprej ustvarimo zaporedje. Mi izberemo Zaporedja - Novo zaporedje... Na prvem zavihku vnesite ime in ga določite kot Lastnik vlogo, ki smo si jo ustvarili. To zaporedje ne bo na voljo za druge vloge. Na drugem zavihku v polja Prirast in Začni vnesemo enega za drugim (razen če zahtevate drugače). Na zadnjem zavihku pogovornega okna lahko vidite nastalo poizvedbo SQL, ki bo izvedena v bazi podatkov.

Ko je zaporedje ustvarjeno, začnimo ustvarjati tabelo. Navedemo tudi njeno ime in lastnika (lastnika). Na četrtem zavihku Stolpci dodamo najprej primarni ključ. Gumb Dodaj, v oknu, ki se prikaže, navedite ime stolpca, npr. id... Izberemo vrsto podatkov bigint... Na drugem zavihku Opredelitev na terenu Privzeta vrednost označujemo naše zaporedje. Polje mora vsebovati vrednost obrazca nextval ("message_id_seq" :: regclass)... To pomeni, da vsakič, ko se doda nova vrstica, bo naslednja vrednost vzeta iz zaporedja. Po potrebi so dodani drugi stolpci. Končno v zavihku Omejitve dodajte omejitev za primarni ključ ( Primarni ključ). Na zadnjem zavihku lahko občudujemo nastalo kodo SQL, ki jo je ustvaril pgAdmin. Po kliku na V redu bo tabela ustvarjena.

Namesto bigint kot primarni ključ, ga lahko podate kot vrsto stolpca velika serija... Ta vrsta se samodejno poveča z vsako dodano novo vrstico, zato zanjo ni treba ustvarjati zaporedja. To pomeni, da v najpreprostejšem primeru, če nimate posebnih pravil za generiranje ID-ja zapisa, lahko priporočate uporabo bigserial.

Poglejmo vsebino naše tabele. Če želite to narediti, z desno miškino tipko kliknite in izberite v kontekstnem meniju Ogled podatkov - Ogled 100 vrstic.

V istem oknu lahko hitro uredite vrednost katere koli celice v tabeli. Če ima vaša tabela več kot 100 zapisov, spremenite število zapisov, prikazanih na spustnem seznamu na vrhu okna. Prikažete lahko 100, 500, 1000 ali vse zapise. Toda to ni nič drugega kot način, kako hitro pogledati vsebino tabele in se tega ne bi smeli navaditi. Če imate v svoji tabeli več deset tisoč zapisov, ne priporočam, da prikažete vse zapise naenkrat - v tem primeru je bolje napisati poizvedbo s parametri omejitev in pomik.

15 uporabnih ukazov PostgreSQL

V omrežju je veliko vadnic za PostgreSQL, ki opisujejo osnovne ukaze. Ko pa se poglobite v delo, se pojavijo praktična vprašanja, ki zahtevajo napredne ekipe.

Takšni ukazi ali odrezki so redko dokumentirani. Oglejmo si nekaj primerov, uporabnih tako za razvijalce kot za skrbnike baz podatkov.

Pridobivanje informacij o bazi podatkov

Velikost baze podatkov

Za pridobitev fizične velikosti datotek (shramba) baze podatkov uporabljamo naslednjo poizvedbo:

SELECT pg_database_size (trenutna_baza_podatkov ());

Rezultat bo predstavljen kot številka, kot je 41809016.

current_database () je funkcija, ki vrne ime trenutne baze podatkov. Namesto tega lahko vnesete ime v besedilo:

SELECT pg_database_size ("my_database");

Za pridobitev informacij v človeku berljivi obliki uporabljamo funkcijo pg_size_pretty:

IZBERI pg_size_pretty (pg_database_size (trenutna_baza_podatkov ()));

Kot rezultat dobimo informacije v obliki 40 Mb.

Seznam tabel

Včasih želite dobiti seznam tabel baze podatkov. Če želite to narediti, uporabite naslednjo poizvedbo:

IZBERI ime_tabel IZ information_schema.tables KJE shema_tabel NI V ("informacijska_shema", "pg_katalog");

information_schema je standardna shema baze podatkov, ki vsebuje zbirke pogledov, kot so tabele, polja itd. Pogledi tabel vsebujejo informacije o vseh tabelah v bazi podatkov.

Spodaj opisana poizvedba bo izbrala vse tabele iz podane sheme trenutne baze podatkov:

IZBERI ime_tabel IZ information_schema.tables KJE shema_tabel NI V ("informacijska_shema", "pg_katalog") IN shema_tabel IN ("javna", "moja shema");

V zadnjem stavku IN lahko podate ime določene sheme.

Velikost mize

Po analogiji s pridobivanjem velikosti baze podatkov lahko velikost podatkov tabele izračunamo z ustrezno funkcijo:

IZBERI pg_relation_size ("računi");

Funkcija pg_relation_size vrne količino prostora, ki jo podana plast podane tabele ali indeksa zaseda na disku.

Ime največje mize

Če želite prikazati seznam tabel v trenutni bazi podatkov, razvrščenih po velikosti tabele, izvedite naslednjo poizvedbo:

SELECT relname, relpages FROM pg_class ORDER BY relpages DESC;

Za prikaz informacij o največji tabeli omejimo poizvedbo z LIMIT:

SELECT relname, relpages FROM pg_class ORDER BY relpages DESC LIMIT 1;

relname je ime tabele, indeksa, pogleda itd.
relpages - velikost pogleda na disku te tabele v številu strani (privzeto je ena stran 8 KB).
pg_class je sistemska tabela, ki vsebuje informacije o odnosih med tabelami baze podatkov.

Seznam povezanih uporabnikov

Če želite izvedeti ime, IP in uporabljena vrata povezanih uporabnikov, zaženite to poizvedbo:

SELECT dataname, usename, client_addr, client_port FROM pg_stat_activity;

Uporabniška dejavnost

Za ugotavljanje aktivnosti povezave določenega uporabnika uporabljamo naslednjo poizvedbo:

SELECT datname FROM pg_stat_activity WHERE usename = "devuser";

Delo s podatkovnimi in tabelnimi polji

Odstranjevanje podvojenih vrstic

Če se zgodi, da tabela nima primarnega ključa, so med zapisi verjetno dvojniki. Če je treba za takšno tabelo, še posebej veliko, nastaviti omejitve za preverjanje celovitosti, bomo odstranili naslednje elemente:

  • podvojene vrstice,
  • situacije, ko se en ali več stolpcev podvoji (če naj bi se ti stolpci uporabljali kot primarni ključ).

Razmislite o tabeli s podatki o strankah, kjer je cela vrstica podvojena (druga v vrsti).

Naslednja poizvedba bo pomagala odstraniti vse dvojnike:

IZBRIŠI IZ strank, KJE CTID NI IN (IZBERI max (ctid) IZ strank GROUP BY strank. *);

Polje ctid, ki je edinstveno za vsak zapis, je privzeto skrito, vendar je prisotno v vsaki tabeli.

Zadnja zahteva zahteva veliko virov, zato bodite previdni, ko jo izvajate v produkcijskem projektu.

Zdaj razmislite o primeru, ko se vrednosti polj ponavljajo.

Če je mogoče izbrisati dvojnike, ne da bi shranili vse podatke, bomo izvedli naslednjo poizvedbo:

IZBRIŠI IZ strank, kjer ctid NI IN (IZBERI max (ctid) FROM strank GROUP BY customer_id);

Če so podatki pomembni, morate najprej poiskati zapise z dvojniki:

SELECT * FROM strank WHERE ctid NOT IN (IZBERITE max (ctid) FROM strank GROUP BY customer_id);

Preden izbrišete takšne zapise, se lahko premaknete v začasno tabelo ali zamenjate vrednost customer_id v njih z drugo.

Splošna oblika zahteve za izbris zgoraj opisanih zapisov je naslednja:

DELETE FROM table_name WHERE ctid NOT IN (IZBERI max (ctid) FROM table_name GROUP BY column1,);

Varno spremenite vrsto polja

Lahko se pojavi vprašanje o vključitvi takšne naloge na ta seznam. Dejansko je v PostgreSQL zelo enostavno spremeniti vrsto polja z ukazom ALTER. Oglejmo si ponovno tabelo strank kot primer.

Polje customer_id uporablja podatkovni tip niza varchar. To je napaka, ker naj bi to polje shranilo ID-je strank, ki so v celoštevilski obliki. Uporaba varcharja ni upravičena. Poskusimo popraviti ta nesporazum z ukazom ALTER:

ALTER TABLE stranke ALTER COLUMN customer_id TYPE celo število;

Toda kot rezultat izvedbe dobimo napako:

NAPAKA: stolpca »customer_id« ni mogoče samodejno pretvoriti v vrsto celo število
Stanje SQL: 42804
Namig: podajte izraz USING za izvedbo pretvorbe.

To pomeni, da ne morete kar tako vzeti in spremeniti vrste polja, če so v tabeli podatki. Ker je bil uporabljen tip varchar, DBMS ne more ugotoviti, ali je vrednost celo število. Čeprav podatki natančno ustrezajo tej vrsti. Za pojasnitev te točke sporočilo o napaki predlaga uporabo izraza USING za pravilno pretvorbo naših podatkov v celo število:

ALTER TABLE stranke ALTER COLUMN customer_id TYPE celo število USING (customer_id :: celo število);

Kot rezultat, je vse potekalo brez napak:

Upoštevajte, da je pri uporabi USING poleg določenega izraza mogoče uporabiti funkcije, druga polja in operatorje.

Na primer, pretvorimo polje customer_id nazaj v varchar, vendar s pretvorbo oblike podatkov:

ALTER TABLE stranke ALTER COLUMN customer_id TYPE varchar USING (customer_id || "-" || first_name);

Kot rezultat, bo tabela videti takole:

Iskanje "izgubljenih" vrednosti

Bodite previdni pri uporabi zaporedij kot primarnega ključa: pri dodeljevanju so nekateri elementi zaporedja pomotoma preskočeni, zaradi dela s tabelo pa se nekateri zapisi izbrišejo. Te vrednosti je mogoče znova uporabiti, vendar jih je težko najti v velikih tabelah.

Razmislimo o dveh možnostih iskanja.

Prvi način
Izvedite naslednjo poizvedbo, da poiščemo začetek intervala z "izgubljeno" vrednostjo:

IZBERI customer_id + 1 FROM strank mo WHERE NE OBSTAJA (IZBERITE NULL FROM strank mi WHERE mi.customer_id = mo.customer_id + 1) ORDER BY customer_id;

Kot rezultat dobimo vrednosti: 5, 9 in 11.

Če morate poiskati ne samo prvo pojavljanje, temveč vse manjkajoče vrednosti, uporabimo naslednjo poizvedbo (za vire intenzivne!):

WITH seq_max AS (SELECT max (customer_id) FROM clients), seq_min AS (SELECT min (customer_id) FROM clients) SELECT * FROM generate_series ((SELECT min FROM seq_min), (SELECT max FROM seq_max)) EXCEPT SELECT customer_id FROM strank;

Kot rezultat vidimo naslednji rezultat: 5, 9 in 6.

Drugi način
Dobimo ime zaporedja, povezanega z customer_id:

IZBERI pg_get_serial_sequence ("customer", "customer_id");

In najdemo vse manjkajoče identifikatorje:

WITH_sequence_info AS (SELECT start_value, last_value FROM "SchemaName". "SequenceName") SELECT generate_series ((sequence_info.start_value), (sequence_info.last_value)) FROM sequence_info EXCEPT SELECT customer_id FROM strank;

Štetje števila vrstic v tabeli

Število vrstic se izračuna s standardno funkcijo štetja, vendar se lahko uporablja z dodatnimi pogoji.

Skupno število vrstic v tabeli:

SELECT count (*) IZ tabele;

Število vrstic pod pogojem, da podano polje ne vsebuje NULL:

SELECT count (col_name) FROM tabele;

Število edinstvenih vrstic za navedeno polje:

SELECT count (različno ime_stolpca) FROM tabele;

Uporaba transakcij

Transakcija združuje zaporedje dejanj v eno operacijo. Njegova posebnost je, da če pride do napake pri izvajanju transakcije, noben rezultat dejanj ne bo shranjen v bazi podatkov.

Začnemo transakcijo z ukazom BEGIN.

Če želite povrniti vse operacije po BEGIN, uporabite ukaz ROLLBACK.

In za uporabo - ukaz COMMIT.

Ogled in izpolnjevanje izvedljivih zahtev

Če želite dobiti informacije o zahtevah, zaženite naslednji ukaz:

SELECT pid, age (query_start, clock_timestamp ()), usename, query FROM pg_stat_activity WHERE query! = " "IN query NOT ILIKE"% pg_stat_activity% "ORDER BY query_start desc;

Če želite ustaviti določeno zahtevo, izvedite naslednji ukaz, pri čemer določite ID procesa (pid):

IZBERI pg_cancel_backend (procpid);

Če želite prekiniti zahtevo, izvedite:

IZBERI pg_terminate_backend (procpid);

Delo s konfiguracijo

Iskanje in spreminjanje lokacije primerka gruče

Možna je situacija, ko je na enem operacijskem sistemu konfiguriranih več instanc PostgreSQL, ki "sedijo" na različnih vratih. V tem primeru je iskanje poti do fizične lokacije vsakega primerka precej naporna naloga. Da bi dobili te informacije, bomo izvedli naslednjo poizvedbo za katero koli bazo podatkov v gruči, ki nas zanima:

PRIKAŽI imenik_podatkov;

Spremenimo lokacijo v nekaj drugega z ukazom:

NASTAVI imenik_podatkov na novo_pot_imenika;

Toda za uveljavitev sprememb je potreben ponovni zagon.

Pridobivanje seznama razpoložljivih vrst podatkov

Z ukazom dobimo seznam razpoložljivih vrst podatkov:

SELECT typname, typlen iz pg_type, kjer je typtype = "b";

typname je ime podatkovnega tipa.
typlen je velikost podatkovnega tipa.

Spreminjanje nastavitev DBMS brez ponovnega zagona

Nastavitve PostgreSQL se nahajajo v posebnih datotekah, kot sta postgresql.conf in pg_hba.conf. Po spremembi teh datotek mora DBMS znova pridobiti nastavitve. V ta namen se strežnik baze podatkov znova zažene. Jasno je, da morate to storiti, toda v produkcijski različici projekta, ki jo uporablja na tisoče uporabnikov, je to zelo nezaželeno. Zato ima PostgreSQL funkcijo, s katero lahko uporabite spremembe brez ponovnega zagona strežnika:

IZBERI pg_reload_conf ();

Toda na žalost to ne velja za vse parametre. V nekaterih primerih je za uporabo nastavitev potreben ponovni zagon.

Pokrili smo ukaze, ki pomagajo razvijalcem in DBA olajšati delo, ki uporabljajo PostgreSQL. Vendar to niso vse možne tehnike. Če ste naleteli na zanimive težave, napišite o njih v komentarjih. Delimo koristno izkušnjo!