Original Export 逻辑导出

时间:2022-03-28 09:12:57

11gR2 官方文档参考

What is the Export Utility?

  • 导出工具提供了一种在 Oracle 数据库之间传输数据对象的简单方法,即使它们存在于在不同硬件和软件配置的平台上
  • 在 Oracle 数据库运行导出时,将提取对象(如表),然后抽取其相关对象(如 indexes、comments、grants),如果有的话
  • 导出文件通常是位于磁盘或磁带上的 Oracle 二进制格式的转储文件(dump file)。转储文件可以使用 FTP 传输或物理传输(在磁带的情况下)到不同的站点。这些文件可以与 imp 一起用在网络不通的系统上的数据库之间传输数据。除了正常的备份程序之外,这些文件还可以用作备份
  • exp 的转储文件只能由 imp 读取,imp 的版本不能早于创建该转储文件的 exp 的版本
  • 也可以显示导出文件的内容,而无需实际执行导入。为此,可以使用 imp 的 SHOW参数

    Before Using Export

  • 在开始使用导出之前,请务必注意以下几项:
  • 如果是手动创建数据库,保证 catexp.sqlcatalog.sql脚本已运行;如果使用DBCA 创建数据库,则不需要运行这些脚本
  • 确保有足够的磁盘或磁带存储来写入导出文件
  • 验证是否具有必需的访问权限

Running catexp.sql or catalog.sql
  • 要使用 exp,必须在数据库创建或迁移到较新版本之后运行脚本 catexp.sql 或catalog.sql(该脚本会运行 catexp.sql)
  • catexp.sqlcatalog.sql脚本必须在一个数据库上运行一次。该脚本执行以下任务,为导出和导入操作准备数据库:
  • 在数据字典中,创建必要的导出和导入视图
  • 创建 EXP_FULL_DATABASE 和 IMP_FULL_DATABASE 角色
  • 为 EXP_FULL_DATABASE 和 IMP_FULL_DATABASE 角色分配所有必要的权限
  • 将 EXP_FULL_DATABASE 和 IMP_FULL_DATABASE 分配给 DBA 角色
  • 记录已安装的 catexp.sql 版本

  • EXP_FULL_DATABASE 和 IMP_FULL_DATABASE 作用是强大的。数据库管理员在向用户授予这些角色时应该谨慎使用

Ensuring Sufficient Disk Space for Export Operations
  • 在运行导出之前,请确保有足够的磁盘或磁带存储空间来写入导出文件;如果没有足够的空间,exp 会因写入失败错误而终止
  • 可以使用表的大小来预估所需的最大空间,可以在 USER_SEGMENTS 视图中找到表大小。以下查询显示所有表的磁盘使用情况:
SELECT SUM(BYTES)FROM USER_SEGMENTS WHERE SEGMENT_TYPE ='TABLE';
  • 查询的结果不包括存储在LOB(大对象)或 VARRAY 列或分区表中的数据所使用的磁盘空间
Verifying Access Privileges for Export and Import Operations
  • 要使用导出,你必须具有 CREATE SESSION 的权限,该权限属于数据库创建期间建立的 CONNECT 角色。要导出其他用户的表,必须具有 EXP_FULL_DATABASE 角色,此角色授予所有的数据库管理员(DBA)
  • 如果你没有 EXP_FULL_DATABASE 角色中的系统特权,则无法导出其他用户的对象。例如,即使为其创建了同义词,也无法导出其他用户的表
  • 几个系统用户不能被导出,因为它们不是用户模式, 它们包含 Oracle 管理 的数据和元数据。不可以被导出的用户包括 SYS、ORDSYS 和 MDSYS

Invoking Export

  • 可以使用以下任一方法调用导出并指定参数:
  • 命令行模式
  • 参数文件
  • 交互模式

    Invoking Export as SYSDBA
  • SYSDBA 在内部使用并具有专门的功能, 其行为与普通用户不一样。因此,除非在以下情况下,一般不需要调用 as SYSDBA 导出:
  • 应 Oracle 技术支持的要求
  • 导入可传输表空间集时

Command-Line Entries
  • 可以使用下面的语法在命令行指定所有有效的参数及其值(您将被提示输入用户名和密码):
exp PARAMETER=value

or

exp PARAMETER=(value1,value2,...,valuen)
  • 参数个数不能超过系统命令行的最大长度
