Artykuły do poprawy

PostgreSQL

  • 2010-10-31 18:27
  • 1 komentarz
  • 871 odsłon
  • Oceń ten tekst jako pierwszy
Ten artykuł wymaga dopracowania!

Jeżeli możesz popraw ten artykuł według zaleceń, które możesz znaleźć na stronie Artykuły do poprawy. Po dopracowaniu tego tekstu można usunąć ten komunikat.




Co to jest PostgreSQL

       
        PostgreSQL : The most advanced Open Source database system in the world
           
           
            PostgreSQL: Najbardziej zaawansowany system zarządzania bazą danych na świecie typu OpenSource - w taki oto sposób grupa rozwijająca SZBD PostgreSQL reklamuje swój produkt. SZBD PostgreSQL jest implementacją języka SQL, która zawiera w sobie bardzo wiele jego elementów, a na dodatek wprowadza wiele własnych rozszerzeń. Porównywany z mySQL oddaje mu pola przy małych instalacjach, które w prosty, a szybki sposób mają obsługiwać bazę danych - typu małe portale internetowe, proste bazy, i tym podobne. Jednakże SZBD PostgreSQL dostaje skrzydeł w większych projektach, jest często porównywany do bardzo rozbudowanego SZBD Oracle. Cechy SZBD PostgreSQL to między innymi:
  1. osadzane języki proceduralne wykonywane przez bazę danych (plperl, pl/perlu, plpgsql, plpython, pltcl, pl/tcl)
  2. możliwość tworzenia funkcji w PostgreSQLu w języku C, kompilowanych do bibliotek dynamicznyc
  3. sterowniki dostępu do bazy z języków C, C++, python, perl, czy Java (poprzez JDBC), ODBC
  4. wysoce zaawansowana implementacja standardu SQL, obejmująca SQL/92
  5. obsługa BLOB (Binary Large OBjects) -- dużych obiektów binarnych, takich jak pliki graficzne, itp.
  6. obsługa pól typu AUTOINCREMENT jako SERIAL lub SEQUENCE
  7. licencję BSD, która umożliwia zamykanie kodu SZBD PostgreSQL przy dokonywaniu modyfikacji, co jest istotne w rozwiązaniach biznesowych
    
    Instalacja pakietów

       
Uruchamiamy program poldek:
               

<pre># poldek
</pre></div>
</p>
               

Wykonujemy:


               

<pre>poldek&gt;ls -l postgresql-*
</pre></div>
</p>
               

Przykładowy wynik to:



               

<pre>poldek&gt; ls -l postgresql-*
package                                build DATE                 SIZE
postgresql-7.4-0.8                     2003/12/16 20:45        8.8 MB
postgresql-backend-devel-7.4-0.8       2003/12/16 20:45        1.4 MB
postgresql-clients-7.4-0.8             2003/12/16 20:45        1.5 MB
postgresql-devel-7.4-0.8               2003/12/16 20:45       93.0 KB
postgresql-doc-7.4-0.8                 2003/12/16 20:45        5.3 MB
postgresql-ecpg-7.4-0.8                2003/12/16 20:45      479.0 KB
postgresql-ecpg-devel-7.4-0.8          2003/12/16 20:45       17.0 KB
postgresql-libs-7.4-0.8                2003/12/16 20:45      252.0 KB
postgresql-module-pgcrypto-7.4-0.8     2003/12/16 20:45       91.0 KB
postgresql-module-plperl-7.4-0.8       2003/12/16 20:45       30.0 KB
postgresql-module-plpgsql-7.4-0.8      2003/12/16 20:45      100.0 KB
postgresql-module-plpython-7.4-0.8     2003/12/16 20:45       35.0 KB
postgresql-module-pltcl-7.4-0.8        2003/12/16 20:45       44.0 KB
postgresql-static-7.4-0.8              2003/12/16 20:45      303.0 KB
postgresql-tcl-7.4-0.8                 2003/12/16 20:45       38.0 KB
postgresql-tcl-devel-7.4-0.8           2003/12/16 20:45        0.0 KB
postgresql-tcl-static-7.4-0.8          2003/12/16 20:45       36.0 KB
17 packages, 18.6 MB
poldek&gt;
</pre></div>
</p>
               

Do poprawnego działania SZBD PostgreSQL konieczne są następujące pakiety:


               
  • postgresql

  • postgresql-clients

  • postgresql-libs

                

Zatem można przystąpić do ich instalacji, wpisując następujące polecenie:


               

