ORA-02049 Timeout: Distributed Transaction Waiting for Lock Solution needed
First of all do not use database links for larger transactions. This can cause too many problems with blocking sessions. Another hint is to keep transactions in a good size (not to small, not to big).

If your table is not partitioned then write a piece of code to remove just 1000 rows, commit and delete the next 1000 rows.



You said something about alter table &lt;table_name&gt; truncate partition &lt;partition_name&gt;; Is this table partitioned?


Why do you want to delete data from a partitioned table on daily basis? Is the table partitioned the same way?


To archive an entire partition you best exchange it with an empty table of the same structure. Afterwards you can export/backup the table and then drop it. If your partition is in a dedicated tablespace you can also mark it as read only and skip it in the daily backup (enable backup optimization in RMAN).