Parameter Files
  • 可以在参数文件中指定所有有效的参数及其值。将参数存储在文件中,可以轻松修改或重用,这也是调用 exp 的推荐方法。如果你为不同的数据库使用不同的参数,那么你可以有多个参数文件
  • 使用任何文本编辑器创建参数文件。命令行选项 PARFILE=filename 指示 exp 从指定文件而不是从命令行读取参数。例如:
  • 参数文件规范的语法是以下之一:
PARAMETER=value
PARAMETER=(value)
PARAMETER=(value1, value2, ...)
  • 以下示例显示了部分参数文件列表:
FULL=y
FILE=dba.dmp
GRANTS=y
INDEXES=y
CONSISTENT=y
  • 注意:参数文件的最大大小可能受操作系统的限制;参数文件的名称受操作系统的文件命名约定的约束
  • 可以通过在参数文件前加上井号(#)标志来添加注释,导出会忽略 #号右侧的所有字符
  • 可以在命令行输入参数的同时指定参数文件。实际上,你可以在两个地方指定相同的参数。PARFILE 上的参数和命令行上其他参数的位置决定了哪些参数优先。例如,假设参数文件 params.dat 包含参数 INDEXES=y,并使用以下命令调用 exp :
exp PARFILE = params.dat INDEXES = n
  • 在这种情况下,因为 INDEXES=n 发生在之后 PARFILE=params.dat,INDEXES=n 将覆盖参数文件中参数 INDEXES 的值
Getting Online Help
  • 导出提供在线帮助,在命令行上输入 exp help=y 以调用导出帮助

Export Modes

  • exp 支持四种操作模式:
  • Full:导出完整个数据库。只有具有 EXP_FULL_DATABASE 角色的用户才能使用此模式,使用参数 FULL 来指定这个模式
  • Tablespace:允许有权限的用户将一组表空间从一个 Oracle 数据库移动到另一个,使用参数 TRANSPORT_TABLESPACE 来指定这个模式
  • User:导出属于某个用户的所有对象(例如表,授予,索引和过程),使用参数 OWNER 指定此模式
  • 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 数据,子分区数据都不被压缩,导出时使用初始区大小和下一个区大小
  • 存储参数 https://docs.oracle.com/cd/E11882_01/server.112/e41084/clauses009.htm#SQLRF30013
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 的更新写到导出文件
  • 如果导出用户使用 CONSISTENT=n,TAB:P1 的更新不会写入导出文件,但TAB:P2 的更新会写入导出文件,因为更新事务是在导出 TAB:P2 开始前提交的。因此,user2 的事务只是部分记录在导出文件中,使其不一致
  • 如果使用 CONSISTENT=y 并且更新量很大,则回滚段的使用率会很大。另外,每个表的导出都会比较慢,因为回滚段必须被扫描以处理未提交的事务

  • 关于使用 CONSISTENT=y,请记住以下几点:
  • CONSISTENT=y 不支持以 SYS 用户身份进行连接S或者正在使用 AS SYSDBA,或两者 的导出
  • 某些元数据的导出可能需要在递归 SQL 中用到 SYS schema,在这种情况下,CONSISTENT=y 将被忽略。Oracle建议您避免在 CONSISTENT=y 的导出过程中进行元数据更改
  • 为了尽量减少这些导出所需的时间和空间,你应该把需要保持一致的表与那些不需要保持一致的表 分开导出导出。例如,在一致的导出中一起导出 emp和dept 表,然后再导出数据库的其余部分
  • 当回滚空间用完时,会发生 snapshot too old 错误,并且已提交的事务占用的空间将被重新用于新的事务。在回滚段中重用空间允许以最小的空间要求保留数据库完整性,但它限制了一个读一致性映像能够被保存的时间
  • 如果提交的事务已被覆盖,并且需要为数据库的读一致性视图提供信息,则会导致
    snapshot too old 错误
  • 为了避免这个错误,应该尽量减少读取一致性导出所花费的时间(通过限制导出对象的数量来实现这一点,如果可能的话,通过降低数据库事务处理速率来实现)同时,使回滚段尽可能大

CONSTRAINTS
  • 默认: y;指定 exp 导出表约束
DIRECT
  • 默认: n;指定使用直接路径导出
  • 指定 DIRECT=y,使导出通过直接读取数据来提取数据,绕过 SQL 命令处理层(评估 buffer)。这种方法可以比常规路径导出快得多
FILE
  • 默认: expdat.dmp
  • 指定导出文件的名称,默认的扩展名是 .dmp,但你可以指定任何扩展名;由于exp 支持多个导出文件,因此可以指定多个要使用的文件名。例如:
exp scott FILE = dat1.dmp,dat2.dmp,dat3.dmp FILESIZE = 2048
  • 当导出达到 FILESIZE 所指定的值时,导出停止写入当前文件,将打开 FILE 参数指定的下一个文件继续写入,直到完成或再次达到 FILESIZE 的值;如果你没有指定足够的导出文件名来完成导出,则导出会提示你提供其他文件名
FILESIZE
  • 默认值:将数据写入一个文件,直到达到 表21-3 中指定的最大值
  • exp 支持写入多个导出文件,imp 可以从多个导出文件读取。如果为 FILESIZE 参数指定一个值(字节限制),则导出将为每个转储文件写入指定的字节数
  • 当导出必须写入的数据量超过了指定的 FILESIZE,,将从 FILE 参数中获取下一个导出文件的名称,或者如果已经使用了 FILE 参数中指定的所有名称,那么它会提示你提供一个新的导出文件名;如果没有为 FILESIZE 指定值(注意 0 等于不指定FILESIZE),那么无论 FILE 参数中指定了多少文件,导出都将只写到一个文件中
  • 注意:如果导出文件的空间需求超过了磁盘可用空间,则导出将终止,并且在提供足够的磁盘空间之后,需要重新导出
  • 如表21-3所示, 转储文件的最大大小取决于正在使用的操作系统以及正在使用的 Oracle 数据库的版本

  • 也可以为 FILESIZE 指定一个数字,后跟 KB(千字节数)。例如,FILESIZE=2KB 与 FILESIZE=2048 相同。MB 指定兆字节(1024 * 1024),GB指定千兆字节(1024 ** 3)。B 仍然是字节的简写形式,FILESIZE=2048B 与 FILESIZE=2048 相同)

