oracle 数据库迁移expdp,impdp(数据泵导出导入)方法

  1. 一.优缺点

  2. 优点:

  3. 1.高效性能

    • expdp,impdp 使用并行技术,可以显著提高导出导入速度,尤其适用于大数据量的迁移。

    • 支持压缩和加密,减少导出文件的大小并提高安全性。

  4. 2.灵活的对象选择

    • 可以导出整个数据库、特定表空间、用户(Schema)或单个表。

    • 支持过滤条件,例如只导出特定表的数据或元数据。

  5. 3.跨平台兼容性

    • 支持跨平台迁移(例如从 Linux 到 Windows),但需要注意字节序(endianness)问题。

  6. 4.元数据和数据分离

    • 可以单独导出元数据(如表结构)或数据,便于灵活处理

缺点:

  1. 1.依赖目录对象

    • 导出文件必须存储在数据库服务器上的目录对象中,不能直接导出到客户端。

  2. 2.资源占用较高

    • 导出过程中会占用较多的 CPU 和 I/O 资源,可能影响生产环境的性能

  3. 3.不支持跨字节序迁移

    • 如果源端和目标端的字节序不同(例如从 AIX 到 Linux),需要使用额外的工具(如 XTTS)进行转换。

二. 详细操作步骤:

一、源端操作

1、操作系统准备工作

  • 创建导出的dump文件的目录并赋予权限

操作系统目录/u01/app/oracle/dpump,并且Oracle用户有读写权限

主要是用来存放导出数据库的内容

[oracle@oramig ~]$ mkdir -p /u01/app/oracle/dpump

2、数据库层面创建目录

SQL> create directory dpump_dir as '/u01/app/oracle/dpump';

Directory created.

SQL> grant read, write on directory dpump_dir to system;

Grant succeeded.

3.用数据泵expdp

  • 使用expdp工具导出源端数据库的元数据和数据。

  • [oracle@oramig ~]$ expdp system/123456@source_db schemas=zjr directory=dpump_dir dumpfile=zjr.dmp logfile=expdp_zjr.log

  • 参数说明

    • system/123456:数据库用户名和密码。

    • source_db:源端数据库的连接字符串。

    • schemas=zjr:指定导出的用户模式(schema)。

    • directory=dpump_dir:指定存放导出文件的目录对象。

    • dumpfile=zjr.dmp:导出的数据泵文件名。

    • logfile=expd——zjr.log:导出日志文件名。

二、传输操作

[oracle@oramig ~]$ scp /u01/app/oracle/dpump/zjr.dmp oracle@192.168.91.220:/u01/app/oracle/dpump/

参数说明:oracle1@192.168.91.220  其中oracle1是目标数据库端的主机名,192.168.91.220是目标数据库端的IP地址

当然在执行scp之前要确保目标数据库端的系统存在/u01/app/oracle/dpump/   目录

三、目标端操作

1、目标端创建用户、表空间、权限

SQL> create user zjr identified by zjr;

User created.

SQL> grant connect,resource to zjr;

Grant succeeded.

2.

创建目录对象

  • 在目标端数据库中创建一个目录对象,用于存放导入的数据泵文件。

  • SQL> create directory dpump_dir as '/u01/app/oracle/dpump';

    Directory created.

    SQL> grant read, write on directory dpump_dir to system;

    Grant succeeded.

3.使用impdp导入数据

  • 使用impdp工具将导出的数据导入目标端数据库。

  • [oracle1@oracle2 admin]$ impdp system/123456@target_db schemas=zjr directory=dpump_dir dumpfile=zjr.dmp logfile=impdp_zjr.log 

4. 验证数据一致性

  1. 对象验证

    • 使用以下SQL查询目标端数据库的对象数量,并与源端对比

      SELECT object_type, COUNT(*) FROM dba_objects WHERE owner = 'zjr' GROUP BY object_type;
  2. 数据验证

    • 使用以下SQL查询目标端数据库的数据行数,并与源端对比:

      SELECT table_name, num_rows FROM dba_tables WHERE owner = 'zjr';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值