gpt4 book ai didi

linux - Oracle 无法读取全局可访问 (777) 转储文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:37 24 4
gpt4 key购买 nike

我正在尝试导入 Oracle 转储文件,尽管授予了文件的全局 rwx 权限,但在运行导入时我仍然遇到权限错误。

这是我经历的整个过程:

# Create the dump directory with the dump file, and grant 777 permissions
mkidr -p /home/vagrant/dump
mv /home/vagrant/data.dmp /home/vagrant/dump
chmod -R 777 /home/vagrant/dump

# Check the file permissions

# drwsrwsrwx. vagrant vagrant dump
# -rwxrwxrwx. vagrant vagrant dump/data.dmp

# Add the directory to Oracle
sqlplus system/vagrant
CREATE DIRECTORY DUMP_DIR AS '/home/vagrant/dump';
exit

# Try importing the data
impdp system/vagrant dumpfile=data.dmp directory=DUMP_DIR nologfile=y

然后开始敲击键盘...

Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-31640: unable to open dump file "/home/vagrant/dump/data.dmp" for read
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 13: Permission denied
Additional information: 3

注意:我完全知道这些权限和密码对安全性来说很糟糕,但由于我只是想对公开可用的数据集进行一些实验分析,所以我并不在意。

最佳答案

我认为问题在于您的脚本说的是 mkidr 而不是 mkdir

这样,您不会创建目录,当您将文件移动到假定的目录时,它只会重命名文件,使其显示为(作为文件,而不是目录)/home/vagrant/dump 具有正确的权限(开头的 d 字符除外),当然,您不能在其中搜索文件,因为它不是目录,而是文件。这也将阻止 oracle 成功执行 CREATE DIRECTORY DUMP_DIR AS '/home/vagrant/dump'; 因为那里有一个同名的文件。

顺便说一句,要访问一个文件,您不仅需要文件 inode 中的读取权限,还需要在路径后跟的所有目录中执行 x 权限(在本例中为 /home, /home/vagrant and /home/vagrant/dump ---最后一个是文件,不是目录--- ).在这种情况下,必须检查的是 ora(运行 oracle 的用户)用户。

我建议你模拟用户 ora 并尝试读取文件,如果这不起作用,从数据库运行的相同目录,并使用与它用于的相同路径打开文件。

关于linux - Oracle 无法读取全局可访问 (777) 转储文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33875835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com