Upgrade to 9.40
Posted in 2005
Topics: Installation, Setup & Upgrades
One of the actions for upgrading to 9.40 is to clear any outstanding inplace alters, can someone give an technical reason for this? I had assumed it was because the page format changed and could have disastrous consequences if they weren't cleared. Regards Colin There are 10 types of people in the world, those that understand binary and those that don't sending to informix-list
Colin Dawson wrote: > One of the actions for upgrading to 9.40 is to clear any outstanding inplace > alters, can someone give an technical reason for this? I had assumed it was > because the page format changed and could have disastrous consequences if > they weren't cleared. Because the format of the metadata describing the outstanding IPAs changes, and if you upgrade with outstanding IPAs, you will not be able to revert back until they have been cleared. If you like playing with fire and are confident you won't need to revert, you could try the upgrade with the IPAs outstanding. However, it is not recommended - and you won't be able to any reversion. Which version are you upgrading from? Platform? Which version of 9.40 are you upgrading to? -- Jonathan Leffler #include <disclaimer.h> Email: jleffler@earthlink.net, jleffler@us.ibm.com Guardian of DBD::Informix v2005.02 -- http://dbi.perl.org/
Don't forget that a) Outstanding Inplace alters only get resolved when you update the row, thus slowing downe the update. b) In place alters must slow down row reads since the row has to be converted on the fly to the new format. c) There is a limit of 255 outstanding in-place alters on any one row. I wonder what the error message is if you hit this and if anyone has even encountered it? There are sql's on comp.database.informix to find outstanding in-place alters. I would hope each row in the database has a unique primary key. Stick the primary keys on each table into a new table. Run a program that updates and commits every x rows. That can run slowly and sleep every n loops to reduce impact on the live system. I'd love to have a command to quickly complete just the outstanding alters for a table Something like committing every x rows (if table is logged) and sleep for n seconds every time x rows are updated (to reduce the impact of lots of writes on a production system.. Now that would be good for IDS 11!