Содержание
Cхема
1. Роль PostgreSQL
При включенной службе firewalld необходимо выполнить настройку для PostgreSQL.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=postgresql # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
1.1. Установите PostgreSQL
sudo apt update && sudo apt install postgresql -y
1.2. Отредактируйте postgresql.conf
sudo nano /etc/postgresql/11/main/postgresql.conf
Приводим параметры к виду:
listen_addresses = 'localhost,192.168.26.48' # what IP address(es) to listen on; port = 5432
Где
- localhost,192.168.26.48 — адреса, которые слушает сервис;
- 5432 — порт, который сервис прослушивает.
1.3. Измените pg_hba.conf
sudo nano /etc/postgresql/11/main/pg_hba.conf
Добавьте строку
host cddisk cddisk 192.168.26.99/32 md5
Где
- cddisk — имя базы данных р7диска;
- cddisk — имя пользователя для р7диска;
- 192.168.26.99 — адрес, с которого будет подключаться р7диск.
1.4. Создайте пользователя и БД
sudo -i -u postgres psql -c 'CREATE DATABASE cddisk;' sudo -i -u postgres psql -c "CREATE USER cddisk WITH password 'Rtyh&t6djsk123$';" sudo -i -u postgres psql -c 'GRANT ALL privileges ON DATABASE cddisk TO cddisk;' sudo -i -u postgres psql -c 'ALTER DATABASE cddisk OWNER TO cddisk;'
Где
- cddisk — имя БД для работы р7диск;
- cddisk — пользователь с доступом к БД cddisk;
- Rtyh&t6djsk123$ — пароль от пользователя cddisk.
1.5. Перезапустите PostgreSQL
sudo systemctl restart postgresql
2. Роль DS
https://support.r7-office.ru/category/document_server/install-document_server/document_server_linux/
При включенной службе firewalld необходимо выполнить настройку для DS.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --permanent --zone=public --add-service=http # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
2.1. Добавьте ключ командой в терминале
sudo curl -s https://download.r7-office.ru/repos/RPM-GPG-KEY-R7-OFFICE.public | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/r7.gpg --import && sudo chmod 644 /etc/apt/trusted.gpg.d/r7.gpg
2.2. Добавьте репозиторий:
sudo echo "deb https://downloads.r7-office.ru/repository/r7-server-apt/ r7 main" | sudo tee /etc/apt/sources.list.d/r7server.list
2.3. Добавьте файл для авторизации в репозитории
sudo nano /etc/apt/auth.conf.d/r7server.conf
Если данной директории нет
/etc/apt/auth.conf.d
Необходимо отредактировать файл auth.conf
sudo vi /etc/apt/auth.conf
2.4. Пропишите в файле следующие данные
machine downloads.r7-office.ru login server password KwmuQmOzuFIw9wcJsL3zb
2.5. Измените доступ на файл
sudo chmod 600 /etc/apt/auth.conf.d/r7server.conf
Если директории /etc/apt/auth.conf.d
нет, то выполнит эту команду
sudo chmod 600 /etc/apt/auth.conf
2.6. Примените изменения:
sudo apt update
2.7. Установите PostgreSQL
sudo apt install postgresql -y
2.8. Запустите PostgreSQL
sudo systemctl enable --now postgresql
2.9. Создайте БД и пользователя
sudo -i -u postgres psql -c "CREATE USER r7office WITH password 'r7office';" sudo -i -u postgres psql -c "CREATE DATABASE r7office OWNER r7office;" sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE r7office TO r7office;"
2.10. Установите вспомогательных сервисов
sudo apt install rabbitmq-server redis-server -y
2.11. Запустите сервисы
sudo systemctl enable --now rabbitmq-server sudo systemctl enable --now redis-server
2.12. Настройка DS
# Пароль от пользователя r7office в PostgreSQL sudo echo r7-office-documentserver-ee ds/db-pwd select r7office | sudo debconf-set-selections # Пользователь с доступом к БД r7office sudo echo r7-office-documentserver-ee ds/db-user select r7office | sudo debconf-set-selections # БД для DS в PostgreSQL sudo echo r7-office-documentserver-ee ds/db-name select r7office | sudo debconf-set-selections # header для JWT sudo echo r7-office-documentserver-ee ds/jwt-header string AuthorizationJWT | sudo debconf-set-selections # Включение/отключение JWT sudo echo r7-office-documentserver-ee ds/jwt-enabled boolean true | sudo debconf-set-selections # Секрет JWT, необходимо запомнить, понадобится при установке Р7Диск sudo echo r7-office-documentserver-ee ds/jwt-secret password "123QWEasddsaEWQ321" | sudo debconf-set-selections
Где
- db-pwd — пароль от пользователя в параметре db-user;
- db-user — пользователь, созданный в п.2.6;
- db-name — имя базы данных, созданной в п.2.6;
- jwt-header — заголовок HTTP, который будет использоваться для отправки токена исходящего запроса;
- jwt-enabled — определяет, включены ли токены или нет;
- jwt-secret — определяет параметры секретного ключа для генерации токена сеанса.
2.13. Установка DS
2.13.1. Добавьте репозиторий для установки зависимостей
sudo echo "deb https://deb.debian.org/debian/ buster main contrib non-free" > /etc/apt/sources.list.d/buster.list
2.13.2. Установите пакета
sudo apt update && sudo apt install r7-office-documentserver-ee -y
2.13.3. Отключите репозиторий
echo "# deb https://deb.debian.org/debian/ buster main contrib non-free" > /etc/apt/sources.list.d/buster.list && sudo apt update
2.14. Запустите DS
sudo systemctl enable --now ds-docservice.service sudo systemctl enable --now ds-converter.service sudo systemctl enable --now ds-metrics.service
2.15. Переведите на https
https://support.r7-office.ru/document_server/install-document_server/document_server_linux/https_ds/
2.15.1. Создайте директорию
sudo mkdir /var/www/r7-office/Data/ssl
2.15.2. Поместите сертификат и ключ в таком виде
/var/www/r7-office/Data/ssl/имя_файла.crt /var/www/r7-office/Data/ssl/имя_файла.key
Где
- имя_файла — домен или произвольное название.
2.15.3. Замените конфиг на https
sudo cp /etc/r7-office/documentserver/nginx/ds.conf /etc/r7-office/documentserver/nginx/ds.conf_orig sudo cp -f /etc/r7-office/documentserver/nginx/ds-ssl.conf.tmpl /etc/r7-office/documentserver/nginx/ds.conf
2.15.4. Измените конфигурационный файл
sudo nano /etc/r7-office/documentserver/nginx/ds.conf
2.15.4.1. Измените строки
# Закомментировать #ssl on # Изменить ssl_certificate /var/www/r7-office/Data/ssl/имя_файла.crt; ssl_certificate_key /var/www/r7-office/Data/ssl/имя_файла.key;
Где,
- имя_файла — домен или произвольное название.
2.15.4.2. Запустите скрипт для обновления секрета storage
sudo bash /usr/bin/documentserver-update-securelink.sh
2.15.5. Проверьте конфигурацию
sudo nginx -t
2.15.6. Перезапустите сервис nginx
systemctl restart nginx
2.16. Регистрация DS
Если вы приобрели Р7-Офис. Профессиональный. Сервер документов и получили файл license.lic. Вы можете поместить его в инсталляцию, для получения полной версии программы.
Если вы используете дистрибутив Linux на базе Debian, файл license.lic помещается в следующую папку
/var/www/r7-office/Data/license.lic
Имя файла лицензии должно быть строго license.lic.
После этого ваша версия Р7-Офис. Профессиональный. Сервер документов станет зарегистрированной и полнофункциональной.
3. Роль Р7-Диск (проверено на версии 2.0.15.843)
https://support.r7-office.ru/category/r7disk/install-r7server/
При включенной службе firewalld необходимо выполнить настройку для Р7-Диск.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --permanent --zone=public --add-service=http # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
3.1. Скачайте архив дистрибутива
3.2. Разметите архив в /mnt
3.3. Распакуйте
unzip CDinstall_*.zip
3.4. Перейдите в каталог
cd CDDiskPack/CDinstall/
3.5. Для HTTPS
Если требуется настройка HTTPS, то, перед установкой, скопируйте crt и key файлы в папку CDDiskPack/CDinstall/sslcert.
Например, для домена r7.ru имена файлов должны быть r7.ru.crt и r7.ru.key.
3.6. Добавьте права на исполнение скрипту
chmod +x online_installer.sh
3.7. Запустите установку (В зависимости от версии дистрибутива, шаги могут отличаться)
.online_installer.sh
3.7.1. В процессе установки:
3.7.1.1. Чистая установка
Если требуется выполнить чистую установку (удалит имеющуюся инсталляцию Р7-Диск и зависимости):
- Выберите Да
3.7.1.2. Установка СУБД на локальную ВМ
PostgreSQL будет на другой ВМ:
- Выберите Нет
3.7.1.3. Установка Сервера Документов
Сервер Документов находится на другой ВМ, то:
- Выберите Нет
3.7.1.3.1. URL Document Server
Укажите URL (А запись вида http://ds.example.ru или https), по которому открывается Document Server
3.7.1.3.2. JWT Key Document Server
Укажите Секрет установленного Document Server
Его задавали в п. 2.9 значение jwt-secret (в примере используется значение 123QWEasddsaEWQ321)
3.7.1.4. Установка CDDisk api & web
- Выберите Да
3.7.1.5. Выбрать PostgreSQL
- Выберите PostgreSQL
3.7.1.6. Создание БД
- Выберите Нет
3.7.1.7. Хост СУБД
Укажите ip сервера с СУБД
3.7.1.7.1. Порт СУБД
Укажите port сервера с СУБД
- По умолчанию 5432, порт задавали в п.1.2
3.7.1.7.2. Пользователь с правами создания БД
По умолчанию: postgres
- Укажите cddisk
3.7.1.7.3. Пароль пользователя с правами создания БД
По умолчанию: postgres
- Укажите cddisk
3.7.1.7.4. Пользователь СУБД
Укажите пользователя сервера с СУБД, что был задан в п.1.4
- По умолчанию: cddisk
3.7.1.8. Пароль от пользователя cddisk
Укажите пароль, что был задан в п.1.4
3.7.1.9. coremachinkey от CS19
- Измените на актуальный, если есть Р7-Офис Корпоративный сервер 2019 и нажмите ОК,
- Если нет, нажмите Ок без редактирования
3.7.1.10. Настройка https
- Выберите Да, если выполнили пункт 3.5
- В ином случае выберете Нет
3.7.1.11. Укажите домен
Необходимо указать домен, в котором у Вас созданы записи
В значении указываем именно r7.ru, не созданную А запись
3.7.1.11.1. Укажите префикс модуля Р7-Диск
Можно сменить префикс «cddisk» на любое название, кроме зарезервированных «admin», «cdmail» и «calendar».,
3.7.1.11.2. Укажите префикс модуля Р7-Админ
Можно сменить префикс «admin» на любое название, кроме заданного выше и зарезервированных «cdmail» и «calendar».
3.7.1.11.3. Укажите префикс модуля Р7-Почта
Можно сменить префикс «cdmail» на любое название, кроме заданного выше и зарезервированных и «calendar».
3.7.1.11.4. Укажите префикс модуля Р7-Календарь
Можно сменить префикс «calendar» на любое название, кроме заданных выше.
3.7.1.12. Установить Р7 Почтовый сервер
- Выбрать Нет
3.8. Зайдите в БД
Данный пункт требуется выполнять, если Вы допустили ошибку в п.2.9, п.3.7.1.3.1 и п.3.7.1.3.2 и указали не верный Секрет и URL или просто хотите обновить данные для повышения безопасности.
psql -h<IP_СЕРВЕР_С_БД> -Ucddisk cddisk
3.8.1. Обновите данные DS
3.8.1.1. URL DS
UPDATE public."MessageSettings" SET "Value"='https://dsmiddle.devr7.ru' WHERE "Key" = 'documentServerUrl';
3.8.1.2. Секрет
Находится в файле /etc/r7-office/documentserver/local.json
UPDATE public."MessageSettings" SET "Value"='Thfv463({})<mfnf567^N' WHERE "Key" = 'files.docservice.secret';
В данном примере секрет отличается, т.к. их обновили на отличные в п.2.9 и п.3.7.1.3.2. Если Вы не допустили ошибку, то изменять ничего не нужно.
3.8.2. Перезапустите cddisk
supervisorctl restart all
3.8.3. Проверьте работу документов
Зайдите на портал Корпоративного сервера 2024 и создайте документ. Проверьте редактирование.
4. Роль Search
При включенной службе firewalld необходимо выполнить настройку для nfs.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-port=2664/tcp # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
4.1. Установите зависимости
sudo wget -O - https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null sudo wget https://packages.microsoft.com/config/debian/10/prod.list -O /etc/apt/sources.list.d/microsoft-prod.list && sudo apt update sudo wget https://packages.microsoft.com/ubuntu/20.04/prod/pool/main/d/dotnet-host/dotnet-host-7.0.3-x64.deb && sudo apt -y install ./dotnet-host*.deb && sudo rm ./dotnet-host*.deb sudo apt install supervisor aspnetcore-runtime-3.1 aspnetcore-targeting-pack-3.1 autoconf automake autotools-dev binutils binutils-common binutils-x86-64-linux-gnu dotnet-apphost-pack-3.1 dotnet-hostfxr-3.1 dotnet-runtime-3.1 dotnet-runtime-deps-3.1 dotnet-sdk-3.1 dotnet-targeting-pack-3.1 libbinutils libltdl-dev libodbc1 m4 netstandard-targeting-pack-2.1 odbcinst odbcinst1debian2 unixodbc-dev
4.2. Перенесите конфигурационные файлы
4.2.1. Архивируйте их на ВМ с диском
Пример команды
tar czvf search.tar.gz --selinux /opt/r7-office/SearchApi /var/log/r7-office/CDDisk/SearchApi /etc/supervisor /var/r7-office/searchindex
4.2.2. Перенесите удобным вам способом архив
Пример переноса через scp
scp search.tar.gz ipВмПоиска:/root/
4.3. Создайте пользователя cddisk
# Сверяем пользователя и группу на ВМ с диском id cddisk # Вывод uid=119(cddisk) gid=131(cddisk) группы=131(cddisk) # Создаём группу и пользователя на ВМ с поиском groupadd -g 131 cddisk # Создаём пользователя с uid 119 и добавляем его в группу с gid 131 useradd -u 119 -g 131 cddisk
4.4. Распакуйте архив
tar xzvf search.tar.gz --selinux -C /
4.5. Измените конфигурацию supervisor
4.5.1. Удалите лишнее
cd /etc/supervisor/conf.d/ && rm cddisk-api.conf cddisk-filestorage.conf cddisk-registry.conf cddisk-ssoapi.conf cddisk-processing.conf
4.5.2. Измените файл
/etc/supervisor/conf.d/cddisk.conf приводим к виду
[group:cddisk] programs=searchapi
4.5.3. Перезапустите службу
systemctl restart supervisor.service
4.5.4. Проверьте службу поиска
supervisorctl status all
4.6. Измените конфигурационные файлы для обращения сервисов к поиску
На ВМ с ролью Р7-Диск
4.6.1. Измените на «IP_СЕРВЕРА_С_Поиском»
/opt/r7-office/Service.Registry/appsettings.json
Где
- 192.168.26.188 — IP сервер с установленным сервисом Поиска.
Также делаем и тут (для версий, ниже 2.0.15.843)
/opt/r7-office/Api/appsettings.json /opt/r7-office/Processing/appsettings.json
4.6.2. Удалите конфигурационный файл
rm /etc/supervisor/conf.d/cddisk-searchapi.conf
Приведите к виду /etc/supervisor/conf.d/cddisk.conf
[group:cddisk] programs=api,filestorage,processing,registry,apisso
4.6.3. Перезапустите supervisor
systemctl restart supervisor.service supervisorctl restart all
5. Роль NFS (опционально)
NFS сервер возможно заменить на дополнительный примонтированный диск.
При включенной службе firewalld необходимо выполнить настройку для nfs.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=nfs # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
5.1. Установите nfs
apt install nfs-kernel-server
5.2. Создайте каталог
mkdir -p /mnt/nfs/search mkdir /mnt/nfs/cddisk mkdir /mnt/nfs/ds
Где
- /mnt/nfs/search — каталог для файлов Сервера с сервисом Поиска;
- /mnt/nfs/cddisk — каталог для файлов Р7-Диск;
- /mnt/nfs/ds — каталог для файлов Сервера Документов.
5.3. Создайте пользователей ds и cddisk
5.3.1. Проверьте на ВМ с сервисом Поиска и ВМ с Р7-Диск uid и gid
id cddisk
Вывод:
root@kh-middle-p7disk:~# id cddisk uid=119(cddisk) gid=131(cddisk) группы=131(cddisk)
5.3.2. Проверьте на ВМ с Сервером документов uid и gid
id ds
Вывод:
root@kh-middle-p7ds:~# id ds uid=119(ds) gid=131(ds) группы=131(ds)
5.3.2.1. Измените gid и uid на ВМ с Сервером Документов
Т.к. uid и gid пользователя ds совпадает с cddisk, то обновляем значения, потому что значение gid и uid должны быть уникальными для каждой группы и пользователя;
# Останавливаем службы systemctl stop ds-converter ds-docservice ds-metrics # Изменяем группу и права на каталог groupmod -g 1100 ds usermod -u 1100 -g 1100 ds # Обновляем права на каталоги chown -R ds:ds /var/lib/r7-office chown -R ds:ds /var/www/r7-office chown -R ds:ds /etc/r7-office chown -R ds:ds /var/log/r7-office # Запускаем сервисы systemctl start ds-converter ds-docservice ds-metrics
5.3.3. Создайте пользователя на сервере NFS
5.3.3.1. Для DS
# Создаём группу ds groupadd -g 1100 ds # Создаём пользователя ds и добавляем в группу useradd -u 1100 -g 1100 ds
5.3.3.2. Для Р7-Диска и Поиска
# Создаём группу cddisk groupadd -g 131 cddisk # Создаём пользователя cddisk и добавляем в группу useradd -u 119 -g 131 cddisk
5.4. Измените файл
sudo nano /etc/exports
5.4.1. Добавьте строки
# Шара для сервера с Сервером документов /mnt/nfs/ds 192.168.25.1/32(rw,nohide,all_squash,anonuid=1100,anongid=1100,no_subtree_check) # Шары для сервера с CDDISK и сервера с сервисом поиска /mnt/nfs/cddisk 192.168.25.2/32(rw,nohide,all_squash,anonuid=119,anongid=131,no_subtree_check) /mnt/nfs/search 192.168.25.3/32(rw,nohide,all_squash,anonuid=119,anongid=131,no_subtree_check)
Где,
- 192.168.25.1 — ip сервера DS;
- 192.168.25.2 — ip сервера с Р7-Диск;
- 192.168.25.3 — ip сервера с сервисом Поиска.
5.4.2. Включите сетевые каталоги
sudo exportfs -ra
5.4.3. Обновите права на каталоги
chown cddisk:cddisk /mnt/nfs/cddisk chown cddisk:cddisk /mnt/nfs/search chown ds:ds /mnt/nfs/ds
6. Подключение сетевых каталогов
6.1. Установите клиент nfs
sudo apt install nfs-common
6.2. Для ВМ с ролью DS
6.2.1. Остановите сервис
systemctl stop ds-converter ds-docservice ds-metrics
6.2.2. Пропишите в fstab сетевой каталог
192.168.25.4:/mnt/nfs/ds /var/lib/r7-office/documentserver/App_Data/cache nfs defaults 0 0
Где
- 192.168.25.4 — ip сервера nfs;
- /mnt/nfs/ds — сетевой каталог на сервера nfs;
- /var/lib/r7-office/documentserver/App_Data/cache — куда монтируем сетевой каталог на сервере с DS.
6.2.3. Скопируйте файлы
cd /var/lib/r7-office/documentserver/App_Data/cache mkdir /tmp/backup_ds cp -pr ./ /tmp/backup_ds
6.2.4. Примонтируйте и скопируйте файлы
cd /tmp/backup_ds mount -a cp -pr ./ /var/lib/r7-office/documentserver/App_Data/cache
6.2.5. Запустите сервисы
systemctl start ds-converter ds-docservice ds-metrics
6.2.6. Проверьте работу редактирования
И что файлы создаются на нашем nfs сервере
6.3. Для ВМ с ролью Р7-Диск
6.3.1. Остановите сервисы
supervisorctl stop all
6.3.2. Пропишите в fstab
192.168.25.4:/mnt/nfs/cddisk /var/r7-office nfs defaults 0 0
Где
- 192.168.25.4 — ip сервера nfs;
- /mnt/nfs/cddisk — сетевой каталог на сервера nfs;
- /var/r7-office — куда монтируем сетевой каталог на сервере с Р7-Диск.
6.3.3. Скопируйте файлы
cd /var/r7-office mkdir /tmp/backup_cddisk cp -pr ./ /tmp/backup_cddisk
6.3.4. Примонитируйте и скопируйте файлы
cd /tmp/backup_cddisk mount -a cp -pr ./ /var/r7-office
6.3.5. Запустите сервисы
supervisorctl start all
6.3.6. Проверьте работу портала и сохранение документов
6.3.6.1. Создайте файл и отредактируйте его
6.3.6.2. Проверьте его сохранение
6.4. Для ВМ с Сервисом Поиска
6.4.1. Остановите сервис
supervisorctl stop all
6.4.2. Пропишите в fstab сетевой каталог
192.168.25.4:/mnt/nfs/search /var/r7-office/searchindex nfs defaults 0 0
Где
- 192.168.25.4 — ip сервера nfs;
- /mnt/nfs/search— сетевой каталог на сервера nfs;
- /var/r7-office/searchindex — куда монтируем сетевой каталог на сервере с сервисом Поиска.
6.4.3. Скопируйте файлы
cd /var/r7-office/searchindex mkdir /tmp/backup_search cp -pr ./ /tmp/backup_search
6.3.4. Примонтируйте и скопируйте файлы
cd /tmp/backup_search mount -a cp -pr ./ /var/r7-office/searchindex
6.3.5. Запустите сервисы
supervisorctl start all
6.3.6. Проверьте работу поиска
6.3.6.1. Введите имя файла в строке поиска
Должен выдать его в результате
7. Настройка потоковой репликации Master-Slave PostgreSQL
7.1. Установите PostgreSQL на Slave
sudo apt update && sudo apt install postgresql -y
7.2. Измените postgresql.conf
sudo nano /etc/postgresql/11/main/postgresql.conf
Приведите параметры к виду:
listen_addresses = 'localhost,192.168.26.71' # what IP address(es) to listen on; port = 5432
Где
- localhost,192.168.26.71 — адреса, которые слушает сервис;
- 5432 — порт, который сервис прослушивает.
7.3. На Master
7.3.1. Создайте пользователя
su - postgres createuser --replication -P repluser
Потребует пароль, запишите его куда-нибудь
7.3.1.1. Проверьте расположение конфигурационного файла
psql -c 'SHOW config_file;'
В нашем случае это
/etc/postgresql/11/main/postgresql.conf
7.3.2. Выйдите из оболочки postgres
exit
7.3.3. Измените postgresql.conf
sudo nano /etc/postgresql/11/main/postgresql.conf
Отредактируйте следующие параметры:
wal_level = replica max_wal_senders = 1 max_replication_slots = 2 hot_standby = on hot_standby_feedback = on
Где
- wal_level — указывает, сколько информации записывается в WAL (журнал операций, который используется для репликации);
- max_wal_senders — количество планируемых серверов Slave;
- max_replication_slots — максимальное число слотов репликации;
- hot_standby — определяет, можно или нет подключаться к postgresql для выполнения запросов в процессе восстановления;
- hot_standby_feedback — определяет, будет или нет сервер slave сообщать мастеру о запросах, которые он выполняет.
7.3.4. Измените файл pg_hba.conf
sudo nano /etc/postgresql/11/main/pg_hba.conf
Добавьте следующие строки:
host replication repluser 127.0.0.1/32 md5 host replication repluser 192.168.26.48/32 md5 host replication repluser 192.168.26.71/32 md5
- Данной настройкой Вы разрешаете подключение к базе данных replication пользователю repluser с локального сервера (localhost и 192.168.26.48) и сервера 192.168.26.71.
7.3.5. Перезапустите службу postgresql
systemctl restart postgresql
7.4. На Slave
7.4.1. Проверьте пути до конфигурационных файлов
su - postgres -c "psql -c 'SHOW data_directory;'"
Вывод
su - postgres -c "psql -c 'SHOW config_file;'"
Вывод
7.4.2. Остановите PostgreSQL
systemctl stop postgresql
7.4.3. Сделайте бэкап
tar -czvf /tmp/data_pgsql.tar.gz /var/lib/postgresql/11/main
7.4.4. Удалите содержимое
rm -rf /var/lib/postgresql/11/main/*
7.4.5. Запустите репликацию с Master на Slave
su - postgres -c "pg_basebackup --host=192.168.26.48 --username=repluser --pgdata=/var/lib/postgresql/11/main --wal-method=stream --write-recovery-conf"
Где
- 192.168.26.48 — IP-адрес мастера;
- /var/lib/postgresql/11/main — путь до каталога с данными.
После ввода команды система запросит пароль для созданной ранее учетной записи repluser — введите его.
Начнется процесс клонирования данных.
7.4.6. Запустите PostgreSQL
systemctl start postgresql
7.5. Проверка репликации
7.5.1. Посмотрите статус
Статус работы репликации можно посмотреть следующими командами.
7.5.1.1. На Master
select * from pg_stat_replication;
7.5.1.2. На Slave:
select * from pg_stat_wal_receiver;
7.5.2. Создайте тестовую базу
7.5.2.1. На Master зайдите в командную оболочку Postgres
su - postgres -c "psql"
7.5.2.2. Создайте новую базу данных:
CREATE DATABASE repltest ENCODING='UTF8';
7.5.2.3. На Slave посмотрите список баз
Выполните команду
sudo -u postgres psql -c '\l'
Вы должны увидеть среди баз ту, которую создали на первичном сервере:
Настройка завершена.