我正在使用 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 操作系统,尽管这肯定与问题无关。
我已经在主机和虚拟机之间设置了一个共享目录,正如所指出的在这个问题中我已将oracle
Linux 用户添加到该组中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
。如果我尝试写入与oracle
Linux用户相同的目录,没有问题,我可以这样做
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
我无法授予r
和x
权限all users
。感谢您的阅读和帮助!
答案1
有时,在新的一天里,你对事物的看法会有所不同......
我已经添加全部用户加入组vboxsf
。并不是说我发现该解决方案特别优雅(如果有人发布它,我会接受更好的答案)。但它确实有效,而且我不太明白它的危害。
旁边的虚拟机中有两个用户oracle
,他们的 id 分别是:davfs2
和dm
。不知道他们有什么用。