PostgreSQL: различия между версиями

Материал из ALT Linux Wiki
Строка 76: Строка 76:
Имена баз в первом столбце.
Имена баз в первом столбце.


== Резервная копия всех баз данных ===
== Резервная копия всех баз данных ==
<source lang="text">su - postgres -s /bin/sh -c 'pg_dumpall -f /tmp/posgresql'</source>
<source lang="text">su - postgres -s /bin/sh -c 'pg_dumpall -f /tmp/posgresql'</source>
Резервная копия будет в файле {{path|/tmp/posgresql}}.
Резервная копия будет в файле {{path|/tmp/posgresql}}.

Версия от 11:47, 26 сентября 2016

Особенности работы с PostgreSQL в Альт Линукс.

Установка и начальный запуск

Вы можете выбрать сервер PostgreSQL определённой версии как обычный, так и предназначенный для работы 1С:Предприятие (содержит в имени 1C):

postgresql9.1-server
postgresql9.3-1C-server
postgresql9.3-server
postgresql9.4-1C-server
postgresql9.4-server
apt-get update
apt-get install postgresql9.4-server
Внимание! Перед запуском службы необходимо создать системные базы данных:
/etc/init.d/postgresql initdb
(через systemctl postgresql initdb не работает)


Запуск службы:

service postgresql start

Включение службы по умолчанию:

chkconfig postgresql on

Место расположения параметров настройки

PostgreSQL запускается в изолированном окружении (chroot, чрут): /var/lib/pgsql

Доступ по сети

По умолчанию доступ по сети выключен. Для того, чтобы включить, выполните:

echo "listen_addresses = 'localhost'" >> /var/lib/pgsql/data/postgresql.conf
Примечание: Обратите внимание, что доступ открыт только на localhost. Если хотите открыть на внешнем интерйесе, указывайте реальный адрес IP или имя узла.

Управление доступом

Для управления доступом, правьте файл /var/lib/pgsql/data/pg_hba.conf:

echo "host ПОЛЬЗОВАТЕЛЬ БАЗА 127.0.0.1/32 md5" >> /var/lib/pgsql/data/pg_hba.conf

не забудьте после всего этого перезапустить службу:

service postgresql restart

Работа под администратором

Для заведения пользователей и создания баз данных, переключитесь в учётную запись postgres:

su - postgres -s /bin/sh -c psql
# su - postgres -s /bin/sh -c psql
psql (9.4.5)
Введите "help", чтобы получить справку.

postgres=#
Примечание: Выход по Ctrl+D или командой quit


Создание пользователя

su - postgres -s /bin/sh -c 'createuser --no-superuser --no-createdb --no-createrole --encrypted --pwprompt ПОЛЬЗОВАТЕЛЬ'

Создание базы данных

su - postgres -s /bin/sh -c 'createdb -O ПОЛЬЗОВАТЕЛЬ БАЗА'

Просмотр доступных баз данных

# su - postgres -s /bin/sh -c 'psql -c "\l+"'                                                                          Список баз данных
    Имя     |  Владелец  | Кодировка | LC_COLLATE  |  LC_CTYPE   |     Права доступа     | Размер  | Табл. пространство |                  Описание                  
------------+------------+-----------+-------------+-------------+-----------------------+---------+--------------------+--------------------------------------------
 postfactor | postfactor | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 |                       | 12 MB   | pg_default         | 
 postgres   | postgres   | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 |                       | 6724 kB | pg_default         | default administrative connection database
 sogo       | sogo       | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 | =Tc/sogo             +| 7572 kB | pg_default         | 
            |            |           |             |             | sogo=CTc/sogo         |         |                    | 
 template0  | postgres   | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres          +| 6601 kB | pg_default         | unmodifiable empty database
            |            |           |             |             | postgres=CTc/postgres |         |                    | 
 template1  | postgres   | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres          +| 6724 kB | pg_default         | default template for new databases
            |            |           |             |             | postgres=CTc/postgres |         |                    | 
(5 строк)

Имена баз в первом столбце.

Резервная копия всех баз данных

su - postgres -s /bin/sh -c 'pg_dumpall -f /tmp/posgresql'

Резервная копия будет в файле /tmp/posgresql.

Восстановление из резервной копии

Документация: https://www.postgresql.org/docs/9.0/static/migration.html

mv /var/lib/pgsql/data{,.old}
/etc/init.d/postgresql initdb
service postgresql start
su - postgres -s /bin/sh -c 'psql -f /tmp/posgresql postgres'