Апр 142012
 


Появился заказ установить PostgreSQL на FreeBSD и реализовать репликацию на нем.
первое нужно установить и настроить саму базу, а потом уже реализовать репликацию.
Приступим.
Ставим PostgreSQL

cd /usr/ports/databases/postgresql91-server/ && make install clean

Стакими флагами у меня собран порт.

# make showconfig
===> The following configuration options are available for postgresql-server-9.1.3:
     NLS=on "Use internationalized messages"
     DTRACE=off "Build with DTrace probes (server only)"
     PAM=off "Build with PAM support (server only)"
     LDAP=off "Build with LDAP authentication support"
     MIT_KRB5=off "Build with MIT's kerberos support"
     HEIMDAL_KRB5=off "Builds with Heimdal kerberos support"
     GSSAPI=off "Build with GSSAPI support"
     OPTIMIZED_CFLAGS=off "Builds with compiler optimizations (-O3)"
     XML=on "Build with XML data type (server)"
     TZDATA=on "Use internal timezone database (server)"
     DEBUG=off "Builds with debugging symbols"
     ICU=off "Use ICU for unicode collation (server)"
     INTDATE=on "Builds with 64-bit date/time type (server)"
     SSL=on "Build with OpenSSL support"
===> Use 'make config' to modify these settings
You have new mail.

Теперь создадим пароль к pgsql

passwd pgsql "сам пароль"
New Password:
Retype New Password:

Далее создадим нужные директории.

mkdrir -p /var/pgsql/data/
chown -R pgsql:pgsql /var/pgsql
chmod -R 0750 /var/pgsql

Следующий шаг, создадим переменные окружения postgresql

# cat /etc/login.conf
postgres:\
:lang=ru_RU.UTF-8:\
:setenv=LC_COLLATE=C:\
:tc=default:
# cap_mkdb /etc/login.conf

Редактируем домащнюю директорию postgresql

cap_mkdb /etc/login.conf
#Changing user information for pgsql.
Login: pgsql
Password: пасс
Uid [#]: 70
Gid [# or name]: 70
Change [month day year]:
Expire [month day year]:
Class: postgres
Home directory: /var/pgsql
Shell: /bin/sh
Full Name: PostgreSQL Daemon
Office Location:
Office Phone:
Home Phone:
Other information:

Добавим поддержку postgresql к системе нашей, что бы для автозагрузки БД

# nano /etc/rc.conf
postgresql_enable="YES"
postgresql_data="/var/pgsql/data"
postgresql_class="postgres"

Инициализируем кластер и запустим его.

# /usr/local/etc/rc.d/postgresql initdb
# /usr/local/etc/rc.d/postgresql start

Теперь установим класс postgres для пользователя pgsql .

pw usermod pgsql -L postgres

Я не планирую внедрять ipv6, отключим его.

# nano /usr/local/pgsql/data/pg_hba.conf
host    all         all         ::1/128               trust

Меняем trust на mp5, вместо пароля будет храниться хеш.

local all all md5
host all all 127.0.0.1/32 md5

Теперь создадим пользователя.

CREATE USER _пользователь WITH CREATEDB LOGIN PASSWORD ‘_пароль’;

Так же, что бы поменять доступ к БД , можно через файл

# nano /var/pgsql/data/pg_hba.conf
меняем true на password строках
local all all password
host all all 127.0.0.1/32 password

Восстановление базы.

$ psql dbname < file

Выгрузка базы.

$ pg_dump dbname > file

Перед завершением проверим все ли в порядке!

ps aux | grep pgsql

В следующей статье опишу как можно сделать репликацию не прибегая к помощи слона.

 Leave a Reply

(required)

(required)

38 Запросов к базе. 0,409 Генерации страницы, 37MB Использование памяти.
Вы зашли с IP: 54.225.16.10