Секционированные таблицы и индексы SQL Server 2005 - Сценарий "Скользящее окно"
ОГЛАВЛЕНИЕ
Сценарий "Скользящее окно"
Как только станут доступными данные следующего месяца (в нашем случае это Октябрь 2004), Вам потребуется руководствоваться определенной последовательностью действий, для того чтобы используя существующие файловые группы "двигать" ("включать"/"выключать") в них данные. По данному сценарию в файловой группе FG1 в настоящее время находятся данные за октябрь 2002. Теперь, когда появились данные за Октябрь 2004, у Вас есть два пути, в зависимости от доступного Вам дискового пространства и требований к архивации. Помните, чтобы "включение" или "выключение" секции из таблицы прошло быстро, оно должно затрагивать ИСКЛЮЧИТЕЛЬНО метаданные. Другими словами, новая таблица (источник или целевая - т.е. скрытая секция) должна быть создана в переключаемой файловой группе. Если Вы планируете продолжать использовать те же самые файловые группы, в данном случае FG1, то тогда Вы должны будете решить, как управлять дисковым пространством и требованиями к архивации. Если у Вас достаточно места на диске, то Вы можете загрузить текущие данные (октябрь 2004) в FG1, не удаляя данных, которые будут заархивированы (октябрь 2002).
Однако если у вас недостаточно дискового пространства для того, чтобы хранить данные за текущий месяц и месяц, который подлежит архивации, тогда вам придется сначала "выключить" старую секцию.
Вероятно, что Вы уже проводили архивацию. Хорошая практика архивирования заключается в том, чтобы создавать резервную копию файловой группы сразу же после того, как новая секция будет загружена и "включена" (а не перед "выключением"). Причина в том, что если на RAID-массиве вдруг произойдет сбой, файловую группу можно будет восстановить (restore) вместо того, чтобы перестраивать/перегружать данные (rebuild/reload). В нашем конкретном случае, поскольку база данных буквально недавно была секционирована, вы, вероятно, уже выполнили полное резервное копирование (full backup) после того, как структура секционирования была стабилизирована (полное резервное копирование базы данных - это не единственное решение; существует большое число различного рода стратегий резервного копирования, которые могут быть осуществлены в SQL Server 2005, а также предложений большей степени детализации резервного копирования и восстановления). Поскольку большая часть данных никогда не изменяется, вы можете архивировать только отдельные файловые группы после того, как они будут загружены. Фактически, это должно стать частью вашей стратегии секционирования. За дополнительной информацией по данной теме обратитесь к разделу BOL: "File and Filegroup Backups" in Administering SQL Server.
Теперь, когда стратегия выбрана, Вам необходимо разобраться в деталях процесса и синтаксиса. Возможно что-то вам покажется сложным. Тем не менее, полный цикл процесса будет идентичным для каждого месяца. Все что будет меняться, так это только даты. Используя динамический SQL, Вы можете легко автоматизировать весь процесс. Вот основные шаги:
- Управление "включаемой" каскадной таблицей
- Управление второй каскадной таблицей ("выключаемой")
- Исключение старых данных из секционированной таблицы и добавление новых
- Удаление каскадных таблиц
- Резервное копирование файловой группы
Рассмотрим каждый из шагов более детально. Дополнительно каждый шаг содержит примечания, помогающие автоматизировать процесс с помощью динамического SQL.