Não é recomendável aumentar o limite do descritor de arquivo global, pois isso pode fazer com que os programas de 32 bits falhem, a menos que tenham conhecimento sobre como usar os descritores de arquivo > 255, consulte: enable_extended_FILE_stdio(3C)
.
Portanto, talvez seja melhor apenas chamar a base de dados oracle por meio de um script de shell que primeiro faz as chamadas ulimit
necessárias para configurar os limites e, em seguida, chamar o banco de dados.
Deixe-me mostrar um conjunto típico de limites do Solaris que pode ser recuperado com o Bourne Shell (como no meu exemplo). Observe que usar ksh93
não é útil aqui, pois o ksh93 inclui informações de outros recursos que não são configuráveis. Este é o padrão no Solaris:
LC_ALL=C ulimit -aSH
-t: time(seconds) unlimited:unlimited
-f: file(blocks) unlimited:unlimited
-d: data(kbytes) unlimited:unlimited
-s: stack(kbytes) 10240:unlimited
-c: coredump(blocks) unlimited:unlimited
-n: nofiles(descriptors) 256:65536
-v: memory(kbytes) unlimited:unlimited
Como você pode ver, todos os valores padrão são maiores que os valores requeridos, exceto os descritores de arquivos abertos. Não tenho certeza se o limite rígido da pilha deve ser reduzido.
Se você gosta de modificar os valores, escreva um script de shell e digite isto:
ulimit -nS 1024
Isso eleva o limite do descritor de arquivo flexível para 1024 e resulta em um novo limite:
-n: nofiles(descriptors) 1024:65536
Se você precisar reduzir o limite de pilha, insira também:
ulimit -sH 32768
Isso reduziu o limite de pilha para 32 MB e resulta em:
-s: stack(kbytes) 10240:32768
Depois disso, insira o comando para iniciar a base de dados oracle no script e, em seguida, execute este script.