Re: System Deadlock
Posted in 1993
In-Reply-To: <1rgvudINNgo9@emory.mathcs.emory.edu> alex@lucas.MREC.AR (Maria Alejandra Perez Weiss)
> I had a big table(50000 rows) in a database with logs.
> I run a delete(from isql qery language) on that table
> which envolved a high percent of the rows (I know it wasn't a good
> idea)
> Something like 30 minutes later I returned to the screen where
> the isql was running. As it seemed to have no end, I tried to interrup
> it.
> It wasn't so easy, so I tried with tmode -z. Nothing happened.
> So I run tbstat and I found the following situation:
>
rest deleted
This is fixed in v4.1 through the use of the tbconfig parameters.
Informix cannot re-use the first log because it contains a live
transaction (i.e. the long transaction) and it needs to read this in
order to do the rollback. It also need to log the rollback but can't
because there are no free logs left.
The only thing you can do is restore from an archive.
If you need to run that sql delete again, you must either:
a. Turn off logging
b. Use several delete statements, each of which only deletes approx 500
rows. e.g.
intead of
delete from tab where tr_date < 01/01/93
use
delete from tab where tr_date <010193 and acc_no < 100;
delete from tab where tr_date <010193 and acc_no < 200;
delete from tab where tr_date <010193 and acc_no < 300; etc.
--
David W. Chan Tel/Fax: +44 71 488 0679
Objective Research Ltd. Email: dwc@cix.compulink.co.uk