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

очень простой вопрос.

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

нам нужно только сохранить около двух лет данных в живой базе данных. Каков наилучший подход к архивированию старых данных без принятия живая база данных в автономном режиме (это 24/7 база данных)?

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

спасибо.

1 ответов


когда вы говорите архив, это подразумевает "необходимость хранить данные для последующего использования".

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

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

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

для создания архивной таблицы.

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

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

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