Saturday, February 15, 2025

ORA-00058: DB_BLOCK_SIZE must be 16384 to mount this database

This error may be returned during different scenarios; however, the root cause may be the same. I was trying to use duplicate command to build a database from backup of another database that had default block size of 16k. Since 8k is default block size of an Oracle database, we MUST specify db_block_size in the init file of the auxiliary instance to the same block size of the source database we are using to build this new database. After I modified the value of this parameter to 16384 in the init file of the auxiliary instance, error did not appear on second attempt of DUPLICATE database command and I was able to build the new database.

Another scenario could be having db_block_size wrongly set in the parameter file for the database you are trying to start. For the following example, my database block size is 8192 and if I try to start database with db_block_size set to 16384, ORA-00058 would be returned. Instance would be left in NOMOUNT state and would not MOUNT or OPEN until correct value is set.

SQL> startup pfile=d:\init.ora
ORACLE instance started.

Total System Global Area 4462739320 bytes
Fixed Size                  9277304 bytes
Variable Size             889192448 bytes
Database Buffers         3556769792 bytes
Redo Buffers                7499776 bytes

ORA-00058: DB_BLOCK_SIZE must be 8192 to mount this database (not 16384)

No comments:

Post a Comment

Popular Posts - All Times