GITLAB - перенос интегрированной базы Postgresql в штатную базу операционной системы

GitLab, это отличный GIT-репозитарий для использования внутри компании с богатым функционалом и простой установкой, как его устанавливать я уже рассказывал и вы наверное обратили внимание, что этот продукт рекомендуется использовать на отдельном хосте и он поставляется полностью со своей инфраструктурой программ окружения. Как отвязать его от использования встроенного Nginx я вам уже рассказал и сегодня мы будем отвязывать его от встроенного сервера Postgresql.

 
 
Логотип GITA-DEV

Автор: Черноусов Антон aka Gita-Dev
Опубликовано: 25 Сен 2018 (последние правки 2 месяца)

backup database git gitlab postgres postgresql копирование

Если сервер на котором установлен GitLab используется не только как хранилище GIT-репозитариев и у вас уже есть "системный сервер Postgresql". то вы наверняка захотите перенести базу данных GITLAB на системный сервер СУБД. Это упростит мониторинг базы, высвободит часть системных ресурсов и упростит резервное копирование.

Итак, приступим и первым делом надо снять дамп базы данных Postgresl (встроенной в GitLab) и лучше всего использовать встроенные механизмы резервного копирования GitLab:

# gitlab-rake gitlab:backup:create

Созданный архив по умолчанию копируется в каталог /var/opt/gitlab/backups/ и если распаковать этот архив, то вы можете найти в нем файл db/database.sql.gz в котором как вы наверное понимаете находится сжатый дамп базы данных который тоже надо распаковать.

На системном сервере Postgresql мы создаем базу данных, пользовалеля базы данных и пароль, совершенно типовая операция администрирования СУБД Postgresql:

# su postgres
$ psql
# CREATE USER gitlab WITH CREATEDB PASSWORD 'SecretPassword';
# CREATE DATABASE gitlabhq_production OWNER gitlab;
# \q
# exit

Импортируем дамп базы данных:

# cat ./database.sql | psql -U gitlab -h 127.0.0.1 gitlabhq_production

Для переключения на использование системной базы данных отредактируйте конфигурационный файл /etc/gitlab/gitlab.rb:

postgresql['enable'] = false

gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8'
gitlab_rails['db_host'] = '127.0.0.1'
gitlab_rails['db_port'] = 5432
gitlab_rails['db_username'] = 'gitlab'
gitlab_rails['db_password'] = 'SecretPassword'

Простого изменения конфигурационного файла недостаточно и вам надо выполнить команду переконфигурирования GitLab:

# gitlab-ctl reconfigure

Есть одна маленькая деталь на которую стоит обратить внимание, реконфигурирование может мигрировать базу некорректно и вам придется залить дамп повторно:

Recipe: postgresql::disable
 * link[/opt/gitlab/service/postgresql] action delete
   - delete link to file at /opt/gitlab/service/postgresql
 * directory[/opt/gitlab/sv/postgresql] action delete
   - delete existing directory /opt/gitlab/sv/postgresql
Recipe: gitlab::database_migrations
 * bash[migrate gitlab-rails database] action run

Вот собственно и все. Нам остается лишь убедиться, что встроенный в GitLab сервер Postgresql более не работает и мы можем авторизоваться в web-интерфейсе GitLab.

 

Похожие статьи

Установка Postgresql версии 10 в Ubuntu Linux и Debian Linux

Установка Postgresql версии 10 в Ubuntu Linux и Debian Linux

На данный момент,10-ая версия Postgresql является стабильной и данный релиз принес довольно много "вкусностей", таких как: логическая репликация, партиционирование, улучшена производительность физической репликации, hash-индексы стали реплицируемы, поддержка полнотекстового поиска на jsonb колонках, улучшенная поддержка работы с xml и многое другое ... Естественно, что сходу мигрировать ваш сайт или приложение на новую версию не стоит, так как в ряде случаев вам потребуется некоторая доработка для обеспечения совместимости с десятой версией.


Установка Postgresql 10.4 на платформу ARM

Установка Postgresql 10.4 на платформу ARM

Собрать Postgresql 10.4 под платформу ARM я решил для того чтобы проверить одну свою идею по поводу логической репликации. Логическая репликация это новая фишка Postgresql 10-ой версии позволяющая реплицировать в Read only режиме отдельные таблицы на другой Postgresql server. Но вот правда одна незадача выяснилась, а именно под мою ARM-платформу собранных пакетов не нашлось.


