RE: Resuming a failed DTS package - Proper ETL design with DTS package



I found the excerpt below from SQL Books online. Is this the right direction.
It sounds like they are saying that SP3 allows me to leverage MS DTC to
rollback transactions.

Somehow I'm supposed to be able to rollback and entire DTS package if it
fails all the way through?

Is this practical for large packages?
How would I do this?

You use database transactions to bind multiple updates into a single atomic
unit. In this way, you help to ensure that your data remains in a consistent
state. Distributed transactions carry this concept a step further, allowing
you to bind disparate operations on multiple platforms into a single
transaction.

Data Transformation Services (DTS) uses functions offered by the Microsoft®
Distributed Transaction Coordinator (MS DTC) to extend the benefits of
distributed transactions to the DTS package developer. For transactions to
work, MS DTC must be running on the computer executing the package. Use the
SQL Server Service Manager to start MS DTC or to verify that it is running.

With DTS transactions, you can:

Gather the results of several tasks into a single transaction and so ensure
consistent updates. For example, orders and line items can be uploaded by two
tasks, which succeed or fail together.
--
bill


"softengine" wrote:

> We have a few large DTS packages that make up our ETL process for our Star
> schema reporting database. These packages run every night.
>
> If one of those packages were to fail mid-way through, we would have to
> track down the error(which is whole 'nother problem) and then restore the
> entire (very large) database from the last days backup before we could
> restart the the failed package. The database has to be restored because of
> history in some of our tables and just the mere complexity of the Star
> Schema.
>
> Is there an article or a DTS design philosophy that allows me to just fix
> the problem and restart the failed package without having to restore the
> entire database?
>
> Here is an idea I have been throwing around
>
> For each DTS task, make a backup of the table being imported or refreshed
> before the task runs. When a step fails, log the failed step and after the
> problem has been fixed re-run the package, except this time it will know that
> it is recovering from a failure and refresh the table that was backed up and
> continue the rest of the DTS package.
>
> I'm not sure if the amount of work to do this is worth-it, but It would save
> us from having to restore a database that takes around an hour to restore and
> re-run a package in the middle of the night; and that's just once, what if
> the problem wasn't fixed?
>
>
> - Bill
>
>
>
.



Relevant Pages

  • Re: Resuming a failed DTS package - Proper ETL design with DTS package
    ... Enable transactions at the package level ... www.SQLDTS.com - The site for all your DTS needs. ... >> schema reporting database. ...
    (microsoft.public.sqlserver.dts)
  • Re: Import data from Access to SQL2005 on daily basis
    ... You can use SSIS to execute your working 2K package by using the Execute DTS 2000 Package task. ... looking to transfer data on a daily basis from an Access database to ... in SQL 2000, but do not know how to go about it in SQL 2005. ... tried importing the 2000 DTS package into 2005 with little luck. ...
    (microsoft.public.sqlserver.dts)
  • Re: Resuming a failed DTS package - Proper ETL design with DTS pac
    ... Enable transactions at the package level ... > www.SQLDTS.com - The site for all your DTS needs. ... >>> schema reporting database. ...
    (microsoft.public.sqlserver.dts)
  • Scheduling a Job on a Locked Access DB
    ... We have a 3rd application that writes data to an Access database every hour. ... I wrote a DTS package to import this data just after the data is written. ... Help file: ...
    (microsoft.public.sqlserver.dts)
  • Re: Executing DTS package on Win XP/2003
    ... We developed a DTS package in VB 6 to copy data from an MS Access ... database to a SQL Server 2000 database. ... Since the source database has around 100 tables, we used SQL Server DTS ...
    (microsoft.public.sqlserver.dts)