在 Stack Overflow 的帮助下,我已经能够从本地机器导出数据库的转储文件。我使用的命令如下:
host expdp tkcsowner/tkcsowner@xe version=10.2 schemas=tkcsowner dumpfile=tnrg.dmp logfile=tnrg.log
现在,我的本地计算机具有 32 位操作系统 Windows 7。几乎没有服务器。它有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,以我的普通用户身份重新登录,然后再次执行上述所有操作。哦。
最后,所有的东西都准备好了,现在是导入 .dmp 和 .log 的时候了。嘘!
impdp tkcsowner/tkcsowner@xe schemas=tkcsowner dumpfile=TNRG.dmp logfile=tnrg.log
瞧,它要求输入用户名和密码。是因为 10g 数据库上不存在 tkcsowners 吗?无论如何,我为两者都输入了“系统”。它还在继续,但我的脑海中已经敲响了警钟。
突然:
- 连接到:Oracle 数据库 10g 快捷版版本 10.2.0.1.0 - 生产
- ORA-39002: 无效操作
- ORA-39070: 无法打开日志文件。
- ORA-29283: 无效的文件操作
- ORA-06512:在“SYS.UTL_FILE”,第 475 行
- ORA-29283: 无效的文件操作
在这一点上,我不知道如何进行。我通过命令行进入目录,并 ls -l'ed 内容,显示 .dmp 和 .log 都有三个 rwx,用于 root。我尚未尝试的是在以 root 身份登录时运行整个操作,但我不确定这会如何改变任何事情。