oracle 数据迁移之数据泵的基本使用
oracle相同数据库下跨schema的表迁移—expdp/impdp
需求:将GUIDO用户下的表迁移到SCOTT用户下
select * from dba_role_privs where GRANTEE='SCOTT';--用户角色
SQL> select * from dba_role_privs where GRANTEE='SCOTT';
GRANTEE              GRANTED_ROLE         ADM DEL DEF COM
-------------------- -------------------- --- --- --- ---
SCOTT                  CONNECT              NO  NO  YES NO
SCOTT                  RESOURCE             NO  NO  YES NO
select * from dba_sys_privs where GRANTEE='SCOTT'; --用户系统权限
GRANTEE              PRIVILEGE                                ADM COM
-------------------- ---------------------------------------- --- ---
SCOTT                  CREATE TABLE                             NO  NO
SCOTT                  CREATE VIEW                              NO  NO
SCOTT                  DEBUG CONNECT SESSION                    NO  NO
SCOTT                  DEBUG ANY PROCEDURE                      NO  NO
SCOTT                  CREATE DATABASE LINK                     NO  NO
select * from dba_tab_privs where GRANTEE='SCOTT'; --用户表级权限
GRANTEE    OWNER      TABLE_NAME                     GRANTOR    PRIVILEGE  GRA HIE COM TYPE
---------- ---------- ------------------------------ ---------- ---------- --- --- --- ------------------------
SCOTT        SYS        SYS_PLSQL_DA3FBA35_644_1       SYS        EXECUTE    YES NO  NO  TYPE
SQL> select username,default_tablespace from dba_users where account_status='OPEN';
USERNAME                              DEFAULT_TABLESPACE
------------------------------------------------------------------ 
ZABBIX                                ZABBIX
SYSTEM                                SYSTEM
SYS                                   SYSTEM
SCOTT                                 SCOTT_DATA01
GUIDO                                 GUIDO_DATA01
5 rows selected.
SQL> col SEGMENT_NAME for a30
SQL> select s.segment_name,s.tablespace_name from  dba_segments s,dba_indexes i where s.segment_name=i.index_name and i.owner='SCOTT';
SEGMENT_NAME                   TABLESPACE_NAME
------------------------------ ------------------------------
FK_ID                          SCOTT_DATA01
IDX_DUDECT_INFO_REQ_DATE       SCOTT_DATA01
IDX_T_DU_RES                   SCOTT_DATA01
PK_BORROWER_AGENCY           SCOTT_IDX01
PK_BORROWER_BANKCARD         SCOTT_IDX01
PK_BORROWER_COMPANY          SCOTT_IDX01
PK_BORROWER_FINANCE          SCOTT_IDX01
PK_BORROWER_INFO             SCOTT_IDX01
PK_CONFIG                    SCOTT_IDX01
PK_DUDECT_AGREEMENT          SCOTT_IDX01
PK_DUDECT_AGREEMENT_TEMP     SCOTT_IDX01
PK_DUDECT_BATCH_LOG          SCOTT_IDX01
PK_DUDECT_INFO               SCOTT_IDX01
PK_DUDECT_RESULT             SCOTT_IDX01
PK_LOAN_REQUEST              SCOTT_IDX01
PK_LOAN_RESULT               SCOTT_IDX01
PK_MESSAGE                   SCOTT_IDX01
PK_SYS_EXCEPTION             SCOTT_IDX01
T_AGREEMENT_ELE              SCOTT_DATA01
T_AGREEMENT_ELE              SCOTT_IDX01
20 rows selected.
SQL> select * from dba_directories;
OWNER      DIRECTORY_NAME            DIRECTORY_PATH                                     ORIGIN_CON_ID
---------- ------------------------- -------------------------------------------------- -------------
SYS        ORACLE_HOME               /                                                              0
SYS        ORACLE_BASE               /                                                              0
SYS        OPATCH_LOG_DIR            /data/app/oracle/product/12.1.0/db_1/QOpatch                   0
SYS        OPATCH_SCRIPT_DIR         /data/app/oracle/product/12.1.0/db_1/QOpatch                   0
SYS        OPATCH_INST_DIR           /data/app/oracle/product/12.1.0/db_1/OPatch                    0
SYS        DATA_PUMP_DIR             /data/app/oracle/admin/hbhsdb/dpdump/                          0
SYS        XSDDIR                    /data/app/oracle/product/12.1.0/db_1/rdbms/xml/schema             0
SYS        ORACLE_OCM_CONFIG_DIR     /data/app/oracle/product/12.1.0/db_1/ccr/hosts/WG-             0
                                     HOUBANK-DHDB01/state
