Моя организация обновляется до SQL Server 2008 с 2000 года (да!), И я не знаком с взаимодействием служб Integration Services.
В настоящее время я управляю очень большими базами данных, в которых хранятся транзакции бизнес-процессов, которые составляют от500000 и 1000000 транзакций в день.В прошлом у нас было очень плохое управление базами данных, и поэтому они выросли до неприемлемого размера.Я работаю над тем, чтобы обеспечить ежедневное архивирование баз данных, чтобы рабочие базы данных были более управляемыми.Я написал несколько хранимых процедур для создания архива и последующего удаления рабочих баз данных.Однако, работая с Integration Services, я обнаружил прекрасную встроенную функциональность для работы, которую сейчас выполняют мои SP.
Я создал несколько пакетов служб SSIS, которые выполняют экспорт / импорт.Так как меня интересуют только определенные данные, я использую пользовательский запрос в пакетах, который имеет вид:
DELETE TransactionTable
OUTPUT
DELETED.*
WHERE (EventTimestamp >=
DATEADD(D, 0, DATEDIFF(D, 0, (SELECT MIN(EventTimestamp) FROM TransactionTable)))
)
AND (EventTimestamp <
DATEADD(HH, 0, (DATEADD(YY, -1, DATEDIFF(D, 1, GETDATE()))))
);
Этот запрос собирает интересующие меня данные и удаляет их из рабочей таблицы.,Используя SSIS, этот запрос производит вывод, который помещается в архивную таблицу.
Мои вопросы:
Поскольку я хочу импортировать записи в мой архив и удалить эти записи из рабочей базы данных втот же пакет служб SSIS для обеспечения согласованности, этот запрос, кажется, способ сделать это.Тем не менее, я обеспокоен структурой сделки.Я удаляю записи из моей рабочей базы данных в качестве вывода для вставки в мою архивную базу данных.
Как SQL Server обрабатывает ошибки в этом случае?
Безопасно ли использовать этот пакет?
Что произойдет, если вывод, сгенерированный оператором, будет неверным и возникнет ошибка?
Откатывается ли утверждение?
Будет ли DELETE
зафиксирован, только если все выходные данные можно было перенести в архив?
Если нет, как я могу достичь отказоустойчивого состояния?