Требуемые условия завершения
Задание:
4. Установка и настройка сервера баз данных
- a) В качестве серверов баз данных используйте сервера SRV-HQ и SRVBR
- b) Разверните сервер баз данных на базе Postgresql
- a. Создайте базы данных prod, test, dev
- i. Заполните базы данных тестовыми данными при помощи утилиты pgbench. Коэффицент масштабирования сохраните по умолчанию.
- Создайте пользователей produser, testuser, devuser, каждому из пользователей дайте доступ к соответствующей базе данных.
- b. Разрешите внешние подключения для всех пользователей.
- c. Сконфигурируйте репликацию с SRV-HQ на SRV-BR
- a. Создайте базы данных prod, test, dev
Выполнение:
SVR-HQ:
- Установка пакетов базы данных:
apt-get install -y postgresql16 postgresql16-server postgresql16-contrib
- Создаём системные базы данных:
/etc/init.d/postgresql initdb
- Включаем и добавляе в автозагрузку PostgreSQL:
systemctl enable --now postgresql
- Разрешаем доступ к PostgreSQL из сети:
vim /var/lib/pgsql/data/postgresql.conf
-
- в конфигурационном файле находим строку "listen_addresses = 'localhost'" и приводим её к следующему виду:
- Перезапускаем PostgreSQL:
systemctl restart postgresql
- Проверяем:
Создаём базы данных и пользователей с необходимыми правами:
- Для заведения пользователей и создания баз данных, необходимо переключиться в учётную запись "postgres":
psql -U postgres
-
- зададим пароль для пользователя "postgres":
ALTER USER postgres WITH ENCRYPTED PASSWORD 'P@ssw0rd';
-
- Создаём базы данных "prod","test" и "dev":
CREATE DATABASE prod;
CREATE DATABASE test;
CREATE DATABASE dev;
-
- Создаём пользователей "produser","testuser" и "devuser":
CREATE USER produser WITH PASSWORD 'P@ssw0rd';
CREATE USER testuser WITH PASSWORD 'P@ssw0rd';
CREATE USER devuser WITH PASSWORD 'P@ssw0rd';
-
- Назначаем для каждой базы данных соответствующего владельца:
- для базы данных "prod" назначаем владельцем пользователя "produser":
- Назначаем для каждой базы данных соответствующего владельца:
GRANT ALL PRIVILEGES ON DATABASE prod to produser;
-
-
- для базы данных "test" назначаем владельцем пользователя "testuser":
-
GRANT ALL PRIVILEGES ON DATABASE test to testuser;
-
-
- для базы данных "dev" назначаем владельцем пользователя "devuser":
-
GRANT ALL PRIVILEGES ON DATABASE dev to devuser;
- Заполняем базы данных тестовыми данными при помощи утилиты pgbench:
pgbench -U postgres -i prod
pgbench -U postgres -i test
pgbench -U postgres -i dev
- Проверяем:
psql -U postgres
\c prod
\dt+
-
- Аналогично и для других баз данных:
- Настраиваем парольную аутентификацию для удалённого доступа:
vim /var/lib/pgsql/data/pg_hba.conf
-
- добавляем следующую запись:
- перезапускаем PostgreSQL:
systemctl restart postgresql
SRV-BR:
- Установка пакетов базы данных:
apt-get install -y postgresql16 postgresql16-server postgresql16-contrib
- Проверяем:
- подключаемся с SRV-BR к SRV-HQ:
- из под пользователя "produser" к базе данных "prod":
- подключаемся с SRV-BR к SRV-HQ:
-
-
- из под пользователя "testuser" к базе данных "test":
-
-
-
- из под пользователя "devuser" к базе данных "dev":
-
Настраиваем репликацию с SRV-HQ на SRV-BR:
SRV-HQ:
- Открываем конфигурационный файл "/var/lib/pgsql/data/postgresql.conf":
vim /var/lib/pgsql/data/postgresql.conf
-
- редактируем следующие параметры:
где:
wal_level указывает, сколько информации записывается в WAL (журнал операций, который используется для репликации);
max_wal_senders — количество планируемых слейвов;
max_replication_slots — максимальное число слотов репликации;
hot_standby — определяет, можно или нет подключаться к postgresql для выполнения запросов в процессе восстановления;
hot_standby_feedback — определяет, будет или нет сервер slave сообщать мастеру о запросах, которые он выполняет.
- Перезапускаем службу postgresql:
systemctl restart postgresql
SRV-BR:
- Останавливаем службу postgres:
systemctl stop postgresql
- Удаляем содержимое каталога с данными:
rm -rf /var/lib/pgsql/data/*
- И реплицируем данные с SRV-HQ сервера:
pg_basebackup -h 10.0.10.2 -U postgres -D /var/lib/pgsql/data --wal-method=stream --write-recovery-conf
- Назначаем владельца:
chown -R postgres:postgres /var/lib/pgsql/data/
- Снова запускаем сервис postgresql:
systemctl start postgresql
Проверяем репликацию:
SRV-HQ:
- Создаём тестовую базу данных:
psql -U postgres
CREATE DATABASE test_replica;
SRV-BR:
- Смотрим список всех баз данных:
Последнее изменение: среда, 25 декабря 2024, 17:56