用 expdp oracle 导出表

Posted

技术标签:

【中文标题】用 expdp oracle 导出表【英文标题】:export table with expdp oracle 【发布时间】:2021-07-24 11:16:52 【问题描述】:

我正在尝试从我的 oracle 数据库中导出一个 SID=DB034 且用户名=b034 的表。我正在使用这个命令:

expdp b034/aDmin123456789@DBB034 tables=B034.BIL_CUSTOMER_GROUP, DEPT directory=exp_test dumpfile=dump_test.dmp logfile=log_test.log

我的目录是正确的,并且我已授予 b034 用户权限。运行命令后出现此错误:

ORA-12154: TNS:could not resolve the connect identifier specified

谁能帮我解决这个问题?

【问题讨论】:

你在谷歌上搜索“ORA-12154”时发现了什么? @EdStevens说可能是数据库的IP地址和expdp要连接的IP不一样。 我不知道你发现了什么说 ORA-12154 与 IP 地址有任何关系。它没有。这意味着在 tnsnames.ora 文件中找不到您的连接字符串(在您的情况下为 DBB034)。 【参考方案1】:

ORA-12154 最常见的原因是在 TNSNAMES.ORA 文件中找不到数据库别名 (DBB034)(expdp 正在使用该文件。如果您安装了多个 Oracle 产品你的电脑,我建议你使用TNS_ADMIN环境变量。如果需要说明请说)。

这有点像老式电话 - 你想给某人打电话,但在任何电话簿中都找不到他们的名字。

那么,该怎么办?将DBB034 添加到TNSNAMES.ORA


正如您在评论中询问的那样,TNSNAMES.ORA 别名的外观如何,您在这里:

DBB034=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=11.222.33.44)        --> put host name or its IP address here
      (PORT=1521)                --> usually 1521, but doesn't have to be
    )
    (CONNECT_DATA=
      (SERVICE_NAME=dbb034)      --> lucky guess; maybe it is called differently
    )
  )

基本上,如果您不确定要在其中添加什么,请询问您的 DBA,他们知道。

【讨论】:

感谢您的回复。你能给我更多关于如何做到这一点的细节吗?或任何可以提供帮助的链接? 我贴了一个例子;看看吧。

以上是关于用 expdp oracle 导出表的主要内容,如果未能解决你的问题,请参考以下文章

基于EXPDP,IMPDP实现oracle数据的导入导出

oracle 11g expdp 备份解决空表无法备份

如何使用expdp和impdp命令将一个数据库的表空间导入到另一个数据库中?(oracle 10g)

请问怎么用exp只导出Oracle表的数据 不导出数据库的结构 谢谢

ORACLE expdp导出/导入以XX开头的所有表

impdp导入expdp导出数据库实例