Recovering table spaces in non-recoverable databases

When crash recovery is needed, but there are damaged table spaces, you can only successfully restart the database if the damaged table spaces are dropped. In a non-recoverable database, the logs necessary to recover the damaged table spaces are not retained. Therefore, the only valid action against such table spaces is to drop them.

Procedure

To restart a database with damaged table spaces:

  1. Invoke an unqualified restart database operation.
    The operation succeeds if there are no damaged table spaces. If it fails (SQL0290N), look in the administration notification log file for a complete list of table spaces that are currently damaged.
  2. If you are willing to drop all of the damaged table spaces, initiate another restart database operation, listing all of the damaged table spaces under the DROP PENDING TABLESPACES option. If a damaged table space is included in the DROP PENDING TABLESPACES list, the table space is put into drop pending state, and you must drop the table space after the recovery operation is complete.

    The restart operation continues without recovering the specified table spaces. If a damaged table space is not included in the DROP PENDING TABLESPACES list, the restart database operation fails with SQL0290N.

    Note: Including a table space name in the DROP PENDING TABLESPACES list does not mean that the table space will be in drop pending state. A table space is placed in this state only if it is found to be damaged during the restart operation.
  3. If the restart database operation is successful, invoke the LIST TABLESPACES command to find out which table spaces are in drop pending state.
  4. Issue DROP TABLESPACE statements to drop each of the table spaces that are in drop pending state.
    After you drop the damaged table spaces, you can reclaim the space that they were using or re-create the table spaces.
  5. If you are unwilling to drop and lose the data in the damaged table spaces, you can:
    • Fix the damaged containers (without losing the original data).
    • Reissue the RESTART DATABASE command.
    • Perform a database restore operation.