Oracle-数据泵实操

前端之家收集整理的这篇文章主要介绍了Oracle-数据泵实操前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

数据泵的作用:

  • 1.实现逻辑备份和逻辑恢复
  • 2.在数据库用户之间移动对象
  • 3.在数据库之间移动对象
  • 4.实现表空间转移

数据泵的特点与传统导出导入的区别

  • 1.EXP和IMP是客户段工具程序, EXPDP和IMPDP是服务端的工具程序
  • 2.EXP和IMP效率比较低. EXPDP和IMPDP效率高
  • 3.数据泵功能强大并行、过滤、转换、压缩、加密、交互等等
  • 4.数据泵不支持9i以前版本, EXP/IMP短期内还是比较适用
  • 5.同exp/imp数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.

Oracle官方指导文档

需求描述

198测试环境的cc用户下的全量数据,需要同步到到准生产环境197一份

方案分析

数据库版本为11.2(大于Oracle10g)初步确定使用数据泵的方式从198导出后导入197数据库

操作步骤

expdp

sql 窗口下执行以下操作

1.创建逻辑目录

创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建

sql>  create directory dir_dp as '/oracle/oracle11';

2.查看目录

同时查看操作系统是否存在,如果不存在,mkdir -p 新建目录 否则出错

SELECT privilege,directory_name,DIRECTORY_PATH FROM user_tab_privs t,all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2,1;

3.给cc用户赋予在指定目录的操作权限

以system等管理员赋予

sql>  Grant read,write on directory dir_dp to cc;

4. 导出数据

使用主机的Oracle用户

用户导:

oracle@entel2:[/oracle]$expdp cc/password@//10.45.7.198:1521/cc schemas=cc directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;


...........

Dump file set for CC.SYS_EXPORT_SCHEMA_01 is:
  /oracle/oracle11/expdp_test1.dmp
Job "CC"."SYS_EXPORT_SCHEMA_01" successfully completed at Sat Aug 20 12:02:13 2016 elapsed 0 00:01:33

参数解析:

  • schemas:数据库用户别名 而非实例名
  • cc/password@//10.45.7.198:1521/cc port后面指定的是实例名 ,最前面的是用户名和密码

scp dmp 到目标主机

[root@entel2 ~]# scp expdp_198.dmp oracle@10.45.7.197:/oracle/oracle11

impdp

删除用户

sql> DROP USER cc CASCADE;

创建用户

sql>CREATE USER cc IDENTIFIED BY password
DEFAULT TABLESPACE TAB_CC;

赋予权限

sql>GRANT CONNECT,RESOURCE TO cc ;
sql>GRANT ALL PRIVILEGES TO cc ;
sql>GRANT DBA TO cc ;

使用Oracle用户导入

oracle@entel1:[/oracle]$impdp cc/password@//10.45.7.197:1521/cc schemas=cc directory=dir_dp_198 dumpfile =expdp_198.dmp logfile=expdp_198.log;

注意事项

  1. EXPDP和IMPDP是服务端的工具程序,只能在ORACLE服务端使用,不能在客户端使用

  2. 低版本是不能导入高版本dmp,需要在高版本的EXPDP导出时指定版本号导出。低版本IMPDP无需指定版本。
    例如:11.2.0.4导入到10.2.0.5

expdp username/password directory=dump_dir dumpfile=test.dmp version=10.2.0.5.0

导出导入全库

全库导出

oracle@entel2:[/oracle]$expdp \'/ as sysdba\' directory=dir_dp full=y dumpfile=fulldb.dmp parallel=2;

【开始执行........上述命令也可以增加logfile等 自行决定】
Export: Release 11.2.0.4.0 - Production on Mon Oct 24 18:47:01 2016

Copyright (c) 1982,2011,Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning,OLAP,Data Mining and Real Application Testing options
Starting "SYS"."SYS_EXPORT_FULL_01":  "/******** AS SYSDBA" directory=dir_dp full=y dumpfile=fulldb.dmp parallel=2 
Estimate in progress using BLOCKS method...
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 2.294 GB
Processing object type DATABASE_EXPORT/TABLESPACE
. . exported "ZMC"."NM_ALARM_EVENT"                      317.5 MB  467108 rows
Processing object type DATABASE_EXPORT/PROFILE
Processing object type DATABASE_EXPORT/SYS_USER/USER
Processing object type DATABASE_EXPORT/SCHEMA/USER
Processing object type DATABASE_EXPORT/ROLE
Processing object type DATABASE_EXPORT/GRANT/SYSTEM_GRANT/PROC_SYSTEM_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/ROLE_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/DEFAULT_ROLE
Processing object type DATABASE_EXPORT/SCHEMA/TABLESPACE_QUOTA
..............

PARALLEL 更改当前作业的活动 worker 的数目。PARALLEL=<worker 的数目>。指定执行导出操作的并行进程个数,默认值为1

FULL 导出整个数据库 默认为N。

全库导入

$ impdp \'/ as sysdba\' directory=dir_dp full=y dumpfile=fulldb.dmp parallel=2 table_exists_action=replace;

更多详情参考

猜你在找的Oracle相关文章