暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle 数据泵文件简单说明-2

原创 不吃草的牛_Nick 2023-07-08
282

创建目录并授予了必要的权利后,所有的数据泵导出和导入作业都可使用DIRECTORY参数指定目录对象名(DIRECT0RY=dpump_d1rl)。这样,DIRECTORY参数将间接指向实际的操作系统目录和文件。如下所示:
expdp salapati/password DIRECTORY=dpump_dir1 dumpfile=testexp01.dmp

如果某用户试图使用expdp或impdp实用程序而DBA没有预先创建并授予目录上的权限,该用户将出错,这表示Oracle不能找到目录对象,因而不能启动数据泵作业。

由未说明的目录对象所引起的数据泵错误
C:> expdp hr/hr
ORA-39002: invalid operation
ORA-39070:Unable to open the log file.
ORA-39145:directory object parameter must be specified and non-null

为了使数据泵实用程序知道在哪里放置或获得其导出或导入作业的数据,需要在使用expdp和impdp客户机时指定位置信息。正如所述,不能对数据泵作业使用绝对目录路径位置,而必须始终使用目录对象。在一个实际作业中,可以用以下几种方法指定目录对象名。
★ DIRECTORY参数。在一个数据泵导出作业中,可使用DIRECTORY参数指定目录对象:
$ expdp hr/hr DIRECTORY=dpump_dirl ...

★ DIRECTORY:FILE表示法。为代替使用DIRECTORY参数,可以将目录对象名包含在一个特定的数据泵文件(转储文件、日志文件或SQL文件)的值中。使用冒号(:)隔开文件说明中的目录和个别文件名。在下例中,dpump_dir2 是目录对象名,salapati.log为数据泵文件名:
$ expdp LOGFILE=dpump_dir2:salapati.log ...
★ DATA_DUMP_DIR环境变量。还可以使用环境变量DATA_DUMP_DIR指向服务器的目录对象。为了使用DATA_DUMP_DIR环境,必须先在服务器上创建一个特定点目录对象。

例如,首先在麻务器上用变量DATA_DUMP_DIR创建一个新的目录对象,然后使用export命令保存操作系统环境中的DATA_DUMP_DIR变量值。DATA_DUMP_DIR变量成为操作系统环境的一部分后,执行数据泵导出时,就不需要明确指定(通过使用DIRECTORY)实际目录名(本例中为data_dump_dir2).只需要为DUMPFILE参数指定名字(而非位置),如下例所示。

首先,如下创建目录data_dump_dir2对象:
CREATE DIRECTORY data_dump_dir2 AS '/u01/app/oracle/datapump/dumpfiles_02';

接着,用值data_dump_dir2导出环境变量DATA_DUMP_DIR:
$ export DATA_PUMP_DIR data_dump_dir2

现在,可以执行导出而不用明确使用DIRECTORY参数,因为其值己被保存在DATA_DUMP_DIR环境变量中。只需使用DUMPFILE参数,employees.dmp文件将放在目录/u01/app/oracle/datapump/dumpfiles_02中。
$ expdp salapati/password TABLES=employees DUMPFILE=employees.dmp

文件位置的优先次序
我们已经了解了指定数据泵作业的目录对象的各种方法,但是,你可能想知道在出现冲突时Oracle如何选择位置。可能会遇到这样的情况:已经指定了DATA_DUMP_DIR环境变量,但是后来又为导出作业指定了DIRECTORY参数。以下是目录对象的优先次序。
(1)Oracle检查是否将目录名包含在一个与文件有关的参数内(如LOGFILE参数)。请记住,在这些情况下,目录对象与文件名用冒号(:)分开。
(2)Oracle的第二个选择是检査是否在导出或导入过程中用DIRECTORY参数指定了目录对象(DIRECTORY=dpump_dir1...)。如果明确指定了DIRECTORY参数,则不需要把目录名作为与文件有关的参数的成分来使用。
(3)如果未明确使用目录对象或未使用DIRECTORY参数,Oracle检査数据泵导出和导入客户机是否正在使用环境变量DATA_DUMP_DIR.
(4)最后,Oracle检査是否存在一个默认的基于服务器的目录对象DATA_DUMP_DIR.正如前面说明的,在创建新数据库,或者升级相应版本时,Oracle自动创建该目录。鬲注意,默认的DATA_DUMP_DIR对象只对DBA和其他授权用户可用。

目录对象名的解析意味着Oracle知道它应该使用哪个目录读写文件。但是,必须授予用户操作系统级的数据库读/写权限,以允许数据库实际使用操作系统文件。



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论