一、创建 directory 对象

create directory dir_name as 'd:/oracle_data/dir';

dir_name:对象名称,后面会用到

注意:这里只是数据库对象与文件系统对象的关联,具体文件目录仍需创建

二、将读写权限授权给一个用户

grant read,write on directory dir_name to user_name ;

dba权限的用户无需授权

三、数据泵导出 expdp

  • 进入 cmd 窗口

  • 常规导出(按用户)

expdp scott/tiger DIRECTORY=dir_name DUMPFILE=testuser_20230401.dmp schemas=testuser logfile=expdp_testuser_20230401.log

 导出中……

  • 其他导出参数

-- 按表空间导出

-- 指定表导出

-- 排除指定表

-- 压缩导出

-- 生成兼容版本的文件

-- 只导出表结构

-- 连接远程用户导出

-- 按表空间导出
 TABLESPACES=spaces1,spaces2

-- 指定表导出(不能与schemas参数同时使用)
 TABLES=schema_name.table1,schema_name.table2

-- 排除指定表(在schemas内)
 EXCLUDE=TABLE:\"IN ('table1', 'table2')\"

-- 压缩导出(源库文件过大时压缩导出便于拷贝,10g不支持压缩)
 compression=all

-- 生成兼容版本的文件(跨oracle版本迁移时,通常指定较低的数据库版本)
 version=10.2.0.1.0

-- 只导出表结构 
 CONTENT=METADATA_ONLY

-- 连接远程用户导出(注意:导出的文件仍然在远程服务器上,需要进入远程服务器的directory对象目录中查找dmp文件))
expdp system/manager@192.168.1.134/orcl ******
  • 其他命令

-- 查询数据库版本
SELECT * FROM v$version;

四、数据泵导入impdp

  • 放置dmp文件

将导出的dmp文件放到目标数据库的directory目录(如果没有则需创建,授权同理)

  • 进入 cmd 窗口

  • 常规导入(按用户)

impdp scott/tiger@orcl directory=dir_name dumpfile=testuser_20230401.dmp transform=oid:n logfile=impdp_testuser_20230401.log

 transform=oid:n  避免导入时对象标识符冲突

  • 其他导入参数

-- 变更数据库用户

-- 变更表空间

-- 变更临时表空间

-- 导入指定表

-- 排除指定表

-- 指定兼容版本导入

-- 表已存在时执行覆盖

-- 连接远程用户导出

-- 变更数据库用户
 remap_schema=dbname_source:dbname_target

-- 变更表空间
 REMAP_TABLESPACE=dbspace_source:dbspace_target 
-- 变更临时表空间
 REMAP_TABLESPACE=dbspace_temp_source:dbspace_target_temp

-- 导入指定表(schema一致时可省略schema_name)
 tables=[schema_name.]table1,[schema_name.]table2

-- 排除指定表(在schemas内)
 EXCLUDE=TABLE:\"IN ('table1', 'table2')\"

-- 指定兼容版本导入
 version=10.2.0.1.0

-- 表已存在时执行覆盖(其他,skip:跳过这个表)
 table_exists_action=replace

-- 连接远程用户导出(注意:需要提前将dmp文件放到远程服务器的directory对象目录中)
impdp system/manager@192.168.1.134/orcl ******

  • 其他问题

注意:部分版本导入时需要dmp文件名大小写一致!

阅读全文
AI总结
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