Postgresql - instalare și configurare de bază

Principalele avantaje ale PostgreSQL:

  • suport pentru baze de date de dimensiuni aproape nelimitate;
  • mecanisme de tranzacție și replicare puternice și fiabile;
  • un sistem extensibil de limbi de programare încorporate;
  • scalabilitate.

Efectuați instalarea din sistemul port:







# cd / usr / porturi / baze de date / postgresql92-server faceți instalarea curată rehash

Opțiunile de construire sunt lăsate în mod prestabilit.

După terminarea instalării, portul a emis recomandări scurte pentru configurarea ulterioară:

Deoarece PostgreSQL utilizează codificarea UTF-8 în mod implicit, pentru a evita probleme în viitor, urmați sfatul, și (care lucrează în noua versiune a PostgreSQL, în numele utilizatorului pgsql. În loc de Postgres) la pgsql biți de utilizator va corecta localizare. Pentru a face acest lucru, vom include un astfel de bloc în fișierul /etc/login.conf:

pgsql: \
: lang = en_US.UTF-8: \
: setenv = LC_COLLATE = C: \
: tc = implicit:

# sh /usr/local/etc/rc.d/postgresql stare
pg_ctl: serverul rulează (PID: 30752)
/ usr / local / bin / postgres "-D" "/ var / db / pgsql"

Ei bine, serverul PostgreSQL este în funcțiune. Cu toate acestea, în setările implicite, serverul este configurat astfel încât să vă puteți conecta la acesta de la gazda locală fără o parolă. Aceasta este o gaură clară în ceea ce privește securitatea, deci încercați să remediați situația.

Serverul PosgreSQL oferă două opțiuni pentru gestionarea utilizatorilor și a bazelor de date:

Utilizați terminalul interactiv pentru a configura drepturile de acces. Conectat în numele utilizatorului pgsql. Nu este necesară parola.

# psql -U pgsql șablon1

psql (9.2beta4)
Introduceți "ajutor" pentru a obține ajutor.

Introducem comanda de ajutor și cunoaștem ajutorul:

Vă sfătuiesc să citiți ajutorul pentru instrucțiunile SQL și comenzile psql. Acum creați un utilizator de testare și o bază de date la care acesta va avea acces.

template1 = # CREATE USER username;
CREȘTE ROLUL

Să verificăm lista de roluri:

Să creștem drepturile de acces ale utilizatorului:

template1 = # ALTER USER nume utilizator superuser createrole createdb;
ALTER ROLE

Să verificăm lista de roluri:

Utilizatorii obișnuiți sunt astfel de drepturi, trebuie să li se acorde doar administratorului de sistem. Vom revoca anumite drepturi de acces:

template1 = # ALTER USER nume utilizator nosuperuser nocreaterole nocreatedb;
ALTER ROLE

Dar parolele pentru utilizator sunt o necesitate. Setați parola pentru utilizatorul creat:

template1 = # \ username parola
Introduceți noua parolă:
Repetați-l:

Când tastați, parola nu este afișată! De asemenea, este necesar să setați o parolă pentru utilizatorul pgsql. După aceasta, permitem verificarea parolei la conectarea la serverul PostgreSQL. Este necesar să faceți modificări în fișierul /var/db/pgsql/pg_hba.conf. Metoda de conectare la încredere trebuie modificată la md5 (de asemenea, eliminați complet linia pentru IPv6). Ca rezultat, avem următorul rezultat:







Pentru ca modificările să intre în vigoare, trebuie să reporniți serverul PostgreSQL:

În principiu, totul este clar clar. Utilizați documentația și indicii în munca dvs. și lucrați cu serverul PostgreSQL nu trebuie să provoace mari probleme.

