如何从 Oracle 11g XE 导出“数据库”并将其导入 Oracle 10.2?

Posted

技术标签:

【中文标题】如何从 Oracle 11g XE 导出“数据库”并将其导入 Oracle 10.2?【英文标题】:How do I export a 'database' from Oracle 11g XE and import it to Oracle 10.2? 【发布时间】:2013-07-28 21:54:37 【问题描述】:

到目前为止,我从未对 Oracle 数据库做过任何严肃的事情。我知道它们与我处理过的不同,比如 MS SQL。

因此,从 MS SQL 的角度来看,我可以备份数据库,将 .bak 文件复制到另一台服务器,然后恢复它,创建数据库的完整副本。

我不确定如何为 Oracle 做同样的事情,更不用说不同的版本了。我已经看到它主要是用命令行完成的,所以我尝试了这个:

$exp owner/owner schemas=tkcsdb directory=dumpdir dumpfile=dBaseName logfile=dBaseLog

然后 SQL Plus 返回:

未知的参数名称“架构”。 处理参数失败。 导出未成功终止。

我已经用“模式”替换了“模式”(同样的错误),我想尝试使用“表”,但我不确定结果如何。如果 'tkcsdb' 是我正在寻找的 数据库 的名称,我什至不是 100% - 我无法列出我拥有的所有 数据库

我想做的事情(我已经用 MS SQL、mysql 甚至 IBM DB2 完成了所有事情)看起来很难在 Oracle 中复制。

如题,

我使用的是 Windows 7,目标机器是某种 Linux Fedora。

【问题讨论】:

【参考方案1】:

EXP 和 IMP 是古老的 - 除非万不得已,否则不要使用它们。它们无法处理较新 Oracle 版本的某些功能。

选择的工具是 EXPDP 和 IMPDP(EXP datapump 和 IMP datapump 的缩写)。

不幸的是,使用它们有点复杂,因为您只能在数据库服务器上运行它们(与旧式 EXP/IMP 不同,您可以在任何客户端计算机上运行)。

因此,要将架构从 11g 源数据库转移到 10g 目标数据库,您必须:

在 11g 数据库服务器上打开一个终端会话 运行 expdp 并将版本设置为 10(以便您可以在 10g 服务器上导入它) 将转储文件从 11g 服务器复制到 10g 服务器的 datapump 目录(查找名为“dpump”的目录) 在 10g DB 服务器上打开一个终端会话 使用您的转储文件运行 impdp

例子:

expdp scott/tiger@db11g version=10.2 schemas=SCOTT dumpfile=SCOTT.dmp logfile=expdpSCOTT.log

impdp scott/tiger@db10g schemas=SCOTT dumpfile=SCOTT.dmp logfile=impdpSCOTT.log

【讨论】:

我尝试使用“tkcsdb”作为模式,确信它是“数据库”的名称。它没有用。看看你的例子,你也把'scott'放在那里。所以我输入了'tkcsowner'。你叫什么 scott / tkcsowner,你如何将它们与 MS SQL 中的术语进行比较?无论如何,它做到了。谢谢。但它确实返回了一个错误:“密码将在 7 天内过期。”这是我应该关心的事情吗?另外,由于没有目录,数据库会将 .dmp 文件转储到哪里? Scott 或 tkcsowner 是数据库“用户”。每个数据库用户都有自己的“模式”,其中该用户的对象“活动”(术语用户和模式在 Oracle 术语中或多或少是同义词)。您确实应该担心密码过期错误 - 只需更改密码(您也可以更改与此用户关联的配置文件,以便密码永不过期)。数据库会将转储文件放在 datapump 目录中(除非您使用 directory 参数指定一个,但对于初学者,我建议坚持使用默认的 datapump 目录)。 tkcsowner/tkcsowner@db11g。我忘了添加 db11g。奇怪的是,它继续备份就好了。但是,当我使用 db11g 再次执行此操作时,它返回错误:无法解析指定的连接标识符。 如果您遇到新问题,请发布新问题。

以上是关于如何从 Oracle 11g XE 导出“数据库”并将其导入 Oracle 10.2?的主要内容,如果未能解决你的问题,请参考以下文章

如何把Oracle 11g导出的数据库导入到12c里面

安装 Oracle 数据库 11g 时检查 Oracle XE 服务实例失败我该怎么办

Oracle 11g XE 试用记录

PLSQL Developer12连接远程Oracle xe 11g

oracle 11g怎样配置才能连接远程数据库

如何将 oracle 11g 用户导出到 10g 和不同的默认表空间