2012-07-30 2 views
0

Мне нужно устранить производственную базу данных SQL Server 2008, поэтому я хочу экспортировать/архивировать только последние 3 месяца данных, содержащихся в нем, чтобы импортировать их в тестовое поле SQL и попытаться устранить проблему там. Производственные и тестовые SQL-серверы находятся в двух разных лесах/доменах. Не могли бы вы посоветовать мне, что лучше для этого?SQL Server 2008 - как экспортировать/архивировать последние 3 месяца данных из базы данных?

Большое спасибо!

ответ

2

Что ты спрашиваешь не представляется возможным

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

Даже если у вас есть временные метки, просто пытаясь вытащить все строки из всех таблиц, где временная метка находится за последние 3 месяца, может привести к несогласованному состоянию. Например, у вас может быть таблица Customer и таблица Orders. Данному клиенту может быть 5 месяцев, но может быть заказ для этого клиента, которому 1 день. Вытягивая 1-дневный заказ, но не потянув за 5-месячного клиента, ссылки на него приведут к заказу без клиента.

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

Альтернативный

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

0

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

Смежные вопросы