Легковесный почтовый сервер с хранением учетных данных в базе Postgresql

Легковесный почтовый сервер с хранением учетных данных в базе Postgresql

До этого я рассказывал исключительно о монстроидальном комплексе совместной работы под названием Zimbra и вы наверное поняли, что запустить его на небольшом VPS у вас не получится, так как он потребляет просто огромное количество системных ресурсов. Но, что же делать, если требуется собственный почтовый сервер и вы сильно ограничены в системных ресурсах? Правильный ответ, это собрать его самому из Opensource-компонентов и полученный результат удивит вас своей легковесностью.


Установка свежих версий Postgresql (10.X) в Debian Linux

Установка свежих версий Postgresql (10.X) в Debian Linux

В LTS-версии дистрибутивов обычно входят такие-же LTS версии пакетов и в ряде случаев это конечно хорошо и стабильные обкатанные версии это гораздо лучше чем dev-ветки, но иногда требуются именно новые возможности которые появились недавно. Например мне, требовалась логическая репликация Postgresql в Debian версии 9.4, но логическая репликация появилась только в Postgresql 10, а штатный пакет в дистрибутиве имеет версию 9.6.


Настройка потоковой репликации Postgresql сервера (WAL-репликация)

Настройка потоковой репликации Postgresql сервера (WAL-репликация)

Потоковая репликация Postgresql сервера позволяет создать асинхронную Read Only копию сервера баз данных который можно использовать как FailOver-сервер или строить на нем какие-то тяжелые аналитические отчеты которые бы в свою очередь сильно загрузили боевой сервер. Назначений можно придумать огромное множество, да и настраивается эта технология довольно просто, правда есть у нее есть и несколько недостатков.


Чистка архива WAL в реплицируемых базах Postgresql

Чистка архива WAL в реплицируемых базах Postgresql

Потоковая репликация Postgresql это конечно круто, но есть у этой технологии и немного минусов. Во первых, при активной записи и обновлении данных генерируется довольно много трафика и я на одном из микро-тарифов довольно быстро вышел за лимиты, а во вторых, WAL-логи при активной записи и обновлении данных в базе Postgresql очень быстро разрастаются и начинают занимать гораздо больше места, чем сама база данных. Сегодня мы будем решать вторую проблему.


Мониторинг основных показателей базы данных Postgresql при помощи Zabbix

Мониторинг основных показателей базы данных Postgresql при помощи Zabbix

Сегодня я хотел бы продолжить цикл статей по мониторингу различных сервисов при помощи Zabbix и начнем пожалуй с баз данных Postgresql, на деле там ничего особо сложного нет и все уже давно придумано до нас. Нам остается только внедрить сборщик данных на сервер и понять, что за сведения мы собираем и где стоит установить границы срабатывания триггеров.


Установка и настройка Postgresql в Windows 10

Установка и настройка Postgresql в Windows 10

Установка Postgresql и утилит администрирования в Windows 10 (как в прочем и других версиях) особой сложности не представляет и сейчас я вам продемонстрирую как это сделать.


Оптимизация настроек Postgresql-сервера

Оптимизация настроек Postgresql-сервера

Как показывает практика, большие руководства читают только в крайнем случае и в большинстве случаев наиболее востребованным форматом являются быстрые чек-листы и наборы команд и параметров "как сделать чтобы было хорошо". К оптимизации сервера Postgresql нельзя приступать не выяснив основные метрики сервера исходя из которых мы будем "плясать" и сегодня я расскажу как собрать необходимые для анализа параметры и исходя из полученных данных произвести оптимизацию сервера.


Как установить Postgresql 11.1 в Ubuntu Server 18.04

Как установить Postgresql 11.1 в Ubuntu Server 18.04

Если вы пользовались бинарными инсталляторами от EDB Postgres, то у меня для вас плохая новость и Postgresql 10 был последней Linux версией которая поддерживалась Enterprise Postgres. Согласно сообщению на сайте бинарные пакеты инсталляторов будут поддерживаться только для Windows и MacOS, а для Linux рекомендуется использовать репозитории вашего дистрибутива.


Отзывы и комментарии