Решается благодаря свойствам файловых систем, типа Copy-on-Write. Например, ZFS.
Есть и аппаратные решения (по факту программно-аппаратные).
Есть и программные решения, работающие без ZFS, причем заточенные как раз на СУБД. На Хабре была статья про создание копий БД для целей разработки:
www.habrahabr.net/thread/5851Сейчас 7 команд используют 27 Тб — это база, сжатая при инициализации (до трети) и их диффы за год.
Идея проста.
1) Делаем клон или снепшот файловой системы. Это делается
практически мгновенно.
2) Настраиваем на клонированную файловую систему свой экземпляр СУБД.
3) Имеем 2 версии данных, та часть данных, что одинаковая (до выполнения п.1) - не дублируется, места не занимает.
4) При необходимости освежить данные - убиваем клон/снепшот и создаем заново. Это происходит почти мгновенно.
5) Можно иметь несколько независимых клонов/снепшотов одоновременно.
Можно сделать такое же примерно ветвление как и в Git
Только слияния в отличие от Git - невозможны.