执行oracle命令时Oracle虚拟盒共享文件夹

执行oracle命令时Oracle虚拟盒共享文件夹

我正在使用 Oracle Developer Days virtual box,它是 Oracle 的用于开发环境的 Linux 发行版(关联)。不确定它是什么分布,但如果它是相关的:

[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

主机是 Mac 操作系统,尽管这肯定与问题无关。

我已经在主机和虚拟机之间设置了一个共享目录,正如所指出的在这个问题中我已将oracleLinux 用户添加到该组中vboxsf(当然对答案投了赞成票)。我使用共享目录,以便使用 Oracle 的外部表将文件加载到数据库中。我有相当多的文件需要重复加载,我确实需要自动化该过程并从主机控制它。

剩下的问题是Oracle在加载文件时需要在同一个共享文件夹中写入一个新文件,基本上包括日志和无法加载的坏寄存器列表。我还需要从主机检查这些日志文件。问题:Oracle 无法写入该文件。它给出以下错误:

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.

(抱歉,语言混合,虚拟机是英语的,但我安装了西班牙语的 SQL Developer。无论如何,这是可以理解的)。

它无法写入安装在 的共享目录/media/sf_sisifo01。如果我尝试写入与oracleLinux用户相同的目录,没有问题,我可以这样做

touch /media/sf_sisifo01/restapi1/TWEET_LOAD_3205.log 如果有效的话。我的猜测是 Oracle 应该使用同一个用户。

我尝试向root用户和主机授予对共享目录的权限(尽管我怀疑主机无法控制这一点 - 无论如何我对 Linux 管理的了解非常有限) - 没有成功。

共享目录的权限如下:

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

我无法授予rx权限all users。感谢您的阅读和帮助!

答案1

有时,在新的一天里,你对事物的看法会有所不同......

我已经添加全部用户加入组vboxsf。并不是说我发现该解决方案特别优雅(如果有人发布它,我会接受更好的答案)。但它确实有效,而且我不太明白它的危害。

旁边的虚拟机中有两个用户oracle,他们的 id 分别是:davfs2dm。不知道他们有什么用。

相关内容