在堆栈溢出的帮助下,我已经能够从我的本地机器导出数据库的转储文件。我使用的命令如下:从Oracle 11g导入.dmp文件到10g返回错误“无法打开日志文件”
host expdp tkcsowner/[email protected] version=10.2 schemas=tkcsowner dumpfile=tnrg.dmp logfile=tnrg.log
现在,我的本地机器的操作系统Windows 7,32位。几乎没有服务器。它有Oracle 11g。我想将它转移到另一台运行Linux的测试服务器。它有Oracle 10g。
我绝不是Linux/Unix专家,但我确实有一些处理此类问题的人留给我的指导。
首先,我通过'su - '将权限更改为root用户 - 没有问题。
以'sqlplus/nolog'登录,然后'connect sys/sys @ xe as dba' - 没有问题。
我创建的逻辑转储目录(不知道是否需要这一步,但我就是这么做的):
create or replace directory dumpdir as 'usr/lib/oracle/xe/app/oracle/admin/XE/dpdump';
做,没有问题。
所以我认为TNRG.dmp和tnrg.log应该在该目录内。不幸的是,由于某种原因,它不能被复制。拒绝访问。我想我应该注销,以root身份登录,并从那里复制这些内容。它起作用了,但为了安全起见,我退出了root用户,以普通用户身份登录,并且再次执行了所有操作。 D'哦。
最后,随着所有的东西到位,现在是时候导入.dmp和.log。好哇!
impdp tkcsowner/[email protected] schemas=tkcsowner dumpfile=TNRG.dmp logfile=tnrg.log
瞧,它要求输入用户名和密码。是否因为tkcsowners在10g数据库中不存在?无论如何,我为两者都提供了“系统”。它继续,但警告铃已经在我脑海中掀起。
突然:
- 连接到:Oracle数据库10g Express Edition的发布10.2.0.1.0 - 生产
- ORA-39002:无效的操作
- ORA-39070:无法打开日志文件。
- ORA-29283:无效的文件操作
- ORA-06512:在 “SYS.UTL_FILE”,线路475
- ORA-29283:无效的文件操作
在这一点,我不确定如何继续。我通过命令行进入了目录,并且ls -l了内容,显示.dmp和.log都有三个rwx,用于root用户。我还没有尝试的是以root身份登录时运行整个操作,但我不确定这会如何改变任何内容。
你需要让用户运行的实例你的日志写入该目录的所有者。 – haki
对不起,我没有明白;我没有写日志(我认为),它已经在目录中。如果你的意思是以root用户身份(服务器上唯一的其他用户)这样做,那么“su - ”是否已经这样做?再次,对不起,我不是Linux专家。 –
导出日志与导入过程无关;你还没有需要复制该日志。该错误正在与导入过程的新日志相关联。但是当你创建目录对象时,你真的把它设置为''usr/lib/oracle/...'而不是'/ usr/lib/oracle/...'吗?缺少主导斜线会使路径无效并可能导致此类错误。 –