quarta-feira, 21 de janeiro de 2015

ORA-01144: File size (6400000 blocks) exceeds maximum of 4194303 [Oracle];

Já devem ter visto este tipo de erro ao criar uma Tablespace.

SQL Error: 
ORA-01144: File size (6400000 blocks) exceeds maximum of 4194303 blocks
01144. 00000 -  "File size (%s blocks) exceeds maximum of %s blocks"

*Cause:    Specified file size is larger than maximum allowable size value.
*Action:   Specify a smaller size.

Esse tipo de erro ocorre quando tentamos criar uma Tablespace com um tamanho maior que o limite do Bloco (db_block_size).

É possível verificar o Tamanho do Bloco do seu Banco de Dados, pelos comandos:

show parameter DB_BLOCK_SIZE
SELECT  * FROM v$parameter
WHERE   name = lower('DB_BLOCK_SIZE');

No meu caso o Bloco do meu Banco tem o tamanho de 8192 (8kb).

 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------
db_block_size                        integer     8192

Visualizando a tabela abaixo, eu só conseguiria criar uma Tablespace de até 32GB.

db_block_size | Datafile upper limit
------------------------------------
      2kb               8GB
      4kb              16GB
      8kb              32GB
      16kb             64GB
      32kb             128GB

Porém..
Temos 2 soluções para este caso.

A primeira delas seria criar múltiplos datafiles com um tamanho menor.
A outra seria utilizar BIGFILE tablespaces (Funcionalidade que chegou no Oracle 10g).

Create BIGFILE tablespace TSD_DADOS datafile '/o1/dat/dados.dbf' size 80000M;

Abs,
Bruno Duarte.

Nenhum comentário:

Postar um comentário