A partir da versão 9.1C o Progress passou a permitir que arquivos do banco de dados ultrapassem o tamanho de 2GB. Esta característica está disponível apenas na licença Enterprise RDBMS e não é automática, ela precisa ser habilitada no banco de dados.
Quando esta capacidade não foi habilitada e uma extensão do banco alcançar o tamanho de 2GB as seguintes mensagens de erro são registradas no log do banco:
<function>:Insufficient disk space during <system call>, fd <file descriptor>, len <bytes>, offset 2147467264, file <file-name>. (6091)
bkxtn: write error, file <file-name> errno: <number>. (3646)
SYSTEM ERROR: File <file-name> too small <length>, blocksize <blocksize> extend failed." (4524)
Unable to extend data files enough to proceed. (6743)
SYSTEM ERROR: Attempted to exceed maximum size on file <pname>. (9452)
É possível verificar se esta capacidade foi habilitada no banco de dados através da opção DESCRIBE do comando PROUTIL, conforme o exemplo a seguir:
proutil nome_do_banco -C describe
Database Features
ID Feature Active
---- --------------- ---
5 Large Files Yes
A opção DESCRIBE funciona apenas a partir da versão 10.1B.
Quando o banco é habilitado com esta capacidade, a seguinte mensagem fica registrada no log do banco de dados:
Large database file access enabled for database . (9425)
Existem duas formas para habilitar esta característica no banco de dados. Uma delas é definir o tamanho de uma extensão do banco com tamanho maior que 2GB no arquivo de estrutura (.st) e ela será habilitada durante a criação do banco de dados. A outra é executar o comando a seguir em qualquer momento após o banco de dados ser criado:
proutil nome_do_banco –C EnableLargeFiles
o comando acima não é case-sensitive.
Antes das versões 9.1E e 10.0B, a única forma de desabilitar esta característica era recriar o banco através de dump e load. A partir destas versões é possível realizar esta tarefa com os comandos PROCOPY e PROREST, desde que os bancos de destino sejam previamente criados sem a opção habilitada. Se os bancos de destino não existirem, os comandos PROCOPY e PROREST preservarão as configurações das bases originais, ou seja, criarão os bancos de destino também com a opção Large Files habilitada, caso ela exista na origem.
Quando habilitar esta opção na base de dados deve-se observar com mais atenção o consumo de espaço nos discos onde as extensões estão armazenadas, pois o Progress não limitará mais estes arquivos e o seu tamanho poderá atingir grandes valores, limitado apenas pelo espaço em disco e pelos limites de cada sistema operacional. Deixar que extensões de before-image aumentem de tamanho sem um limite é perigoso. Aqui cabe a leitura deste post do Adriano sobre a administração do arquivo de before-image.