Архивирование больших объемов старых данных в SQL Server

Довольно простой вопрос.

У меня есть большая база данных 70gb, в которой есть четыре из пяти таблиц, каждая из которых содержит около 50 миллионов строк. Эти таблицы содержат данные за 6 лет. Мы ограничены объемом пространства в нашей базе данных до 80 гб, и мы будем быстро приближаться к этому в течение следующих 6 месяцев или около того.

Нам нужно хранить данные только в течение двух лет в базе данных. Каков наилучший подход к архивированию старых данных БЕЗ БЕСПЛАТНОЙ онлайн-базы данных (это база данных 24/7)?

Мы выполняем SQL Server 2008 R2 Standard в кластерной среде с использованием активной пассивной настройки с использованием общего хранилища.

Благодарю.

Когда вы говорите архив, это означает «нужно сохранить данные для последующего использования».

Помимо всего прочего, если данные сейчас недоступны, тогда вы рискуете потерять их, если будете полагаться на резервные копии на магнитной ленте. Кроме того, вам нужно иметь дисковое пространство для его восстановления в будущем.

Конечно, это не непреодолимые проблемы, но, если что-то не критично, я бы сохранил данные в режиме онлайн, пока не будет доказано обратное. Мой опыт показывает, что люди хотят архивировать данные, когда вы меньше всего ожидаете …

Один из вариантов (вопрос с меткой SQL Server 2008) – это сжатие данных . Вы можете сжимать архивные таблицы, например, в Интернете.

Создание таблицы архива.

SELECT * INTO ANewArchiveTable FROM CurrentTable WHERE SomeDateColumn <= DATEADD(year, -2, GETDATE()) 

Или используйте разделение для достижения того же

Если данные находятся в режиме онлайн, вы можете уменьшить «текущую» таблицу дальше и иметь данные старше, чем, скажем, 3 месяца, в сжатой архивной таблице / разделе тоже