<pre># poldek -i postgresql postgresql-clients postgresql-libs
</pre></div>
</p>
               

Aby SZBD PostgreSQL skorzystał z wewnętrznych języków plpgsql czy też plphpython należy doinstalować pakiety postgresql-module-plpgsql

                
               

<pre># poldek -i postgresql-module-plpgsql
</pre></div>
</p>
               

oraz



               

<pre>root# poldek -i postgresql-module-plpython
</pre></div>
</p>
   
   

Konfiguracja PostgreSQLa w PLD


       
       

Wstępna konfiguracja


           
       


            Edytujemy plik /etc/sysconfig/postgresql:
       


       

<pre># vim /etc/sysconfig/postgresql
</pre></div>
</p>

       


            I wybieramy odopowiednie podejście do bazy danych. Polecam standard setting.
            Po edycji wykonanie komendy
       


       

<pre># grep PG_DB_CLUSTERS /etc/sysconfig/postgresql | egrep -v ^#
</pre></div>
</p>
       

powinno dać wynik:


       

<pre>PG_DB_CLUSTERS="/var/lib/pgsql"
</pre></div>
</p>
   
   

Sortowanie po polsku


       

<pre>poldek -i localedb-src &amp;&amp; localedb-gen -l pl_PL &amp;&amp; echo LANG=pl_PL \
    &gt;&gt;/etc/sysconfig/i18n
</pre></div>
</p>

TODO: locale tylko dla PostgreSQLa.



   
   

Inicjalizacja


       
       



        Wykonujemy polecenie:
       


<pre># service postgresql init
</pre></div>
</p>
       


        Podczas inicjalizacji SZBD PostgreSQL stworzy pliki potrzebne mu do przechowywania tabel, tabele systemowe jak i bazy danych template0 i template1 konieczne do jego dalszego działania. Inicjalizacja PostgreSQLa nie jest równoznaczna z jego uruchomieniem, o czym dalej.
       


   
   

Konfiguracja PostgreSQLa


       
       


W punkcie (3) (&lt;- TODO, shufla docbook lame)  został zainicjalizowany cluster, w którym to można dodawać bazy
danych. Trzeba teraz odpowiednio skonfigurować tenże cluster. Przyda się
edycja plików ${PG_DB_CLUSTERS}/{postgresql.conf,pg_hba.conf}:
       



<pre># vim /var/lib/pgsql/{postgresql.conf,pg_hba.conf}
</pre></div>
</p>
           


        Przydatna opcja to <b>tcpip_socket = true</b> w pliku /var/lib/pgsql/postgresql.conf.
       


   
   

Uruchomienie PostgreSQLa


       
       

<pre># service postgresql START
</pre></div>
</p>

   
   

Dodanie użytkownika


       
       

<pre># su - postgres -c 'psql template1'
template1=# CREATE USER uzytkownik WITH ENCRYPTED PASSWORD 'hasło' \
    CREATEUSER CREATEDB;
CREATE USER
</pre></div>
</p>
       


Użytkownik `uzytkownik' będzie miał możliwość tworzenia baz danych (za pomocą
createdb lub CREATE DATABASE z poziomu psql) jak i dodawania użytkowników (createuser lub
CREATE USER z poziomu psql).
       


   
   

Ostatni test


       
       

<pre>$ psql -h 127.0.0.1 template1
template-1=# SELECT COUNT(*) FROM pg_database;
 COUNT 
-------
     2
(1 ROW)
</pre></div>
</p>
   
   

Dodatki


       
       


Warto włączyć obsługę PostgreSQLa w PHP, instalując pakiet php-pgsql,
również w perl-u perl-DBD-Pg lub perl-Pg, oraz w python-ie
python-postgresql. Pakiet postgresql-devel jest przydatny przy pisaniu
aplikacji w C/C++ korzystających z PostgreSQLa. Dokumentacja do PostgreSQLa
znajduje się, a jakże, w pakiecie postgresql-doc.
       



       

<pre># poldek -i php-pgsql
# poldek -i perl-DBD-Pg
# poldek -i perl-Pg
# poldek -i python-postgresql
# poldek -i postgresql-devel
# poldek -i postgresql-doc
</pre></div>
</p>
   


    Źródło

1 komentarz

Szczawik 2006-10-05 17:11

Jak dla mnie to wstyd przekleić żywcem artykuł i jeszcze nie zadbać o jego formatowanie i w ogóle wygląd po wklejeniu.