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

oracle 导入参数 -2

原创 不吃草的牛_Nick 2023-07-11
602

5.重映射参数
重映射参数增强了Oracle在数据导入处理过程中重映射对象的能力,这亳无疑问地标志着此实用程序比传统的导入实用程序更优越。重映射参数为REMAP_TABLES、REMAP_SCHEMA,REMAP_DATAFILE和REMAP_TABLESPACE.尽管在旧的导出和导入实用程序中也有重映射模式的能力(使用FROMUSER/TOUSER),但是不能重映射数据文件和表空间。

•REMAP_TABLE
REMAP_TABLE参数允许在使用可移植方式的导入操作中重命名表。除重命名普通的表外,还可以指定REMAP_TABLE参数,命名用可移植方式导出的分区表的各分区。这样,可以阻止Oracle赋予由数据泵导入实扇程序导入的分区和子分区默认的名字。下例说明如何指定REMAP_TABLE参数,重命名表:
$ impdp hr/HR DIRECTORY=dpump_dirl DUMPFILE=newdump.dmp TABLES=hr.employees REMAP_TABLE=hr.employees:emp

REMAP_TABLE参数在导入操作中将hr.employees表更改为hr.emp表。

•REMAP_SCHEMA
使用REMAP_SCHEMA参数,可以将对象从一个模式移动到另一个模式。需要用以下方式指定此参数:
$ impdp system/manager DUMPFILE=newdump.dmp REMAP_SCHEMA=hr:oe

在本例中,HR是源模式,数据泵导入将把用户HR的所有对象导入到目标模式OE中。导入实用程序甚至能创建OE模式,若它不在目标数据库中的话。当然,如果只想从HR模式中导出一个或多个表并将它们导入到OE模式中,也可以用TABLES参数做到。

•REMAP_DATAFIIE
当在两个不同的平台之间移动数据库时,若每个平台都有各自的文件命名约定,则REMAP_DATAFILE参数很容易改变文件系统的名字。下例说明如将文件系统从旧的Windows平台更改到新的UNIX平台上。当导出转储文件中存在对Windows文件系统的引用时,导入实用程序将自动把文件名重映射到UNIX文件系统上。
$ impdp hr/hr FULL=Y DIRECTORY=dpump_dirl DUMPFILE=db_fu11.dmp
REMAP_DATAFILE='DB1$:[HRDATA.PAYROLL]tbs6.f':'/db1/hrdata/payroll/tbs6.f'

•REMAP_TABLESPACE
有时,你贏使正在导入数据的表空间与源数据库中的表空间不同。在导入过程中,REMAP_TABLESPACE参数允许将对象从一个表空间移动到另一个表空间。在下例中,数据泵导入正将表空间example_tbs中的所有对象传送到表空间new_tbs中。
$ impdp hr/hr REMAP_TABLESPACE='example_tbs':'new_tbs' DIRECTORY=dpump_dirl
PARALLEL=2 JOB_NAME=TESTJOB_01 DUMPFILE=employees.dmp NOLOGFILE=Y

•REMAP_DATA
在将数羸导入到表中时,可指定REMAP_DATA参数重映射这些数据。例如,如果为避免与已有数据冲突而重新生成主键,可能要使用它。必须创建决定想更改的列的重映射值的重映射函数。

下面是一个例子,说明如何在导入中指定REMAP_DATA参数:
$ impdp hr DIRECTORY=dpump_dirl DUMPFILE=expschema.dmp TABLES=hr.employees REMAP_DATA=hr.employees.first_name:hr.remap.plusx

这个例子中,REMAP程序包的PLUSX函数重映射FIRST_NAME列。

•TRANSPORTABLE
TRANSPORTABLE参数允许指定,数据库在表方式的导入中是否使用可移植的选项。两个可能的值为ALWAYS和NEVER,后者为默认值。

注意,仅在指定NETWORK_LINK参数的情况下才能使用TRANSPORTABLE参数:
$ impdp system TABLES=hr.sales TRANSPORTABLE=always
DIRECTORY=dpump_dirl NETWORK_LINK=dbsl
PARTITION_OPTIONS=departition
TRANSPORT_DATAFILES=datafile_name

如果不指定TRANSPORTABLE参数,导入作业在导入中默认使用直接路径或外部表方式。

•DATA_OPTIONS
DATA_0PTI0NS参数为导入操作的DATA_OPTIONS参数的替代参数。在导入操作中,只能给此参数指定SKIP_CONSTRAINT_ERRORS值(DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS)。SKIP_CONSTRAINT_ERRORS 选项允许导入操作继续,即使数据库遇到任何非延期约束违背(nondeferred constraint violation)也是如此。

6.TRANSFORM参数
假设你正从另一个模式甚至另一个数据库中导入表,假设你想确保在导入过程中不导入对象的存储属性,而只想导入表所包含的数据,则TRANSFORM参数允许指定数据泵导入作业不导入某些存储和其他属性。使用此参数,可以从表或索引中排除STORAGE和TABLESPACE子句,或者只排除STORAGE子句。

在数据泵导入或传统的导入中,Oracle用它在导出转储文件中找到的DDL创建对象。TRANSFORM参数指示数据泵导入在导入作业中修改创建对象的DDL。

