Original Export 逻辑导出 (2)

Table:导出特定的表和分区。有权限的用户可以通过指定包含它们的 schema 来限定表。对于未指定 schema 的表,exp 默认为执行该导出操作的用户;使用参数 TABLES 来指定这个模式

exp 不会导出使用延迟段创建、并且还没有段的表;创建段最常见的方法是将一行存储到表中,但其他操作(如 ALTER TABLE ALLOCATE EXTENTS)也可以创建一个段;如果该表存在段并且该表已导出,则 SEGMENT CREATION DEFERRED 子句不会包含在由 imp 执行的 CREATE TABLE 语句中

Table-Level and Partition-Level ExportTable-Level and Partition-Level Export

你可以通过以下方式导出表,分区和子分区:

表级别导出:导出指定表中的所有数据

分区级别导出:仅导出来自指定源分区或子分区的数据

在表级别导出中,可以导出整个表(分区或非分区)及其索引和其他依赖于表的对象。如果表被分区,则其所有分区和子分区也被导出。这适用于直接路径导出和常规路径导出。您可以在任何导出模式下执行表导出

在分区级别导出中,可以导出一个或多个指定分区或表的子分区,只能在表模式下执行分区导出

Export Parameters BUFFER

默认值:取决于操作系统

指定用于获取行的缓冲区的大小(以字节为单位)。因此,此参数决定 exp 获取的数组中的最大行数。使用以下公式来计算缓冲区大小:

buffer_size = rows_in_array * maximum_row_size

如果指定了 0 ,那么 exp 一次只获取一行

有 LOBs,LONG,BFILE,REF,ROWID,LOGICAL ROWID 或 DATE 类型的表一次只获取一行

注意:BUFFER 参数仅适用于常规路径导出,它对直接路径导出没有影响;对于直接路径导出,请使用 RECORDLENGTH 参数指定 exp 写入导出文件时使用的 buffer 大小

示例:计算缓冲区大小

创建表:

CREATE TABLE sample(name varchar(30),weight number);

name 列的最大大小是30,加上 indicator 的2个字节;weight 列的最大大小是22(Oracle 数字的内部表示的大小),加上 indicator 的2个字节

因此,最大行大小是56(30 + 2 + 22 + 2)

要执行一个 100 行的数组操作,应指定 5600 的缓冲区大小

COMPRESS

默认:y

指定 exp 和 imp 如何管理表数据的初始区(initial extent)

默认情况下 COMPRESS=y,在导入时会将表数据合并到一个初始区。如果区大小很大(例如,由于 PCTINCREASE 参数),则分配的空间将大于容纳数据所需的空间

如果指定 COMPRESS=n,则 exp 使用当前的存储参数,包括 初始区大小和下一个区大小的值。参数的值可以是 CREATE TABLE 或 ALTER TABLE 指定的值,也可以是由数据库系统修改的值。例如,如果表增长且 PCTINCREASE 参数非零,则可以修改 NEXT 区大小的值

COMPRESS 参数不适用于位图表空间

注意:即使实际合并是在导入时执行的,但 COMPRESS 参数只能在导出时指定,而不能在导入时指定,exp(而不是 imp)生成数据定义,包括存储参数定义。因此,如果导出时指定 COMPRESS=y ,则只能以合并形式导入数据

LOB 数据,子分区数据都不被压缩,导出时使用初始区大小和下一个区大小

存储参数

STORAGE ({ INITIAL size_clause | NEXT size_clause | PCTINCREASE integer } ) CONSISTENT

默认: n

指定 exp 是否使用 SET TRANSACTION READ ONLY 语句确保导出的数据在单个时间点是一致的,并且在执行 exp 命令期间不会更改。如果预估其他应用程序会在导出启动后更新目标数据,应该指定 CONSISTENT=y

如果使用 CONSISTENT=n,那么每个表通常在单个事务中导出。但是,如果表包含嵌套表,则将外部表和每个内部表作为单独的事务导出。如果一个表被分区,那么每个分区都作为单独的事务导出

因此,如果其他应用程序正在更新嵌套表和分区表,则导出的数据可能不一致。为了尽量减少这种可能性,在更新没有完成的时候导出这些表

表 21-2 显示了两个用户的一系列事件:user1 导出表中的分区,user2 更新该表中的数据

如果导出用户使用 CONSISTENT=y,则不会将 user2 的更新写到导出文件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzggpy.html