OWNER      DIRECTORY_NAME            DIRECTORY_PATH                                     ORIGIN_CON_ID
---------- ------------------------- -------------------------------------------------- -------------
SYS        XMLDIR                    /data/app/oracle/product/12.1.0/db_1/rdbms/xml                 0
SYS        ORACLE_OCM_CONFIG_DIR2    /data/app/oracle/product/12.1.0/db_1/ccr/state                 0
SYS        DIR_AUTO_BACKUP           /data/app/oracle/auto_backup                                   0
SYS        EXPDP_DIR                 /data/backup                                                   0
12 rows selected.
赋予目录权限:
SQL>grant read,write on directory EXPDP_DIR to system;
导出:
expdp system/manager schemas=SCOTT directory=EXPDP_DIR dumpfile =SCOTT_expdp.dmp logfile=SCOTT_expdp.log;
导入:
相同的schema
impdp system/manager schemas=SCOTT directory=EXPDP_DIR dumpfile =SCOTT_expdp.dmp logfile=SCOTT_impdp.log;
不同的schema
impdp system/manager schemas=SCOTT remap_schema=SCOTT:GUIDO directory=EXPDP_DIR dumpfile =SCOTT_expdp.dmp logfile=SCOTT_expdp.log;
impdp system/manager directory=EXPDP_DIR dumpfile=ELEMENT.dmp logfile=ELEMENT_impdp.log remap_schema=guido:scott remap_tablespace=GUIDO_DATA01:SCOTT_DATA01,GUIDO_IDX01:SCOTT_IDX01,GUIDO_TEMP:SCOTT_TEMP
#需要映射的schema的默认表空间、索引表空间、默认临时表空间
扩展知识点:
一:映射关系REMAP_SCHEMA、REMAP_TABLESPACE、REMAP_DATAFILE
	1、REMAP_SCHEMA 
	该选项用于将源方案的所有对象装载到目标方案中:REMAP_SCHEMA=source_schema:target_schema 
	2、REMAP_TABLESPACE 
	将源表空间的所有对象导入到目标表空间中:REMAP_TABLESPACE=source_tablespace:target:tablespace 
	3、REMAP_DATAFILE 该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项. 
	REMAP_DATAFIEL=source_datafie:target_datafile
二、expdp中TABLE_EXISTS_ACTION参数
	当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提供给我们如下四种处理方式:
	a.忽略(SKIP,默认行为);
	b.在原有数据基础上继续增加(APPEND);
	c.先DROP表,然后创建表,最后完成数据插入(REPLACE);
	d.先TRUNCATE,再完成数据插入(TRUNCATE)。