Atingerea finală este reglarea serverului PostgreSQL. Toate setările de bază sunt stocate în fișierul /var/db/pgsql/postgresql.conf. Rețineți opțiunile care merită atente (traducerea descrierii opțiunilor este luată aici):

  • max_connections - numărul maxim de conexiuni simultane la serverul de bază de date. Utilizați această opțiune pentru a împiedica pornirea unui număr mare de procese server. În caz contrar, există posibilitatea ca administratorul bazei de date să epuizeze întreaga cantitate de memorie RAM, iar paginarea va fi utilizată în mod activ, ceea ce, la rândul său, va duce la o scădere a performanței.
  • shared_buffers - cantitatea de memorie partajată utilizată de serverul de bază de date. În mod implicit - 32 MB, dar poate fi mai puțin dacă setările kernelului nu permit alocarea unei astfel de dimensiuni de memorie, este determinată atunci când grupul de baze de date este inițializat cu utilitarul initdb. Valorile mari ale acestui parametru au un efect pozitiv asupra performanței serverului de baze de date.
    Dacă aveți un calculator dedicat cu 1 GB RAM și mai mult sub serverul de baze de date, buna valoarea acestei variabile va fi de 25% din memorie. Sub o sarcină grea, valori și mai mari ale acestui parametru poate fi eficient, dar din moment ce PostgreSQL se bazează pe cache-ul sistemului de operare, alocarea de mai mult de 40% din cantitatea de memorie nu are sens. Pentru valori mari ale acestui parametru, trebuie de asemenea să măriți valoarea parametrului checkpoint_segments.
    La sistemele cu memorie RAM mai mică de 1 GB, este mai bine să se utilizeze mai puțină memorie (mai mică de 25%), astfel încât să nu se epuizeze întreaga cantitate de memorie RAM. În Windows, valori mari ale acestui parametru pot fi eficiente. Puteți obține o performanță mai mare prin păstrarea acestei valori mici și mai mult utilizând instrumentele de cache pentru OS. O gamă bună de valori pentru Windows este de 64-512 MB.
  • temp_buffers - dimensiunea maximă a bufferelor temporare pentru fiecare sesiune. Această memorie este utilizată numai local într-o sesiune pentru tabele temporare. Implicit este de 8 MB. Valoarea poate fi modificată în timpul sesiunii, dar numai până la prima utilizare a acestei memorii.
  • max_prepared_transactions - numărul maxim de tranzacții "pregătite" (vezi descrierea comenzii SQL PREPARE TRANSACTION din documentație). Pentru a dezactiva această funcție, setați valoarea la 0.
  • work_mem - determină cantitatea de memorie care va fi utilizată de operațiile de sortare internă și de tabelele hash înainte de a trece la fișierele temporare pe disc. Rețineți că pentru interogări complexe, mai multe operații de sortare internă și lucrul cu tabelele hash pot funcționa în paralel (în același timp). În plus, mai multe sesiuni pot face simultan astfel de operațiuni. Ca rezultat, cantitatea necesară de memorie pentru aceste operații poate fi de câteva ori mai mare decât valoarea parametrului work_mem. Rețineți acest lucru când selectați o valoare pentru acest parametru. Operațiile de sortare internă înseamnă - ORDER BY, DISTINCT și fuzionează.
  • maintenance_work_mem - cantitatea maximă de memorie utilizată pentru operațiunile interne, cum ar fi VACUUM, CREATE INDEX și ALTER TABLE ADD FOREIGN KEY. Valoarea implicită este de 16 MB. Aceste comenzi sunt executate numai în timpul sesiunii, astfel încât să puteți selecta valori mai mari pentru acest parametru decât pentru parametrul work_mem. Valorile mari pot afecta pozitiv performanța aspirării și viteza de recuperare a bazei de date dintr-un depozit. Rețineți că procesul de autovacuum rulează ori autovacuum_max_workers, deci este posibil să aveți nevoie de mai multă memorie liberă.
  • max_stack_depth - adâncimea maximă a stivei. O valoare bună pentru acest parametru este adâncimea maximă admisă în sistem.
  • max_fsm_pages - Cu această opțiune puteți gestiona o hartă spațială liberă. Când ceva se elimină din tabel, locul ocupat de ceva care nu este eliberat pe disc, dar în schimb a ocupat locul este marcat ca fiind doar „liber“ în harta spațiu liber. Apoi, acest loc este folosit pentru înregistrări noi. Dacă serverul dvs. șterge / adaugă foarte mult date din / în tabel, valorile mari ale acestui parametru pot avea un efect pozitiv asupra performanței.






Articole similare

Trimiteți-le prietenilor: