|  |   | 
| (не показано 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|В начало статьи]] |  |