Вопросы:PostgreSQL в ОС Linux: различия между версиями

Материал из Юпитер-8
м Filskiy переименовал страницу Вопросы:Установка БД в Вопросы:Установка PostgreSQL в ОС Linux без оставления перенаправления
Нет описания правки
 
(не показано 15 промежуточных версий этого же участника)
Строка 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>
  При установке ОС Linux Astra SE необходимо указать, что на сервере будет находиться СУБД.
----
  Данный пункт указывается при выборе программного обеспечения.<br>
<h3><u>Оглавление</u></h3>
  [[Файл:AstraSE(Postgresql).png]]
----
<div style="border-left:8px solid #EEE; padding-left:8px; margin:16px; max-width:900px"> Если при установке ОС данный пункт был пропущен, то БД Postgresql можно установить по инструкции:
[[0000100101|1. Установка PostgreSQL в Linux]]
  [[0000010403|Установка сервера КРОС на ОС семейста Linux]]
[[0000100102|2. Не запускается PostgreSQL]]
  [[0000010402|Установка сервера КРОС на ОС Windows]]
[[0000100103|3. Конфигурация БД]]
</div>
  [[0000100104|4. Перенос БД на ОС отличные от Linux Astra SE]]
 
[[0000100105|5. Средство работы с PostgreSQL pgAdmin]]
Если ОС Astra SE уже установлена, тогда для установки ''PostgreSQL'' можно воспользоваться менеджером пакетов '''''Synaptic''''' или в терминале набрать команду '''''sudo apt install postgresql'''''<br>
[[0000100106|6. Автоматизация процесса резервирования БД]]
Так как Astra Lunux SE, является ОС специального назначения, то доступ к репозиториям необходимо прописывать отдельно. При наличии образа установочного диска, его необходимо смонтировать и настроить список репозиториев:<br>
[[0000100107|7. Техническое обслуживание БД PostgreSQL]]
sudo mount -o loop /<путь к образу системы>/AstraSmolenskAmd64.iso /media/cdrom0
sudo apt-cdrom add
sudo apt update
или<br>
sudo mkdir /media/install
sudo mount /<путь к образу системы>/AstraSmolenskAmd64.iso /media/install
sudo nano /etc/apt/source.list
    Вместо имеющихся строк записать:
deb file:///media/install smolensk main contrib non-free
    Далее нажать <F2>, <Y> и <Enter>.
sudo apt update
Образ может находится в каталоге /mnt/hdd/Recovery<br>
<br clear="both" />
[[#top|В начало статьи]]
=Не запускается PostqreSQL=
При установке PostgreSQL на ОС ''Linux: Debian, Ubuntu, Эльбрус, CentOS'' и ряде других, при запуске сервиса PostgreSQL ''ОС'' может сообщить об отсутствии служебной ''БД''(кластера), по указанному пути. Это означает, что кластер ''БД'' не инициализинован.
Для инициализации кластера необходимо выполнить следующие команды:<br>
1. Проверить остановлен ли сервис PostgreSQL:<br>
'''''sudo /etc/init.d/postgresql status''''' или<br>
'''''sudo service postgresql status''''' или<br>
'''''sudo systemctl postgresql status'''''<br>
  Вы должны получить ответ системы, о том, что сервис не активен.
2. Инициализация кластера PostgreSQL должна производиться от имени пользователя, который в последствии будет считаться администратором ''БД''. По умолчанию это пользователь - '''''postgres'''''
  Поэтому выполняем команду от имени этого пользователя:
  '''''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|В начало статьи]]

Текущая версия от 11:45, 8 сентября 2022