TRANSFORM参数有以下语法:
TRANSFORM = transform_name:value[:object_type]

其中各语法元素表示。
★ 转换名(transfbrm_name)。可以使用TRANSFORM_NAME部件的4个选项来修改4种基本的对象特征。以下是具体选项疫其含义。
■SEGMENT_ATTRIBUTES。段属性包括物理属性、存储属性、表空间和日志。通过指定SEGMENT_ATTRIBUTES=Y(默认值)为转换名,指示导入作业包括上述属性。这样,导入作业将包括所有4个段属性以及DDL.
■STORAGE:可以使用STORAGE=Y(默认)说明导入作业只包括对象的存储属性。
■OID:如果指定OID=Y(默认值),则在导入过程中将分配一个新的OID给对象表。
■PCTSPACE:通过给出一个正数作为该转换的值,可以增加对象的分配大小,并且数据文件大小等于PCTSPACE的值(按百分比)。
★ 值(value)。TRANSFORM参数的值可以为Y(yes)或N(no).转换名的前三个默认值为Y。这意味着,在默认时,数据泵导入对象的段属性和存储属性。可以将这些参数值设置为N。如果分配了N值,则表明不导入原来的段属性和/或存储属性。PCTSPACE转换名取一个数作为值。
★ 对象类型(object type)。对象类型指定应该转换哪些类型的对象。可以根据对TRANSFORM参数使用的转换类型,选择表、索引、表空间、类型、集群、约束,等等。如果在使用SEGMENT_ATTRIBUTES和STORAGE转换选项时未指定对象类型,则这些转换选项将适用于导入过程中的所看表和索引。

以下是使用TRANSFORM参数的例子:
$ impdp hr/hr TABLES=hr.employees
DIRECTORY=dpump_dirl DUMPFILE=hr_emp.dmp
TRANSFORM=SEGMENT_ATTRIBUTES:N:table

在该例中,SEGMENT_ATTRIBUTES转换选项的值为N,对象类型为表。该TRANSFORM参数的说明意味着导入作业将不导入任何表的已有存储属性。

7.NETWORK_LINK参数
使用新的NETWORK_LINK参数,可以通过网络执行导入而不必使用转储文件。NETWORK.LINK参数允许数据泵导入实用程斎直接连接到源数据库并将数据传递到目标数据库。如下所示:
$ impdp hr/hr TABLES=employees DIRECTORY=dpump_dirl SCHEMAS=SCOTT
EXCLUDE=CONSTRAINT NETWORK_LINK=finance

该例中,finance是网络链接。它是有效的数据库链接,是用CREATE DATABASE LINK命令预先创建的。因此,在数据库链接中显示的数据库是导入作业的源数据库。数据泵将把表employees从远程数据库finance导入运行数据泵导入作业的实例中。

在网络导入作业中,元数据API执行远程实例,提取对象定义,并在你的本地实例中重新创建必需的对象。然后从远程数据库表中提取数据,并用SQL的INSERT INTO...SELECT语句在本地实例中装载它们,如下所示:
INSERT INTO employees(emp_name,emp_id) ... SELECT (emp_name,emp_id) FROM finance

请注意,数据泵的网络导入不涉及转储文件,因为数据泵将把表从源数据库直接导入到目标数据库中。下例说明如何使用NETWORK_LINK参数执行从远程数据库到本地数据库的直接导入。
(1)在remote数据库中创建一个数据库链接:
CREATE DATABASE LINK remote
CONNECT TO system IDENTIFIED BY sammyyl
USING 'remote.world';
(2)若没有的话,创建一个数据泵目录对象:
CREATE DIRECTORY remote_dir1 AS '/u01/app/oracle/dp_dir';
(3)导出目录值,将新目录设置为默认目录:
$ export DATA_PUMP_DIR=remote_dir1
(4)用以下数据泵导入命令,从数据库local中执行网络导入: 
$ impdp system/sammyyl SCHEMAS=scott NETWORK_LINK=remote

8.闪回参数
FLASHBACK_TIME参数允许与在导出作业中指定的闪回时间相一致地导入数据。Oracle査找与指定的时间相近的SCN,并允许Flashback实用程序使用此SCN。例如,考察以下导入语句:
$ impdp system/manager FLASHBACK_TIME="TO_TIMESTAMP('01-06-2005 07:00:00', 'DD-MM-YYYY HH24:MI:SS')"

请注意,FLASHBACK_TIME参数与传统的导入实用程序中旧的CONSISTENT参数所做的工作相同。
除了可以直接指定SCN外,FLASHBACK_SCN参数类似于FLASHBACK_TIME参数。
无论使用FLASHBACK_TIME或是FLASHBACK_SCN参数,SCN在确定或导入数据一致的闪回时间中起到了关键作用。

9.交互式导入参数
所有的交互式导出参数对于交互式导入也是有效的,只有一个例外:ADD_FILE命令只对数据泵导出作业有效。与数据泵导出作业一样,当使用Ctrl+C组合键时,导入作业暂碗你将看到import>提示符,表示在这里可以输入任何交互式导入命令。



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

评论