A caixa virtual do Oracle compartilha pastas ao executar o comando oracle

1

Estou usando a caixa virtual Oracle Developer Days, que é uma distribuição Linux da Oracle para ambientes de desenvolvimento ( link ). Não tem certeza de qual distribuição é, mas no caso de ser relevante:

[oracle@localhost ~]$ lsb_release -a
LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: EnterpriseEnterpriseServer
Description:    Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Release:        5.5
Codename:       Carthage

O host é o Mac OS, embora isso certamente não seja relevante para o problema.

Eu configurei um diretório compartilhado entre o host e o vm, e como apontado nesta questão Adicionei oracle usuário do Linux ao grupo vboxsf (votei positivamente na resposta). Estou usando o diretório compartilhado para carregar arquivos no banco de dados usando as tabelas externas do Oracle. Eu tenho alguns arquivos para carregar repetidamente e eu realmente preciso automatizar o processo e controlá-lo a partir do host.

O problema restante é que o Oracle, ao carregar o arquivo, precisa gravar um novo arquivo na mesma pasta compartilhada, basicamente incluindo um log e uma lista de registros ruins que não puderam ser carregados. Eu também precisaria verificar esses arquivos de log do host. O problema: o Oracle não pode gravar o arquivo. Dá o seguinte erro:

ORA-29913: error al ejecutar la llamada de ODCIEXTTABLEOPEN
ORA-29400: error de cartucho de datos
error opening file /media/sf_sisifo01/restapi1/TWEET_LOAD_3205.log
29913. 00000 -  "error in executing %s callout"
*Cause:    The execution of the specified callout caused an error.
*Action:   Examine the error messages take appropriate action.

(Desculpe pela mistura de idiomas, o vm está em inglês, mas eu instalei o SQL Developer em espanhol. De qualquer forma, é bem compreensível).

Não é possível gravar no diretório compartilhado, que é montado em /media/sf_sisifo01 . Se eu tentar escrever no mesmo diretório com o usuário oracle Linux, não há problema, eu posso fazer

touch /media/sf_sisifo01/restapi1/TWEET_LOAD_3205.log e se funciona. E meu palpite é que o Oracle deveria estar usando o mesmo usuário.

Eu tentei dar permissões para o diretório compartilhado tanto do root user quanto do host (embora eu suspeite que o host não possa controlar isso - de qualquer forma meu conhecimento de administração do Linux é bastante limitado) - sem sucesso.

As permissões para o diretório compartilhado são as seguintes:

[oracle@localhost ~]$ ls -l /media/sf_sisifo01 
total 200
drwxrwx--- 1 root vboxsf   476 Mar 30 09:08 restapi1

e não consigo conceder r e x permissões para all users . Obrigado pela leitura e pela sua ajuda!

    
por lrnzcig 30.03.2015 / 22:28

1 resposta

0

Às vezes, em um novo dia, você vê as coisas de maneira diferente ...

Eu adicionei todos usuários ao grupo vboxsf . Não que eu ache a solução particularmente elegante (eu aceito uma resposta melhor se alguém postar isso). Mas funciona e não vejo bem o mal.

Havia dois usuários na vm ao lado de oracle , e seus IDs são: davfs2 e dm . Não faço ideia do que eles usam.

    
por 01.04.2015 / 11:09