例如:
impdp system/manager schemas=GUIDO directory=EXPDP_DIR dumpfile=SCOTT_expdp.dmp logfile=SCOTT_impdp.log TABLE_EXISTS_ACTION=SKIP
三、低版本不能导入高版本的dmp文件,需要在高版本的EXPDP导出时指定版本号,低版本IMPDP无需指定版本。 
例如:11.2.0.4导入到10.2.0.5
expdp system/manager schemas=GUIDO directory=EXPDP_DIR dumpfile=SCOTT_expdp.dmp version=10.2.0.5.0
四、远程数据泵导出数据
expdp system/manager@//10.100.7.198:1521/hsdg schemas=SCOTT directory=EXPDP_DIR dumpfile =SCOTT_expdp.dmp logfile=SCOTT_expdp.log;
impdp system/manager@//10.100.7.197:1521/hsdg schemas=SCOTT directory=EXPDP_DIR dumpfile =SCOTT_expdp.dmp logfile=SCOTT_impdp.log;
hsdg为数据库连接字符串的名称
五:parfile文件的使用-导出多个表
expdp parfile= parfile.txt
vi parfile.txt
userid=system/xxxxxx
schemas=ELON
directory=EXPDP_DIR
dumpfile=del_table_20180424.dmp
logfile=del_table_20180424.log
include=TABLE:"IN(
'TEST4',
'TEST3',
'TEST3'
省略若干表.......
)"
六:QUERY查询条件的EXPDP/IMPDP
按查询条件只导出一张表,发现不需要加schema=的条件,只需要在tables=前面加上schema即可
expdp system/xxxxxx directory=DUMPDIR dumpfile=scott.dmp tables=scott.emp query=scott.emp:\" where creation_date\>"'23-OCT-12'"\"
按查询条件也可以同时导出两张表,只需要在tables=中逗号隔开两表,query=中逗号隔开两张表的查询条件即可
expdp system/xxxxxx directory=DUMPDIR dumpfile=scott.dmp tables=scott.BH1WZZK0,scott.BH2WZZK0 query=scott.BH1WZZK0:\" where zctjrq0 like ‘2013%’"\",scott.BH2WZZK0:\" where zctjrq0 like ‘2013%’"\"
导入到异机:
impdp SYSTEM/manager dumpfile=201611182.dmp directory=ODPDIR table_exists_action=append
impdp SYSTEM/mds_ets.2009 remap_schema=dh:dahai_demo remap_tablespace=dh:dahaidata_demo dumpfile=2015dh.dmp directory=DUMPDIR
impdp system/xxxxxx directory=DUMPDIR dumpfile=scott.dmp remap_schema=dh:dahai_demo remap_tablespace=dh:dahaidata_demo
oracle expdp query 泵出表部分数据
cat >exp.par<<EOF
directory=DUMPDIR
dumpfile=scott.dmp
tables=(scott.emp,scott.dept)
query=(scott.emp:"where empno<=888",
       scott.dept:"where empno>=666")
EOF
expdp \'/ as sysdba\' parfile=exp.par
七:排除某些表的EXPDP/IMPDP
expdp system/xxxxxx directory=DATA_PUMP_DIR dumpfile=scott.dmp logfile=scott.log schemas=scott EXCLUDE=TABLE:\"IN\'TABLE1\',\'TABLE2\',\'TABLE3\'\"
impdp到schema为scott2,tablespace为scott2的用户,已经排除某些表的2015dh.dmp文件的impdp导入
impdp SYSTEM/xxxxxx remap_schema=scott:scott2 remap_tablespace=scott:scott2 dumpfile=scott.dmp directory=DUMPDIR
oracle 数据迁移之数据泵的基本使用的更多相关文章
- laravel中的数据迁移和数据填充
		
laravel中的数据迁移和数据填充 标签(空格分隔): php 生成迁移文件两种方式: 1 新建一个表的迁移文件 php artisan make:migration create_students ...
 - Oracle数据迁移-系统数据合并笔记
		
创建临时表:execute immediate 'sql'; 通过临时表和关联查询解决循环处理效率低下,大数据操作移植时时间太长的问题. 结构相同的系统数据库表移植,案例如下: create or r ...
 - oracle 定期迁移分区表数据(不落地)
		
[oracle@SJ ~]$ cat /home/oracle/JY_SJ.sh #!/bin/bashsource /home/oracle/.bash_profileSDATE=$(date + ...
 - oracle在线迁移同步数据,数据库报错
		
