Informix Error -211
-211 Cannot read system catalog <error-text>.
The database server refers to the tables of the system catalog while it processes most statements. When it cannot read one of these important tables, a serious error results. Check the accompanying ISAM error code for more information. The effect of the error depends on the statement that is being executed and the particular table, as follows:
* CREATE TABLE statement, systabauth not read; the table is created, but PUBLIC is not granted authorization as it normally is.
* DROP TABLE statement, systables not read; no action taken.
* DROP TABLE statement, sysviews not read; the table is dropped but any views that depended on the table were not automatically dropped.
* DROP VIEW statement, sysviews not read; no action taken.
* DROP INDEX statement, sysindexes or systables not read; no action taken.
* DROP SYNONYM statement, systables or syssynonyms not read; no action taken.
* DROP DATABASE statement, systables not read; no action taken.
* START DATABASE statement, systables not read; no action taken.
* DATABASE statement, systables or sysusers not read; the database was not selected (no current database; for subsequent operations, see error -349). If this error was accompanied by ISAM error 103, try setting GL_USEGLU=1 in your environment before starting the instance.
Other statements might be partially complete before the error is detected. Roll back the current transaction and then investigate the cause of the error. Use the oncheck utility (secheck with IBM Informix SE or oncheck with IBM Informix OnLine) to check and repair indexes. If necessary, restore the database from backup and logical-log tapes.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-211 is a serious, generic wrapper: the database server refers to the system catalog tables
(systables, syscolumns, sysindexes, and similar) while processing almost every statement,
and it couldn't read one of them. Like the backup/restore wrappers earlier in this range, the
real cause lives in the accompanying ISAM error code — but unlike those, this one carries the
same severity as -105/-135/-163, since it's the engine's own catalog that's affected.
- The system catalog can't be read for a reason identified by the accompanying ISAM error code — this generic message alone doesn't say why; the companion code does.
- General storage-integrity causes, mirroring -105/-135/-163 — an unclean shutdown, hardware failure, or disk corruption affecting catalog tables specifically.
- A statement caught mid-execution when catalog access fails, potentially leaving other statements partially complete before the error is even detected — a real data-consistency risk that the official guidance addresses directly.
- Root dbspace or catalog corruption, similar in spirit to -135's tblspace-not-found scenario but broader — any system catalog read failure, not just one specific missing entry.
Solutions / Resolution
- Check the accompanying ISAM error code first, per the official guidance — this wrapper needs that companion code to identify the actual underlying cause.
- Roll back the current transaction immediately. The official guidance specifically warns that other statements might be partially complete before this error is detected — don't continue as though nothing happened.
- Use the
oncheckutility to check and repair indexes, specifically the system catalog's own indexes. - If repair isn't sufficient, restore the database from backup and logical-log tapes. Treat this with the same severity as -105/-135/-163 — this is a genuine "restore may be necessary" condition, not a routine glitch.
- After recovery, investigate root cause — a crash, hardware failure, or an improper backup — the same discipline as the other serious corruption cases in this range.
- Review the specific statement type involved (
CREATE TABLE,DROP TABLE,DROP VIEW,DROP INDEX,DROP SYNONYM,DROP DATABASE,START DATABASE, orDATABASE) — the official documentation lists statement-specific outcomes for each, worth consulting to understand what state things might be left in for the exact statement that failed.
Examples
The immediate response
ROLLBACK WORK;
-- Check the accompanying ISAM error code for the specific cause
oncheck -cc mydb
Investigating after recovery
grep -iE "abort|panic|shutdown" $INFORMIXDIR/online.log
dmesg -T | grep -iE "error|i/o"
As with -105/-135/-163, correlating the timing against a crash or a disk/I-O error determines whether this is likely to recur.
Diagnostic Checks
- Capture and review the accompanying ISAM error code — the actual diagnostic detail.
- Run
oncheckto check and repair system catalog indexes. - Check for unclean shutdown or hardware issues, as with other corruption cases in this range.
- Review which specific statement type was executing, since the official documentation details statement-specific effects.
Related Errors / Related Topics
- -105 — "ISAM error: bad ISAM file format." The closest sibling in severity and diagnostic posture — genuine storage corruption requiring check/repair and possibly a restore.
- -135 — "ISAM error: tblspace does not exist." Similar root-dbspace/catalog corruption concern, though scoped to a missing tblspace entry rather than a broader catalog read failure.
Roll back immediately and check the accompanying ISAM error code — this is not a condition to investigate at leisure, given the official warning about partially-complete statements.