天天看点

SQL1043C Database Services could not initialize the system catalogs. Error

如果CATALOG TABLESPACE使用SMS的话就不会出现这个问题,使用DMS就有可能出现

原因很可能是设置的CATALOG TABLESPACE 的大小不足

贴上原文:

Question
This document provides troubleshooting advice for situations where an attempt to create a database fails with the error message SQL1043C: "The database manager could not initialize the system catalogs. Error '-289' was returned".
Cause

As described in the Messages Reference, SQL1043C indicates that the CREATE DATABASE command failed while initializing the system catalogs. Error "-289" maps to SQL0289N, which in turn means "Unable to allocate new pages in table space...".

You may also see in the db2diag.log the following error messages when you create a database with the catalog tablespace in DMS and the size specified for the containers is not enough:

2007-04-11-09.50.23.928002+180 E23114C1031        LEVEL: Error

PID     : 20522                TID  : 1           PROC : db2agent (instance) 0

INSTANCE: db2inst1             NODE : 000

APPHDL  : 0-235                APPID: *LOCAL.db2inst1.070411064735

FUNCTION: DB2 UDB, buffer pool services, sqlbAllocateExtent, probe:830

MESSAGE : ADM6044E  The DMS table space "SYSCATSPACE" (ID "0") is full.  If this is an autoresize or automatic storage DMS tablespace, the maximum table space size may have been reached or the existing containers or storage paths cannot grow any more. Additional space can be added to the table space by either adding new containers or extending existing ones using the ALTER TABLESPACE SQL statement. If this is an autoresize or automatic storage DMS table space, additional space can be added by adding containers to an autoresize table space or by adding new storage paths to an automatic storage database.

2007-04-11-09.50.23.929462+180 I24146C879         LEVEL: Warning

PID     : 20522                TID  : 1           PROC : db2agent (instance) 0

INSTANCE: db2inst1             NODE : 000

APPHDL  : 0-235                APPID: *LOCAL.db2inst1.070411064735

FUNCTION: DB2 UDB, buffer pool services, sqlbObtainDataExtent, probe:800

MESSAGE : ZRC=0x85020021=-2063466463=SQLB_END_OF_CONTAINER "DMS Container space full"

DATA #1 : Object descriptor, PD_TYPE_SQLB_OBJECT_DESC, 68 bytes

Obj: {pool:0;obj:14;type:3} Parent={0;14}

lifeLSN:       000000026069  tid:       0 0  1

extentAnchor:        1920  initEmpPages:           0

poolPage0:              0  poolflags:     0x00000102

objectState:   0x00030025  lastSMP:               32

pageSize:           4096  extentSize:           32

bufferPoolID:          1  partialHash:    51249152

bufferPool:   0x14355650

This error message (SQL0289N) is most often received when you issue the CREATE DATABASE command and specify a database managed space (DMS) for the system catalog table space.

In most cases, you should use system managed space (SMS) table spaces for the system catalog table space, as well as for temporary table spaces. When using SMS table spaces, space is not allocated by the system until it is required. Space for the system catalog tables is only allocated as the space is needed. Refer to "System managed space" in the Related Information for more details.

When using DMS table spaces, the space is pre-allocated which means that the space must be available on the containers before the table space can be created. If you choose to create the system catalog table space as a DMS table space, be aware that:

  • The minimum size of a DMS table space is five extents: three are reserved for overhead; the other extents are to store user data.
  • The extent size is defined as the number of continuous pages. An extent is the unit of space allocation within a table space.
  • Page size affects the space available; the number of pages also affects the space available.
  • In a partitioned database environment, the system catalog table space is only created on the database partition on which the CREATE DATABASE command is issued.
Answer

If you plan to use a DMS for the system catalog table space, ensure that your containers have sufficient space available to be pre-allocated.

To correct the error, choose one of the following alternatives:

  1. Increase the number of pages specified for the DMS table space by using the ALTER TABLESPACE statement. This will result in a larger allocated disk space the next time the database is started. Since the space is pre-allocated for the database, some space may be wasted for the system catalogs.
  2. Use a smaller extent size (of 2 or 4 pages), in order to allocate fewer pages for the system catalog. Since the extent size is specified only when the table space is created, however, you will need to recreate the database. Moving data from the current database to the new database must also be considered.
  3. Recreate the database using SMS table spaces for the catalog table space. The space needed by the system catalog table space is only allocated as needed. (The space to be allocated must be available on the container.) Moving data from the current database to the new database must also be considered.