Guest User

Untitled

a guest
Feb 17th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. Как максимально быстро и с минимальным расходом дискового пространства получать копии баз для разработки.
  2.  
  3. Предположим, есть сервер баз данных под управлением postgres, назовем его srv-db
  4. И есть сервер разработки, на котором тоже есть postgres, назовем его srv-dev.
  5. Требуется по мере надобности создавать в онлайне за несколько минут получать копии для тестирования и разработки.
  6. Для этого проводим подготовительные работы:
  7. 1. Размещаем кластер postgres на zfs
  8. 2. Настраиваем потоковую асинхронную репликацию srv-db -> srv-dev
  9. Делаем копиии:
  10. 3. Делаем снимок zfs, затем клон на основе снимка
  11. 4. Создаем пустую базу 1С, если не создавали ранее
  12. 5. Заменяем каталог базы на симлинк к базе с клонированного диска
  13.  
  14. Время создания копии вручную - 3-5 минут, скриптом - 10 секунд.
  15. По месту: изначально клон не занимает место, по мере работы пишутся изменения.
  16. Операцию можно выплнять как для всех разработчиков с любой необходимой периодичностью, так и индивидуально по требованию.
  17.  
  18. ===
  19.  
  20. Пример: создание копии базы trade-dev-ivanov из базы trade-dev-base
  21.  
  22. - Установить нужное ПО, если не установлено: choco install putty pgadmin -y
  23.  
  24. - Подключиться из windows через putty: username@computername
  25. - Создать новую пустую базу 1С, посмотреть OID trade-dev-base и trade-dev-ivanov через pgadmin: предположим, что это 16384 и 725498
  26.  
  27. - Сделать снимок (назвать его 20190215) и клон на основе снимка:
  28. sudo zfs snapshot zpool0/db@20190215
  29. sudo zfs clone zpool0/db@20190215 zpool0/db/ivanov
  30.  
  31. - Сделать владельцем пользователя postgres:
  32. sudo chown postgres:postgres /zpool0/db/iavnov
  33.  
  34. - Остановить кластер postgres для подмены базы:
  35. sudo systemctl stop postgrespro-1c-11
  36.  
  37. - Удалить каталог новой базы и заменить на симлинк от базы
  38. rm -rf /var/lib/pgpro/1c-11/data/base/725498
  39. ln -s /zpool0/rubtsov/pgpro/1c-11/data/base/16384 /var/lib/pgpro/1c-11/data/base/725498
  40.  
  41. - Запустить postgres:
  42. sudo systemctl start postgrespro-1c-11
Add Comment
Please, Sign In to add comment