|
|
(не показано 14 промежуточных версий этого же участника) |
Строка 1: |
Строка 1: |
| | | <div style="float: left; text-align: left; padding-right: 10px;">[[000010000|Предыдущая страница]]</div> |
| __TOC__
| | <div style="float: right; text-align: right; padding-left: 10px;">[[0000100101|Следующая страница]]</div> |
| | | <div style="float: center; margin: 0 auto; width: 320px;">[[000010000|Вопросы по ОС Linux Astra SE, КРОС, АРМ]]</div> |
| =Установка БД= | | <div style="float: center; margin: 0 auto; width: 100px;">[[000001000|КРОС]]</div> |
| {{Вопросы:Установка PostgreSQL в Linux}}
| | ---- |
| =Не запускается PostqreSQL=
| | <h3><u>Оглавление</u></h3> |
| При установке PostgreSQL на ОС ''Linux: Debian, Ubuntu, Эльбрус, CentOS'' и ряде других, при запуске сервиса PostgreSQL ''ОС'' может сообщить об отсутствии служебной ''БД''(кластера), по указанному пути. Это означает, что кластер ''БД'' не инициализинован.
| | ---- |
| Для инициализации кластера необходимо выполнить следующие команды:<br>
| | [[0000100101|1. Установка PostgreSQL в Linux]] |
| 1. Проверить остановлен ли сервис PostgreSQL:<br>
| | [[0000100102|2. Не запускается PostgreSQL]] |
| '''''sudo /etc/init.d/postgresql status''''' или<br>
| | [[0000100103|3. Конфигурация БД]] |
| '''''sudo service postgresql status''''' или<br>
| | [[0000100104|4. Перенос БД на ОС отличные от Linux Astra SE]] |
| '''''sudo systemctl postgresql status'''''<br>
| | [[0000100105|5. Средство работы с PostgreSQL pgAdmin]] |
| Вы должны получить ответ системы, о том, что сервис не активен.
| | [[0000100106|6. Автоматизация процесса резервирования БД]] |
| 2. Инициализация кластера PostgreSQL должна производиться от имени пользователя, который в последствии будет считаться администратором ''БД''. По умолчанию это пользователь - '''''postgres'''''
| | [[0000100107|7. Техническое обслуживание БД PostgreSQL]] |
| Поэтому выполняем команду от имени этого пользователя:
| |
| '''''sudo -u postgres /usr/lib/postgresql/<версия PostgreSQL>/bin/initdb -D /var/lib/postgresql/<версия PostgreSQL>/main''''' или<br>
| |
| '''''sudo -u postgres /usr/lib/postgresql/<версия PostgreSQL>/bin/initdb -D /var/lib/postgresql/<версия PostgreSQL>/data'''''<br>
| |
| Путь к ''БД'', требуемый по умолчанию можно увидеть в сообщении об ошибке при старте сервиса PostgresSQL.
| |
| Если есть необходимость в нестандартном месте расположения ''БД'', то него необходимо указать при инициализации кластера.
| |
| 3. Если используется нестандартное расположение ''БД'', тогда '''после создания кластера и до запуска сервиса''' ''PosqtgreSQL'' необходимо внести изменения в файл postgresql.conf
| |
| <div style="border-left:8px solid #EEE; padding-left:8px; margin:16px; max-width:900px"> | |
| '' data_directory = '<полный путь к БД из строки инициализации>'''<br>
| |
| '' hba_file = '<полный путь к файлам конфигурации>/pg_hba.conf'''<br>
| |
| '' ident_file = '<полный путь к файлам конфигурации>/pg_ident.conf'''<br>
| |
| '' external_pid_file = '/var/run/postgresql/pg-main.pid'''<br>
| |
| </div>
| |
| Файлы конфигурации могут располагаться либо в каталоге '''''/etc/postgresql/<версия postgresql>/main''''', либо
| |
| в каталоге, куда сгенерирована ''БД'' кластера, например, '''''/var/lib/postgresql/<версия postgresql>/main''''', либо '''''/var/lib/postgresql/<версия postgresql>/data''''', либо указанный путь.
| |
| 4. После внесенных изменений необходимо запустить сервис:<br>
| |
| '''''sudo /etc/init.d/postgresql start''''' или<br>
| |
| '''''sudo service postgresql start''''' или<br>
| |
| '''''sudo systemctl postgresql start'''''<br>
| |
| Проверяем работу postgresql :
| |
| '''''psql -U postgres -h localhost'''''
| |
| Если будет запрос пароля, тогда необходимо ввести пароль от пользователя ''postgres''(по умолчанию - postgres)
| |
| в командной строке сервиса управления БД набрать: \l. При этом получим список баз данных.
| |
| Для выхода нужно набрать: \q.
| |
| 5. Для проверки автостарта сервиса '''''postgresql''''' необходимо перезагрузить компьютер.
| |
| Проверяем, узнав статус по командам, указанным п п.1.
| |
| Если сервис не активен, тогда надо выполнить команду, позволяющую запускать ''postgresql'' при старте ''ОС''
| |
| В Debian и ОС, созданных на его основе: '''''systemctl enable postgresql'''''
| |
| В CentOS и, созданных на основе RedHat: '''''chkconfig postgresql on'''''
| |
| <br clear="both" />
| |
| [[#top|В начало статьи]] | |
| =Конфигурация БД=
| |
| После установки ОС необходимо проверить настройки базы данных.
| |
| По-умолчанию файлы конфигурации расположены:
| |
| Linux - /etc/postgresql/9.6/main/
| |
| Windows - C:\Program Files\PostgreSQL\9.6\data\
| |
|
| |
| Вначале необходимо проверить файл с конфигурацией разрешенных подключений. Для этого надо открыть файл ''pg_hba.conf'' и проверить его содержимое.
| |
| В данном файле должны быть следующие строки:
| |
| <div style="border-left:8px solid #EEE; padding-left:8px; margin:16px; max-width:900px">
| |
| ''local all postgres peer''
| |
| ''local all all peer''
| |
| ''host all all 127.0.0.1/32 md5''
| |
| </div>
| |
| '''''"9.6"''''' в пути каталога указывает на версию Postgresql.
| |
| Вызвать файл на редактирование можно командой: '''''sudo nano /etc/postgresql/9.6/main/pg_hba.conf'''''
| |
| Далее необходимо проверить настройки файла postgresql.conf. Его можно открыть командой:
| |
| '''''sudo nano /etc/postgresql/9.6/main/postgresql.conf'''''.
| |
| Для оптимизации соединений к базе данных можно отредактировать следующие параметры:
| |
| ''listen_adresses = 'localhost'''
| |
| ''max_connections = 300''
| |
| ''shared_buffers = 2048MB''
| |
| ''max_prepared_transactions = 200''
| |
| После внесённых изменений, Необходимо перезагрузить Postgresql - '''''sudo /etc/init.d/postrgesql restart'''''
| |
| <br clear="both" />
| |
| [[#top|В начало статьи]] | |
| =Перенос БД на ОС отличные от Linux Astra SE=
| |
| В ПО КРОС уже встроен механизм резервного копирования. Однако иногда возникает необходимость переноса базы данных на ОС отличную от Linux Astra SE.
| |
| В связи с тем, что данная ОС выставляет мандатные метки, восстановление базы данных на компьютерах с ОС их не поддерживающих, затруднительно.
| |
| В этом случае необходимо воспользоваться утилитами postgresql из терминала.
| |
| 1. Необходимо выйти из АРМ и остановить smpo-server : '''''sudo /etc/init.d/smpo-server stop'''''
| |
| 2. Проверяем: завершились ли процессы: '''''ps -aux | grep java'''''
| |
| 3. Если процессы не завершились, делаем принудительное завершение: '''''sudo kill -9 <номер процесса>'''''
| |
| 4. Далее делаем копию базы с отключением мандатных меток: '''''sudo pg_dump -h localhost -U postgres -Fp --disable-macs --no-security-labels jupiter > /home/elesta/jupiter.sql'''''.
| |
| Вводим пароль пользователя postgres, если система запросит.
| |
| 5. Копируем файл jupiter.sql из каталога /home/elesta на внешний носитель и переносим на новый компьютер
| |
| 6. Восстановление базы возможно из утилиты '''''pgAdmin''''' или в командной строке: '''''sudo psql -h localhost -U postgres -d jupiter </home/elesta/jupiter.sql'''''.
| |
| '''При восстановлении из командной строки БД ''jupiter'' должна быть создана'''.
| |
| <br clear="both" />
| |
| [[#top|В начало статьи]] | |