This is a discussion on help with full filesystem corruption within the Informix forums, part of the Database Server Software category; --> I've been asked to fix a problem on a redhat linux 7.3 machine running a version of informix 4gl ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| I've been asked to fix a problem on a redhat linux 7.3 machine running a version of informix 4gl (2.1 as best as I can tell). The error started when the filesystem filled up. I have successfully expanded the filesystem and the system works for the most part but when they try to run an import utility get this error: Program stopped at "load_comma_cd.4gl", line number 694. SQL statement error number -314. ISAM error number 0. Table (load_comma) currently in use. using isql I am able to view the table structure but any other operation results in "file not found" or "in use" errors. I don't know that much about informix and have been seaching out a solution for a couple days. Can anyone provide me some pointers to get this fixed? Thanks, Andrew |
| |||
| ahum sounds like you have an Standard Engine. do a ls -l $INFORMIXDIR/lib and check if an sqlexec is there. if so you may have corruption in your db. (copy first and look at secheck.) you may have a version which uses kernel locking, if that is the case a reboot of the machine may help since you might see a stray lock. if you have lock files you may need to delete it??!! if i am not mistaken (sorry looongg time ago) the filename is <partoftablename><somenumber>.lck???? try move it away if it exists.... please be carefull backup all first!!! maybe restore on a test box and run your stuff from there excluding the <partoftablename><somenumber>.lck???? of course... Check out the manual too specially f you have transaction log enabled. you may need to restore afterall since it may have become corrupted. if you have something like IDS so onstat - says online then someother program has a (exclusive) lock on it; see prev entry from Danny de Koster how to find locks... Superboer. amcrory schreef: > I've been asked to fix a problem on a redhat linux 7.3 machine running > a version of informix 4gl (2.1 as best as I can tell). The error > started when the filesystem filled up. I have successfully expanded the > filesystem and the system works for the most part but when they try to > run an import utility get this error: > > Program stopped at "load_comma_cd.4gl", line number 694. > SQL statement error number -314. > ISAM error number 0. > Table (load_comma) currently in use. > > > using isql I am able to view the table structure but any other > operation results in "file not found" or "in use" errors. I don't know > that much about informix and have been seaching out a solution for a > couple days. Can anyone provide me some pointers to get this fixed? > > Thanks, > > Andrew |
| |||
| Superboer, thanks for the reply. there is sqlexec in $INFORMIXDIR/lib and I find no .lck files on the system. onstat does not exist nor do some other utilities I've read about. In fact the only utilities are $INFORMIXDIR/bin: bcheck dbschema isql sacego salesdemo sperform dbload deccon isqldemo saceprep sformbld I've tried to drop and recreate the table but when I run drop I get: 314: Table (load_comma) currently in use. 2: No such file or directory when I try to alter: 215: Cannot open file for table (load_comma). 2: No such file or directory It's like the .dat and .idx files are missing? I have compared to the backup and do not see any missing files. |
| |||
| In message <1147143606.550405.79520@i40g2000cwc.googlegroups. com>, amcrory <amcrory@gmail.com> writes >Superboer, thanks for the reply. there is sqlexec in $INFORMIXDIR/lib >and I find no .lck files on the system. onstat does not exist nor do >some other utilities I've read about. In fact the only utilities are >$INFORMIXDIR/bin: > > bcheck dbschema isql sacego salesdemo sperform > dbload deccon isqldemo saceprep sformbld > >I've tried to drop and recreate the table but when I run drop I get: > > 314: Table (load_comma) currently in use. > 2: No such file or directory > >when I try to alter: > > 215: Cannot open file for table (load_comma). > 2: No such file or directory > >It's like the .dat and .idx files are missing? I have compared to the >backup and do not see any missing files. > You definitely have Standard Engine.. Your system is probably using the UNIX lock table instead of .lck files, and has a rogue entry in there. Try rebooting it. Also check what is in systables for load_comma - you will find out what the name of the ..dat & .idx files is, and remember they don't have to be in the same directory as the system catalogues. Also check the permissions of the Unix files - create an empty database to see what they should be first. Of course you might have a corruption in the system cataloges. Sometimes I've managed to repair those with bcheck -s, sometimes I've had to unload the whole damned database and reload it, and the corruption often stops dbexport working so other methods have to be resorted to. Can dbschema create a schema for the whole database? And if it can, does the load_comma table exists? BTW - it isn't a temporary table, is it? -- Surfer! Email to: ramwater at uk2 dot net |
| ||||
| > 314: Table (load_comma) currently in use. > 2: No such file or directory yes gone ... hum.... use dbaccess or isql's query language do a select * from systables where tabname ="load_comma" it should give you dirpath. if dirpath is a fully qualified directoryname/somefilename ex: /data/mydatabase/load_comma then do a ls of /data/mydatabase/load_comma.* if the name is load_c000101 or something simular, goto the directory where your database reside cd into the <databasename>.dbs and do a ls of load_c000101 .* if there is nothing there, you lost the table. try to get the schema of load_comma dbschema -d <yourdbname> -t load_comma -ss load_comma.sql (ahum not sure if you can use -ss.....) and fingers crossed that this works otherwise you have to get this info from the system catalog and retype the create table statement.... create a dummy database use load_comma.sql to recreate load_comma maybe you need to modify it if dirpath is /data/mydatabase/load_comma add in /data/mydatabase/load_comma after the create table in this case you can manually delete the dummy db since you have an new empty table in your db. if dirpath was load_c000101 you can copy the idx and dat files to your production database directory. again i would really check for backups and see if you have a valid one. Superboer. |