15 de agosto de 2014

ORA-01144: File size (12800000 blocks) exceeds maximum of 4194303 blocks

Hoy durante la creación de un Tablespace con tres datafiles de 100G en mi base de datos se generó el error "ORA-01144: File size (12800000 blocks) exceeds maximum of 4194303 blocks". Es por eso que se analiza el error y se describe como resolver el problema.

Oracle tiene limites con el db_block_size, dependiendo del db_block_size se puede crear datafiles hasta un tamaño en especifico, como se detalla a continuacion:
db_block_size    Datafile upper limit
-------------     --------------------
2kb               8GB
4kb               16GB
8kb               32GB
16kb              64GB
32kb              128GB
Revisando el parámetro en la base de datos se tiene lo siguiente:
SQL> show parameter db_block_size

NAME                                 TYPE        VALUE
----------------------------------   ---------   ---------------
db_block_size                        integer     8192
Su valor corresponde a 8kb, por lo tanto el tamaño máximo para crear un datafile es definido por la formula db_block_size*4194303 (expresado en bits), en el escenario presentado solo puedo crear datafile de tamaño maximo hasta de 32Gb.

La solución para este escenario consiste en crear múltiples datafiles para el tablespace mencionado con un tamaño más pequeño o igual al soportado. La otra alternativa es utilizar tablespaces de archivo grande (Bigfile tablespaces).

Paulo Ticona

Referencias:
http://docs.oracle.com/cd/E11882_01/server.112/e25513/limits002.htm#REFRN0042