Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Как максимально быстро и с минимальным расходом дискового пространства получать копии баз для разработки.
- Предположим, есть сервер баз данных под управлением postgres, назовем его srv-db
- И есть сервер разработки, на котором тоже есть postgres, назовем его srv-dev.
- Требуется по мере надобности создавать в онлайне за несколько минут получать копии для тестирования и разработки.
- Для этого проводим подготовительные работы:
- 1. Размещаем кластер postgres на zfs
- 2. Настраиваем потоковую асинхронную репликацию srv-db -> srv-dev
- Делаем копиии:
- 3. Делаем снимок zfs, затем клон на основе снимка
- 4. Создаем пустую базу 1С, если не создавали ранее
- 5. Заменяем каталог базы на симлинк к базе с клонированного диска
- Время создания копии вручную - 3-5 минут, скриптом - 10 секунд.
- По месту: изначально клон не занимает место, по мере работы пишутся изменения.
- Операцию можно выплнять как для всех разработчиков с любой необходимой периодичностью, так и индивидуально по требованию.
- ===
- Пример: создание копии базы trade-dev-ivanov из базы trade-dev-base
- - Установить нужное ПО, если не установлено: choco install putty pgadmin -y
- - Подключиться из windows через putty: username@computername
- - Создать новую пустую базу 1С, посмотреть OID trade-dev-base и trade-dev-ivanov через pgadmin: предположим, что это 16384 и 725498
- - Сделать снимок (назвать его 20190215) и клон на основе снимка:
- sudo zfs snapshot zpool0/db@20190215
- sudo zfs clone zpool0/db@20190215 zpool0/db/ivanov
- - Сделать владельцем пользователя postgres:
- sudo chown postgres:postgres /zpool0/db/iavnov
- - Остановить кластер postgres для подмены базы:
- sudo systemctl stop postgrespro-1c-11
- - Удалить каталог новой базы и заменить на симлинк от базы
- rm -rf /var/lib/pgpro/1c-11/data/base/725498
- ln -s /zpool0/rubtsov/pgpro/1c-11/data/base/16384 /var/lib/pgpro/1c-11/data/base/725498
- - Запустить postgres:
- sudo systemctl start postgrespro-1c-11
Add Comment
Please, Sign In to add comment