Damaged root chunk -and corrupted archives
Posted in 1999
Topics: Installation, Setup & Upgrades, Storage & Space Management, Migration, Import/Export & Data Conversion
I can only hope this appeals to the more veteran subscribers as an intellectual exercise. I've got a catastrophic database failure which includes hopelessly compromised archive tapes, so it is desperation time. I am on the tech support desk at my firm. A client site called in Friday morning with errors starting up their database. It is an old application - in fact, a new server was just shipped to the site for a migration and upgrade. So Murphy's Law decreed that the production system would crash now, of course. Informix 5.01 on an NCR 386 platform running SCO 2.3. The database is installed on external SCSI drives. As we began locating the tapes for the recovery, the real killer problem showed up: their archives have been cancelling for months, but the operators didn't notice. We have no normal recovery capability. (I am pursuing the forlorn hope that the "archive cancelled" message in online.log is spurious, since it comes at the very end of the process, and am checking to see if Informix has an archecker for a version this old, so we can try and validate the suspect tapes) Working with Informix down-systems, the only strategy they can see (if anything is going to work) is to get the undamaged portion of the chunk onto a readable disk - then they'll see if they can patch it enough to get the database working, at least enough to unload. scsibadblk identifies the damaged blocks, but fails to reallocate them (presumably the drives don't support the feature). There are 19 bad blocks spanning a range of about 54 blocks. About the only thing I can think of at this point is to use dd to get the rest of the (2 gb) drive onto readable media, then swap the disk (keeping the old one safe, in case we have to put it back) and load the salvaged data onto the new hard drive. There are no spare disks on the server (I am chasing around to see if we can cannibalize an external drive casing from somewhere, but for now I don't have a spare disk to play with) and I am wondering about writing the data to tape. Inexperience with operations at this level is holding me up now (naturally this happens on a US holiday weekend with my senior systems resources out of reach). I have verified that I can read up to the beginning of the damaged spot on the disk with dd. I have verified that I can get past the damaged stretch and start reading again using dd with the iseek option. What I am not clear on is whether I can write to tape or disk in a useful way with the command. Does anyone know if it would work to: dd if=<device> of=nrStp0 count=<first damaged block-1> where nrStp0 is the "no-rewind,no-unload" device for the SCSI tape drive. Then: dd if=<device> of=rStp0 iseek=<last damaged block+1> where rStp0 is the normal (rewind and unload on completion) driver for the tape. Then, after replacing the damaged drive, simply dd if=<tape device> of=<disk>? Any input will be received with grovelling gratitude. Paul Sent via Deja.com http://www.deja.com/ Share what you know. Learn what you don't.