报需要升级的错误,具体处理步骤如下: 一.错误信息 SQL> alter database open ;alter database open resetlogs*ERROR at line 1 ...
 - laravel框架总结(十四) -- 数据迁移和数据填充
		
一.数据迁移 1.创建一个迁移 1>使用artisan命令make:migration来创建一个新的迁移: php artisan make:migration create_sutdents_ ...
 - 物化视图(materialized view) 实现数据迁移、数据定时同步
		
近日公司有一个9i 的Oracle数据库,运行效率低下.想要将其升级到11G. 但是升级之前 要将数据进行同步,好在表不是很多.只有三张表.业务压力也不大,就想到了使用物 化视图的方式将数据同步过来. ...
 - 阿里云Linux服务器,挂载硬盘并将系统盘数据迁移到数据盘
		
因为之前用宝塔上线,宝塔只挂载了系统盘50G,打开阿里云云盘列表发现系统盘无法直接升级,故另买一块数据盘挂载到Linux服务器下,下面根据网上教程再结合我实际情况讲解一下实际操作,其实非常easy l ...
 - laravel模型建立和数据迁移和数据填充(数据填充没有成功)未完
		
开始创建我们的第一个 Article 模型及其对应迁移文件了,我们在项目根目录运行如下 Artisan 命令一步到位: php artisan make:model Article -m -m 是 - ...
 - 一种可以避免数据迁移的分库分表scale-out扩容方式
		
原文地址:http://jm-blog.aliapp.com/?p=590 目前绝大多数应用采取的两种分库分表规则 mod方式 dayofweek系列日期方式(所有星期1的数据在一个库/表,或所有?月 ...
 
随机推荐
- 第一章:Java语言概述与环境开发
			
1.计算机高级语言按程序的执行方式可以分为编译型和解释型两种: 2.JAVA程序的执行过程必须经过先编译后解释两个步骤: 3.JAVA语言里负责执行字节码文件的是JAVA虚拟机 (Java Virtu ...
 - C++边双缩点,Redundant Paths 分离的路径
			
一道比较简单的 关于边双的题,个人感觉难度不大. 求出整个图的边双,根据边双的定义我们可以延伸出 边双的任两个点都有至少两种路径来互相抵达(因为其不存在割边) .不妨将每个边双缩成一个点,样例中的图便 ...
 - 003--PowerDesigner创建索引与外键
			
PowerDesigner创建索引与外键 一.创建索引 双击Table->Columns->创建索引 Step1:双击Table Step2:选择Columns->创建索引 弹出如下 ...
 - 20190905 Lombok常用注解
			
Lombok常用注解 val 用于声明类型,将从初始化表达式推断出类型,仅适用于局部变量和foreach循环,而不适用于字段.声明的局部变量为final变量. Java自带类型推断随着JDK版本提升越 ...
 - git篇之二----团体项目中使用git
			
上篇说了git的简单入门,本篇来说一下在团体项目中我们该如何简单使用git 一般来说,当我们进入公司之后,就前端项目而言,若是有多个同事共同开发一个系统,我们可能会每个人去负责各自的模块. 若是人员较 ...
 - python列表-使用
			
一.列表用于循环 1.for循环 2. in 和 not in 3.多重赋值
 - [BZOJ 1483] [HNOI2009] 梦幻布丁 (线段树合并)
			
[BZOJ 1483] [HNOI2009] 梦幻布丁 (线段树合并) 题面 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1 ...
 - Django之视图(V)
			
Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...
 - poj_3179 Corral the Cows (二分+二维前缀和+离散化)
			
[题目链接] http://poj.org/problem?id=3179 [参考] http://www.cnblogs.com/evenbao/p/9243183.html [算法] 二分答案+判 ...
 - html表格单元格添加斜下框线的方法
			
一.分隔单元格的方法 1.用“transform: rotate(-55deg);”把一条水平线旋转一定角度就成斜线了 2.利用以下命令调整分割线位置等. :after :before transfo ...