Сейчас мы переходим от MySQL к базе данных MSSQL 2008R2. Поскольку проект представляет собой веб-приложение, которое нам необходимо хорошо масштабировать, нам необходимо переработать способ обработки данных в БД.
У нас есть 3 отдельные среды: производственная, промежуточная и архивная / резервная.
Прежде всего, можно ли настроить службы аналитики и отчетов только в архивной среде? Или важно, чтобы они работали в среде, в которой происходит исходная транзакция? (Может быть, сервисам нужны все точные журналы и т. Д.?) Смысл в том, чтобы иметь возможность «облегчить» критически важную систему, которая является производственной, и перенести нагрузку в архив, где сервисы могут свободно потреблять больше ресурсов.
Во-вторых, есть ли хороший способ гарантировать, что среда архивирования / резервного копирования будет обновлена и не повреждена? Какие инструменты можно предложить? Мы действительно изучаем Редгейт но и в этом у нас нет опыта. Нам нужно синхронизировать базу данных с архивом резервных копий с новым материалом
В-третьих, хотелось бы иметь некую группировку «дед-отец-сын». Например, мы хотели бы, чтобы следующее всегда выполнялось заранее, и ничего больше предварительно рассчитано:
Будет ли достаточно проиндексированных просмотров для этой цели? Мы хотим, чтобы все поля были предварительно вычислены и сохранены.
Наконец, мы хотели бы иметь некоторые функции, такие как управление версиями StackExchanges (и, как правило, Wikis). Есть ли способы каким-то образом заархивировать старые версии, но все еще в производственной среде, и сделать новые версии более доступными? Мы изучаем Разбиение но, похоже, он не справляется с таким запутанным сценарием (мы не хотим, чтобы ВСЕ сообщения до даты X были разделены, вместо того, чтобы нам нужны все версии, которые старше самой новой версии).
Если у вас нет прямого ответа на все подвопросы, пожалуйста, оставьте ответ, чтобы мы могли собрать полный ответ о передовых методах архивирования / масштабируемости.
Если некоторые функции / инструменты, которые вы предлагаете, взяты из более новой версии 2012 года, все в порядке, поскольку мы обновим их, как только она будет выпущена.
Да, вы можете настроить аналитику и отчетность только на одну среду, потому что вы просто указываете им на эту среду. Лучше всего запускать SSRS (Службы Reporting Services) и SSAS (Службы Analysis Services) на устройствах, отличных от производственной базы данных для вашего приложения. Это связано с тем, что ядро базы данных, SSRS и SSAS по-разному используют операции ввода-вывода и память. Они также группируются по-разному, если вы планируете это сделать в какой-то момент.
CDC, Change Data Capture, может позволить вам реализовать желаемую стратегию архивирования, но вам нужно посмотреть, можете ли вы эффективно создать подкласс оператора удаления. По сути, вам нужны два типа удалений из производственной среды ... один, который удаляет его из производства (меньшая, более быстрая база данных транзакций), но не удаляет его из архивации, и второй тип удаления, который удаляет данные из всех сред. Теоретически я считаю, что это возможно, но никогда не делал этого в продакшене.