FULL
  • 默认: n
  • 指定 FULL= 导出整个数据库,此模式下需要 EXP_FULL_DATABASE 角色

    Points to Consider for Full Database Exports and Imports
  • 全库导出和导入可以成为复制或清理数据库的一个好方法。但是,为避免出现问题,请务必牢记以下几点:
  • 1)全库导出不会导出 SYS 用户的触发器,必须全库导入之前或之后手动重建 SYS 触发器;Oracle 建议在导入后重建它们,以防触发器定义的操作妨碍导入进度
  • 2)全库导出也不会导出 default profile,如果修改了源库中的 default profile(例如,添加了 SYS 用户拥有的密码验证功能),则在导入完成后,必须手创建函数并修改目标数据库中的 default profile
  • 3)如果可能的话,在开始之前,对导出的数据库和要导入的数据库进行物理复制。这确保了任何错误都是可逆的
  • 4)在导出开始之前,建议制作一份包含以下信息的报告:
  • 表空间和数据文件的列表
  • 回滚段的列表
  • 按用户计算每种对象类型(如表,索引等)的数量
  • 这些信息可以确保表空间已经被创建,并且导入成功
  • 5)如果您是从导出创造一个全新的数据库,然后记得在 SYSTEM 中创建一个额外的回滚段,在导入操作前,使它在初始化参数文件(init.ora) 可用
  • 6)执行导入时,请确保指向了正确的实例。这是非常重要的,因为在某些 UNIX 系统上,只要输入一个子shell 就可以改变执行导入操作的数据库
  • 7)除非已经创建了所有的表空间,否则不要在具有多个数据库的系统上执行全库导入。全库导入会使用与导出数据库数据文件名相同的名字来创建任何未定义的表空间。这可能会导致在以下情况下出现问题:
  • 如果数据文件属于任何其他数据库,则它们将被损坏。如果导出的数据库位于同一个系统上,则尤其如此,因为其数据文件将被要导入的数据库重新使用
  • 如果数据文件的名字与现有操作系统文件冲突

    GRANTS
  • 默认: y
  • 指定 exp 是否导出对象权限,导出的对象授权取决于您使用 full 模式还是用户模式。在 full 模式下,表上的所有授权将被导出;在用户模式下,仅导出表的所有者授予的权限;系统权限总是被导出

HELP
  • 默认:n
  • 显示导出参数的说明,命令行输入 exp help=y 来调用它
INDEXES
  • 默认: y
  • 指定 exp 是否导出索引
LOG
  • 默认值:无
  • 指定接收信息和错误消息文件名(如 export.log)
  • 如果指定了此参数,则消息会记录在日志文件中,也会显示在终端屏上
OBJECT_CONSISTENT
  • 默认: n
  • 指定 exp 是否使用 SET TRANSACTION READ ONLY 语句确保导出的数据在单个时间点是一致的,并且在执行 exp 命令期间不会更改;如果 OBJECT_CONSISTENT=y,则每个对象都将以其自己的只读事务导出,即使它是分区的。相反,如果使用CONSISTENT 参数,则只有一个只读事务
OWNER
  • 默认值:无
  • 指示导出是用户模式,并列出将被导出的用户。如果启动导出的用户是数据库管理员(DBA),则可以列出多个用户
  • 用户模式导出可用于备份一或多个数据库用户。例如,DBA 可能需要在一段时间内备份已删除用户的表。用户模式也适用于想要备份自己的数据或想要将对象从一个所有者移动到另一个所有者的用户

    PARFILE
  • 默认值:无
  • 指定包含导出参数的文件名

QUERY
  • 默认值:无
  • 在执行表模式导出时,这个参数可以从一组表中选择行的子集。QUERY 参数的值是一个字符串,其中包含将应用于 TABLES 参数中列出的所有表(或表分区)的 SELECT 语句的 WHERE 子句
  • 例如,如果用户 scott 只想导出工作职位是 SALESMAN,工资低于 1600 的员工,则可以执行以下操作(此示例基于UNIX):
exp scott TABLES = emp QUERY = \"WHERE job = \'SALESMAN \' and sal \ <1600 \"
  • 注意: 由于 QUERY 参数的值包含空格,因此大多数操作系统都需要整个字符串 WHERE job = \'SALESMAN \' and sal \ <1600 放在双引号中,或通过某种方法标记为字面量;操作系统保留字符也需要以转义字符开头
  • 执行此查询时,导出将生成类似于下面的SELECT 语句:
SELECT * FROM emp WHERE job ='SALESMAN'and sal <1600; 
  • 为 QUERY 参数指定的值将应用于 TABLES 参数中列出的所有表(或表分区)。例如,下面的语句将同时导出与查询相匹配的 emp 和 bonus 的行:
exp scott TABLES = emp,bonus QUERY = \"WHERE job = \'SALESMAN \'and sal \ <1600 \"
  • 同样,Export 执行的 SQL 语句与以下类似:
SELECT * FROM emp WHERE job='SALESMAN' and sal <1600;

SELECT * FROM bonus WHERE job='SALESMAN' and sal <1600;
  • 如果某个表中缺少 QUERY 子句指定的列,则会生成错误消息,并且不会为该问题表导出行
Restrictions When Using the QUERY Parameter
  • QUERY 参数不能在全库,用户或表空间模式的导出时指定
  • QUERY 参数必须适用于所有指定的表
  • QUERY 参数不能在直接路径导出(DIRECT=y)时指定
  • QUERY 参数不能为包含内部嵌套表的表指定
  • 无法从导出文件的内容中确定数据是否是 QUERY 导出的结果
RECORDLENGTH
  • 默认值:取决于操作系统
  • 指定文件记录的长度(以字节为单位),当您必须将导出文件传输到使用其他默认值的另一个操作系统时,RECORDLENGTH 参数是必需的
  • 如果没有定义这个参数,那么它默认为依赖于平台的缓冲区大小的值
  • 可以将 RECORDLENGTH 设置为等于或大于系统缓冲区大小的任何值(最高值为 64 KB),更改 RECORDLENGTH 参数只影响写入磁盘之前积累的数据大小。它不影响操作系统文件块的大小
ROWS
  • 默认: y
  • 指定是否导出表数据行
STATISTICS
  • 默认: ESTIMATE
  • 指定导出的数据被导入时要生成的数据库优化器统计信息的类型。选项是 ESTIMATE、、COMPUTE 和 NONE
  • 在某些情况下,导出会将预先计算的统计信息放到导出文件中,并且还会使用 ANALYZE 重新生成统计信息
  • 但是,如果表中具有系统生成名称的列,则在导出时将不会预计算的优化器统计信息
  • 在以下情况下,导出时预计算的优化器统计信息被标记为可疑:
  • 导出时有行错误
  • 客户端字符集或 NCHAR 字符集与服务器字符集或 NCHAR 字符集不匹配
  • 一个 QUERY 子句被指定
  • 只有某些分区或子分区被导出
  • 注意:指定 ROWS=n 不排除在导出文件中保存预先计算的统计信息,这使您可以使用来自生产数据库中的统计信息调整非生产数据库中查询计划的生成
