Как хранить ненужные данные с сервера MS SQL

Как хранить ненужные данные с сервера MS SQL

Меня попросили обрезать большую таблицу в MS SQL Server 2008. Данные не нужны, но могут понадобиться раз в два года. Их НИКОГДА не придется менять, только просматривать.

Вопрос в том, что мне делать, чтобы защитить и создать резервную копию данных, поскольку они мне не нужны ежедневно?

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

Вся таблица содержит около 3 миллионов строк, и мне нужно обрезать ее примерно до 1 миллиона строк.

решение1

Как вы планируете получить доступ к данным таблицы?

Если вы используете что-то более гибкое (собственный код или просто запросы SQL), то простой выход — скопировать нужную таблицу в другую базу данных и отсоединить ее от сервера. После этого обрежьте таблицу (или удалите ненужные строки, хотя вы можете проверить размер своего T-Log, прежде чем делать это).

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

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

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

решение2

3 миллиона строк — это не так уж много, особенно для сервера SQL. Кроме того, вы не можете обрезать таблицу и сохранить строки. Обрезка полностью опустошает.

Кроме того, удаление происходит медленно, даже если у вас есть время.

Я бы щелкнул правой кнопкой мыши по вашей таблице, написал скрипт, создал новую таблицу. Переименуйте ее, например, в Table_Backup11232011, не забудьте также переименовать ваши первичные ключи...

insert into Table_Backup11232011 select * from oldtable

truncate table oldtable

Теперь у вас есть резервная копия и новая таблица. 3 миллиона строк, вероятно, обойдутся вам всего в несколько сотен мегабайт, что совсем немного.

решение3

Архивация/Доступность: вот вам идея... 1) Выполните удаление данных. 2) Поместите таблицу tyhat в отдельную группу файлов SQL. 3) Запишите файл на устройство только для чтения (при наличии свободного места). 4) Используйте ALTER TABLE, чтобы переопределить, где находится файл, и сделать его доступным только для чтения. 5) Веселись, Гарт!

Теперь данные удалены с ваших жестких дисков, не подлежат изменению, но при необходимости доступны.

Связанный контент