- 浏览: 57005 次
- 性别:
- 来自: 上海
文章分类
最新评论
使用EXPDP和IMPDP时应该注意的事项:
EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。
expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
create directory dpdata1 as 'd:\test\dump';
二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dpdata1 to scott;
把A的权限给B
先进入到A中 connect A/A的密码;grant all privileges to B with admin option;这样就授权了 你试试吧 我试过了的 通过了
四、导出数据
1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
2)并行进程parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;
4)按查询条件导
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
五、还原数据
1)导到指定用户下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改变表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEM
===================================================================
expdp SSS_BUS/SSS_BUS@SSS_BUS dumpfile=SSS_BUS_20140428.dmp schemas=SSS_BUS
impdp SSS_BUS_06/SSS_BUS_06@SSS_BUS dumpfile=SSS_BUS_20140428.DMP
remap_schema :在数据库中,每个表的定义前都会带有该数据库的用户名,如果导出的数据库和导入的数据库是一个名称的,则此参数可忽略
如果前后名称不一致,则用冒号(":")分隔开,前面是旧数据库名,后面是新数据库名
用有管理权限的用户进行登录
sqlplus SSS_BUS/SSS_BUS@SSS as SYSDBA
彻底删除该用户的信息。
drop user SSS_BUS cascade;
创建一个新的用户
create user SSS_BUS identified by SSS_BUS default tablespace USERS temporary tablespace TEMP;
把基本的权限赋给这个用户
grant connect to SSS_BUS;
grant resource to SSS_BUS;
grant SYSDBA to SSS_BUS;
grant read,write on directory DATA_PUMP_DIR to SSS_BUS;
grant exp_full_database to SSS_BUS;
===============================================================
注意点
expdp SYSTEM/ORCL schemas=SSS_BUS DIRECTORY=dpdata2 dumpfile=expdp.dmp;
impdp SYSTEM/ORCL DIRECTORY=dpdata2 dumpfile=expdp.dmp REMAP_SCHEMA=SSS_BUS:SSS_BUS_01
导入的时候疑问用户名称不同要加上 REMAP_SCHEMA 前面上原来导出用户名后面的是要导入的用户名称
要放在文件的前面要不然会报错
impdp SSS_BUS/SSS_BUS@SSS_DEV8 dumpfile=SSS_BUS_20140605.DMP remap_schema=SSS_BUS:SSS_BUS_03
[@SSS_DEV8]追加是客户端和服务端不在同一个电脑上使用
---------------------------------
http://blog.chinaunix.net/uid-7530389-id-2050081.html 问题点
--------------------------------------------
DOS下数据库的导入导出:
只要在oracle的net manager中把oracle的服务连接配置好,在本地・服务器侧都可以执行导出・导入。
但是不管在本地,还是在服务器端执行命令,导入导出的文件都要放到服务器侧的目录里。
net manager中的配制方法请参照【設定】
データエクスポート
expdp dbUserId/dbPassword@ServiceName dumpfile=backupFileName.dmp schemas=dbName
例 expdp SSS_BUS/SSS_BUS@SSS_BUS dumpfile=SSS_BUS_20140428.dmp schemas=SSS_BUS
expdp SSS_BUS/SSS_BUS@SSS_DEV8 dumpfile=SSS_IM_2014_7_24.dmp schemas=SSS_IM
データインポート
impdp dbUserId/dbPassword@serviceName dumpfile=backupFileName.dmp remap_schema=oldDbName:newDbName
remap_schema :在数据库中,每个表的定义前都会带有该数据库的用户名,如果导出的数据库和导入的数据库是一个名称的,则此参数可忽略
如果前后名称不一致,则用冒号(":")分隔开,前面是旧数据库名,后面是新数据库名
例 impdp SSS_BUS/SSS_BUS@SSS_DEV8 dumpfile=SSS_BUS_20140605.DMP remap_schema=SSS_BUS:SSS_BUS_03
impdp IMART8_SSS_DEV/IMART8_SSS_DEV@SSS_DEV8 dumpfile=IMART8_SSS_DEV.DMP REMAP_SCHEMA=IMART8_SSS_DEV:IMART8_SSS_DEV_INTERN
ユーザ作成
在数据导入时,如果数据库中已经存在了同名的表,则在数据库导入时会发生错误。这时最好把该用户清空,或者把此用户删掉,重新创建数据库用户
在cmd下进行以下操作。
① 用有管理权限的用户进行登录
sqlplus SSS_BUS/SSS_BUS@SSS as SYSDBA
② 彻底删除该用户的信息。
drop user SSS_BUS cascade;
③ 创建一个新的用户
create user IMART8_SSS_DEV_INTERN identified by IMART8_SSS_DEV_INTERN default tablespace USERS temporary tablespace TEMP;
④ 把基本的权限赋给这个用户
grant connect to IMART8_SSS_DEV_INTERN;
grant resource to IMART8_SSS_DEV_INTERN;
grant SYSDBA to SSS_BUS; 这个权限太大了,其实不给也可以,看情况。
grant read,write on directory DATA_PUMP_DIR to IMART8_SSS_DEV_INTERN;
grant exp_full_database to IMART8_SSS_DEV_INTERN;
逻辑目录
在进行上面的导入导出操作时,如果不指定操作目录,默认指向目录【DATA_PUMP_DIR 】
当然自己也可以创建目录,指向自己创建的目录。
一、创建逻辑目录,该命令不会在操作系统创建真正的目录(请先创建真正的目录),最好以system等管理员创建逻辑目录。
登陆数据库
conn system/manger@orcl as sysdba conn system/manger@orcl as sysdba
创建目录
create directory dump_dir as 'd:\test\dump';
二、查看创建好的目录(同时查看操作系统中该目录是否存在,因为oracle并不关心该目录是否存在,假如不存在,则出错)
select * from dba_directories;
三、给用户(即上面的dbUserId)赋予读写该目录的权限。(导出时需要向这个目录写文件,导入时需要从这个目录读文件)
grant read,write on directory dump_dir to scott;
四、上面的导入导出操作默认指向【DATA_PUMP_DIR】,也可以指向上面自己刚定义的目录,只要在导入导出时加上下面的语句就可以了。
expdp dbUserId/dbPassword@serviceName directory = dump_dir dumpfile=backupFileName.dmp schemas=dbName
impdp dbUserId/dbPassword@serviceName directory = dump_dir dumpfile=backupFileName.dmp remap_schema=oldDbName:newDbName
当然也可以不指定目录,
expdp dbUserId/dbPassword@serviceName dumpfile=c:\oracle\backupFileName.dmp schemas=dbName
EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。
expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
create directory dpdata1 as 'd:\test\dump';
二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dpdata1 to scott;
把A的权限给B
先进入到A中 connect A/A的密码;grant all privileges to B with admin option;这样就授权了 你试试吧 我试过了的 通过了
四、导出数据
1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
2)并行进程parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;
4)按查询条件导
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
五、还原数据
1)导到指定用户下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改变表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEM
===================================================================
expdp SSS_BUS/SSS_BUS@SSS_BUS dumpfile=SSS_BUS_20140428.dmp schemas=SSS_BUS
impdp SSS_BUS_06/SSS_BUS_06@SSS_BUS dumpfile=SSS_BUS_20140428.DMP
remap_schema :在数据库中,每个表的定义前都会带有该数据库的用户名,如果导出的数据库和导入的数据库是一个名称的,则此参数可忽略
如果前后名称不一致,则用冒号(":")分隔开,前面是旧数据库名,后面是新数据库名
用有管理权限的用户进行登录
sqlplus SSS_BUS/SSS_BUS@SSS as SYSDBA
彻底删除该用户的信息。
drop user SSS_BUS cascade;
创建一个新的用户
create user SSS_BUS identified by SSS_BUS default tablespace USERS temporary tablespace TEMP;
把基本的权限赋给这个用户
grant connect to SSS_BUS;
grant resource to SSS_BUS;
grant SYSDBA to SSS_BUS;
grant read,write on directory DATA_PUMP_DIR to SSS_BUS;
grant exp_full_database to SSS_BUS;
===============================================================
注意点
expdp SYSTEM/ORCL schemas=SSS_BUS DIRECTORY=dpdata2 dumpfile=expdp.dmp;
impdp SYSTEM/ORCL DIRECTORY=dpdata2 dumpfile=expdp.dmp REMAP_SCHEMA=SSS_BUS:SSS_BUS_01
导入的时候疑问用户名称不同要加上 REMAP_SCHEMA 前面上原来导出用户名后面的是要导入的用户名称
要放在文件的前面要不然会报错
impdp SSS_BUS/SSS_BUS@SSS_DEV8 dumpfile=SSS_BUS_20140605.DMP remap_schema=SSS_BUS:SSS_BUS_03
[@SSS_DEV8]追加是客户端和服务端不在同一个电脑上使用
---------------------------------
http://blog.chinaunix.net/uid-7530389-id-2050081.html 问题点
--------------------------------------------
DOS下数据库的导入导出:
只要在oracle的net manager中把oracle的服务连接配置好,在本地・服务器侧都可以执行导出・导入。
但是不管在本地,还是在服务器端执行命令,导入导出的文件都要放到服务器侧的目录里。
net manager中的配制方法请参照【設定】
データエクスポート
expdp dbUserId/dbPassword@ServiceName dumpfile=backupFileName.dmp schemas=dbName
例 expdp SSS_BUS/SSS_BUS@SSS_BUS dumpfile=SSS_BUS_20140428.dmp schemas=SSS_BUS
expdp SSS_BUS/SSS_BUS@SSS_DEV8 dumpfile=SSS_IM_2014_7_24.dmp schemas=SSS_IM
データインポート
impdp dbUserId/dbPassword@serviceName dumpfile=backupFileName.dmp remap_schema=oldDbName:newDbName
remap_schema :在数据库中,每个表的定义前都会带有该数据库的用户名,如果导出的数据库和导入的数据库是一个名称的,则此参数可忽略
如果前后名称不一致,则用冒号(":")分隔开,前面是旧数据库名,后面是新数据库名
例 impdp SSS_BUS/SSS_BUS@SSS_DEV8 dumpfile=SSS_BUS_20140605.DMP remap_schema=SSS_BUS:SSS_BUS_03
impdp IMART8_SSS_DEV/IMART8_SSS_DEV@SSS_DEV8 dumpfile=IMART8_SSS_DEV.DMP REMAP_SCHEMA=IMART8_SSS_DEV:IMART8_SSS_DEV_INTERN
ユーザ作成
在数据导入时,如果数据库中已经存在了同名的表,则在数据库导入时会发生错误。这时最好把该用户清空,或者把此用户删掉,重新创建数据库用户
在cmd下进行以下操作。
① 用有管理权限的用户进行登录
sqlplus SSS_BUS/SSS_BUS@SSS as SYSDBA
② 彻底删除该用户的信息。
drop user SSS_BUS cascade;
③ 创建一个新的用户
create user IMART8_SSS_DEV_INTERN identified by IMART8_SSS_DEV_INTERN default tablespace USERS temporary tablespace TEMP;
④ 把基本的权限赋给这个用户
grant connect to IMART8_SSS_DEV_INTERN;
grant resource to IMART8_SSS_DEV_INTERN;
grant SYSDBA to SSS_BUS; 这个权限太大了,其实不给也可以,看情况。
grant read,write on directory DATA_PUMP_DIR to IMART8_SSS_DEV_INTERN;
grant exp_full_database to IMART8_SSS_DEV_INTERN;
逻辑目录
在进行上面的导入导出操作时,如果不指定操作目录,默认指向目录【DATA_PUMP_DIR 】
当然自己也可以创建目录,指向自己创建的目录。
一、创建逻辑目录,该命令不会在操作系统创建真正的目录(请先创建真正的目录),最好以system等管理员创建逻辑目录。
登陆数据库
conn system/manger@orcl as sysdba conn system/manger@orcl as sysdba
创建目录
create directory dump_dir as 'd:\test\dump';
二、查看创建好的目录(同时查看操作系统中该目录是否存在,因为oracle并不关心该目录是否存在,假如不存在,则出错)
select * from dba_directories;
三、给用户(即上面的dbUserId)赋予读写该目录的权限。(导出时需要向这个目录写文件,导入时需要从这个目录读文件)
grant read,write on directory dump_dir to scott;
四、上面的导入导出操作默认指向【DATA_PUMP_DIR】,也可以指向上面自己刚定义的目录,只要在导入导出时加上下面的语句就可以了。
expdp dbUserId/dbPassword@serviceName directory = dump_dir dumpfile=backupFileName.dmp schemas=dbName
impdp dbUserId/dbPassword@serviceName directory = dump_dir dumpfile=backupFileName.dmp remap_schema=oldDbName:newDbName
当然也可以不指定目录,
expdp dbUserId/dbPassword@serviceName dumpfile=c:\oracle\backupFileName.dmp schemas=dbName
发表评论
-
DDL DML
2015-03-26 22:38 594http://blog.csdn.net/w183705952 ... -
oracle 连接 中的 ON 和WHERE
2014-11-25 17:24 671前提准备 CREATE TABLE A_TEST ( ... -
oracle UNION 和 UNION ALL
2014-11-25 17:04 535前提贮备 CREATE TABLE A_TEST ( ... -
oracle 连接
2014-11-25 16:29 441前提准备: 表的创建: CREATE TABL ... -
抽取oracle 所有表
2014-10-19 22:51 651package db; import java.io ... -
oracle中的数据库、用户、方案、表空间、表对象之间的关系
2014-06-06 09:32 673文章来源:http://blog.csdn.net/blogn ... -
oracle 聚合函数 keep
2013-12-24 17:33 4665聚合函数MIN, MAX, SUM, AVG, COUNT, ... -
Oracle merge into 命令
2013-12-20 09:33 704原文:http://jayklin.iteye.com/blo ... -
oracle 分析函数over
2013-12-19 16:22 679copy:http://www.cnblogs.com/wuy ...
相关推荐
oracle数据备份工具,主要对oracle数据库进行自动备份
数据备份专家是一款专为ORACLE数据库管理人员设计的,能够自动完成 ORACLE 数据库逻辑备份操作的软件。它封装了 ORACLE 自带的 EXP 数据导出工具和 IMP 数据导入工具,在设定好定时时间及其它信息后,每天在设定的...
oracle 数据备份工具源代码
一个orcle数据库备份工具 只要指定好用户名,密码和实例名称 还有备份文件放的路径 双击执行 就可以了 很方便简单
Oracle 数据库 对数据库的表进行修改有如下几点 1. 列的添加,修改和删除 添加列 Alter table•••add Alter table table_name add (new_colum_name datatype [default value] [not null]) 修改列类型 Alter table...
Oracle数据备份与容灾方案.pptx
oracle数据备份:用记事本写的oracle数据库的备份程序,只要自己定义“用户名/密码 文件存放位置”,即可直接使用。
oracle数据备份 三步导出进行数据库
强大的oracle数据备份和恢复工具,支持oracle的三种模式(全数据库,用户,表)的计划或即时的备份和恢复。工作平台为windows系统,可以备份和恢复本机的基于windows平台的oracle数据库或者远程的基于windows平台...
Oracle数据备份,教你怎样备份数据库,详细解读。
oracle数据备份与还原.pdf
Oracle数据备份&恢复,数据库的数据操作
oracle数据备份恢复笔记,包括常规备份恢复和Rman备份恢复以及闪回
Oracle数据备份与恢复,Oracle数据备份与恢复
Oracle数据备份JAVA源码 LOVO专业JAVA培训:
ORACLE数据备份,工具方便,能按计划进行数据库的备份
oracle数据备份与恢复精华资料.pdf
试论Oracle数据备份与恢复.pdf
基于PL_SQL包的Oracle数据备份引擎的设计与实现的原理和实践成果。