TABLES
  • 默认值:无
  • 指定导出是表模式导出,并列出要导出的表名、分区名以及子分区名。指定表名时可以指定以下内容:
  • schemaname 指定从中导出表或分区的用户的名称。如果未指定用户名,则使用导出用户。系统用户,例如 ORDSYS、MDSYS、CTXSYS、LBACSYS、ORDPLUGINS 由 Export 保留
  • tablename 指定要导出的表的名称。表级别的导出允许您导出整个分区表或非分区表。如果列表中的表已分区,并且未指定分区名称,则将导出其所有分区和子分区;表名可以包含任意数量的模式匹配字符 '%',它可以匹配表名中的 0 或多个字符;所有相关用户中与指定模式匹配的表都会被导出,就好像在参数中显式指定了相应的表名一样
  • partition_name 表示导出是分区级别的导出,可以表中导出一或多个指定的分区或子分区
  • 语法格式如下:
schemaname.tablename:partition_name
schemaname.tablename:subpartition_name
  • 如果使用 tablename:partition_name,则指定的表必须是带去表,并且partition_name 必须是其分区或子分区之一。如果指定的表未分区,则partition_name 被忽略,并导出整个表
Table Name Restrictions
  • 以下限制适用于表名:
  • 1)默认情况下,数据库中的表名以大写形式存储。如果您的表名是大小写混合或小写形式,并且希望保留表名的大小写,则必须将该名称用引号引起来。该名称必须与存储在数据库中的表名全库匹配
  • 某些操作系统要求在命令行上的引号前加上转义字符。以下是在不同的导出模式下,如何保留区分大小写的例子
  • 在命令行模式下:
TABLES='\"Emp\"'
  • 在交互模式下:
Table(T) to be exported: "Emp"
  • 在参数文件模式下:
TABLES='"Emp"'
  • 2) 在命令行中指定的表名中不能包含 # 号,除非表名用引号引起来。同样,在参数文件中,如果表名包含 # 号,除非将表名使用引号引起来,否则 exp 会将该行的其余部分解释为注释
  • 例如,如果该参数文件包含以下行,导出会将 emp# 后面的部分解释为注释,不会导出表 dept 和 mydata:
TABLES=(emp#, dept, mydata)
  • 但是,如果是下面的行, exp 会导出这三个表,因为它们 emp# 被包含在引号中:
TABLES=("emp#", dept, mydata)
  • 3)注意:某些操作系统需要单引号而不是双引号,或者相反。不同的操作系统在表的命名上也有其他限制
TABLESPACES
  • 默认值:无
  • TABLESPACES 参数指定将表空间中的所有表导出到转储文件,包括表空间中的所有表以及具有位于表空间中的所有的表分区。索引与其表一起导出,而不管索引存储在哪里
  • 必须具有 EXP_FULL_DATABASE 角色,才能使用 TABLESPACES 导出表空间中的所有表
  • 当 TABLESPACES 与 TRANSPORT_TABLESPACE=y 一起使用时,可以指定要从数据库导出到 dump 文件的表空间列表
TRANSPORT_TABLESPACE
  • 默认: n,如果指定为 y,则此参数启用可传输表空间元数据的导出
  • 可传输表空间模式不支持加密列
  • 注意:你不能导出可传输的表空间,然后将其导入到较低版本的数据库中。目标数据库必须与源数据库的版本级别相同或更高
TRIGGERS
  • 默认: y
  • 指定 exp 是否导出触发器
USERID(用户名/密码)
  • 默认值:无
  • 指定执行导出的用户的用户名、密码和可选连接字符串;如果您省略密码,则导出会提示您输入密码
  • 如果以 SYS 用户身份连接,则还必须在连接字符串中指定 AS SYSDBA;您的操作系统可能会要求您将其 AS SYSDBA 视为特殊字符串,在这种情况下,整个字符串将用引号引起来 exp \'sys/oracle123 as sysdba\'