1. Oracle数据泵(Dump)导出、导入
Oracle数据泵导出和导入的操作步骤如下:
一、本地操作
创建并授权目录对象:
导出数据:
导入数据:
二、不落地导入
配置连接信息:
使用remote_db_link导入远程表:
以上步骤涵盖了Oracle数据泵在本地操作和不落地导入的基本流程。在实际操作中,需要根据具体的需求和环境进行相应的调整。
2. 【Oracle篇】Oracle数据泵-impdp和expdp
在数据库迁移的场景中,Oracle数据泵(impdp和expdp)成为了常用工具。下面详细讲解这两部分操作。
导出: expdp
在导出操作中,首先定义变量是关键,例如`expdp sams/standing_book DIRECTORY=directory DUMPFILE=standing_book_test01.dmp`。这将导出表`sams.standing_book`至名为`standing_book_test01.dmp`的文件。注意,使用此方法生成的文件可能体积庞大,可增加`compression=all`参数进行压缩。避免重复执行,如需重复,可添加`statistics=none`以覆盖原文件。在RAC集群模式下,使用`cluster=N`指定当前机器进行导出。
优化导出效率,可使用`parallel=4`参数开启4个进程,提高速度。确保与`mpfile=...%U.dmp`结合使用或有多个表同时导出。若指定`TABLES=table1,table2...`则能导出多张表。使用`INCLUDE`可指定导出特定对象,如`SEQUENCE,FUNCTION,PROCEDURE,VIEW,TABLE`等。对于导出特定表空间,`TABLESPACES=system`可实现。若需将整个数据库导出,则使用`FULL=Y`。
参数通常直接写入命令行,但也可在`xx.par`文件中实现,简化操作并避免转义符问题。`parfile`参数用于指定par文件,多个条件可用`,`隔开,其他参数也可在此添加。
导入: impdp
对于`impdp`操作,使用`schemas=sams`导入`expdp.dmp`文件中属于`sams`用户的对象。通过`remap_schema=sams,samswf`参数,将`fpri_butnm`表从`sams`用户迁移到`samswf`用户下,若目标表存在,则会覆盖。导入时,可指定`tablespace=system`将数据导入至特定表空间。同样,`impdp`支持`xx.par`文件形式,同时支持从`dmp`文件中直接查询数据进行导入。
常用参数还包括:
1. `logfile`: 指定日志文件路径。
2. `filesize`: 设置单个文件的最大值,与`mpfile`参数配合使用。
3. `content`: 控制导出或导入内容的范围,有三个级别:全部(ALL)、数据(DATA_ONLY)、元数据(METADATA_ONLE),默认为ALL。
4. `version`: 主要用于跨版本间导数据,高版本向低版本导出时使用。
5. `sqlfile`: 将`dmp`文件中的元数据语句提取至单独的SQL文件中,而非直接导入数据库。
6. `schemas`: 指定导出或导入特定用户,实际上是用户下的对象。
7. `table_exists_action`: 控制导入时表存在时的处理方法,如追加(append)、删除数据(truncate)、跳过(skip)、替换(replace)。
8. `exclude`: 排除不需要导出的内容。
通过上述详细解析,您可以更高效地使用Oracle数据泵进行数据库的导出与导入操作。