私は開発環境のためにOracleのLinuxディストリビューションであるOracle Developer Days virtual boxを使用しています。協会)。どの分布なのかは不明ですが、関連がある場合:
[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 OSですが、問題とはまったく関係ありません。
指摘したように、ホストと仮想マシン間に共有ディレクトリを設定しました。この質問には私は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
。 Linuxユーザーと同じディレクトリに書き込もうとするとoracle
問題はありません。
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
。この解決策が特にエレガントであるとは考えていません(誰かが投稿するとより良い答えを受け入れるでしょう)。しかし、効果があり、そのダメージをよく理解していません。
隣の仮想マシンには2人のユーザーがおり、oracle
そのIDdavfs2
はとですdm
。彼らが何のためであるのかわかりません。