时间:2021-07-01 10:21:17 帮助过:22人阅读
expdp acl/kingdom898@kingt1 directory=dir schemas=acl dumpfile=ACL.DMP logfile=acl.log
导入: impdp acl/kingdom898@kingt1 directory=dir schemas=acl dumpfile=ACL.DMP logfile=acl.log注意:导出语句后面不要有分号
Oracle数据导入导出之imp/exp与Expdp/impdp
需要进行oracle数据库数据导入导出的时候,我们只需要将数据泵的命令写一个批处理脚本就可以方便的进行数据的操作。比如在windows下写一个.bat文件,或在linux下写一个.sh文件,在其中添加以下想要的命令执行即可。但expdp/impdp只能在数据库所在的服务器上执行导入导出命令。
exp/imp已经很好用了,但是唯一的缺点是速度太慢,从Oracle 10g开始提供了称为数据泵新的工具expdp/impdp,它为Oracle数据提供高速并行及大数据的迁移。
imp/exp可以在客户端调用,但是expdp/impdp只能在服务端,因为在使用expdp/impdp以前需要在数据库中创建一个Directory。
Expdp/impdp
一、directory目录:
1、查看管理员目录(同时查看操作系统中是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
2、建立数据库指定目录:(如果不想使用旧的目录或不存在指定目录) 注:一般数据库目录只允许sys创
create directory dir as ‘d:\dump‘; //dir名称可以随便命名 需要手工创建,即:create directory 别名 as ‘d:\服务器目录名‘,将导入或导出的文件放在服务器目录下 。
注意:导入时一样要建立目录,并将要导入的文件放置在建立的目录下,而且要将导出时生成的log也放置在下面,否则会报错。
3、给用户赋予在指定目录的操作权限,最好以system等管理员赋予。
select privilege,table_name from dba_tab_privs where grantee=‘scott‘; --查询权限
grant connect,resource to scott;
grant read,write on directory dir to scott; ----最少要赋予这个权限
grant exp_full_database,imp_full_database to scott;
4、删除自定目录
delete directory dir;二、导出: 1、导出内容相关的参数: expdp: 导出命令
filesize:
指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)
job_name:以SID=orcl,导出dmp的账号为test,导入dmp的账号为test为例。
若将数据从sfz中导出:
expdp test/test@orcl directory=别名 dumpfile=导出文件名
1)按用户导
expdp scott/tiger@orcl directory=dir dumpfile=expdp.dmp schemas=scott logfile=expdp.log
2)并行进程parallel
expdp scott/tiger@orcl directory=dir dumpfile=scott3.dmp parallel=40 job_name=scott3 logfile=expdp.log
3)按表名导
expdp scott/tiger@orcl directory=dir dumpfile=expdp.dmp tables=emp,dept logfile=expdp.log
4)按查询条件导
expdp scott/tiger@orcl directory=dir dumpfile=expdp.dmp tables=emp query=‘WHERE deptno=20‘
5)按表空间导
expdp system/manager directory=dir dumpfile=expdp.dmp tablespaces=temp,example
6)导整个数据库
expdp system/manager directory=dir dumpfile=full.dmp full=y
三、导入: 1、导入内容相关的参数: impdp: 导入命令remap_schema:
该选项用于将源方案的所有对象装载到目标方案中(当两个方案名称不同时).remap_tablespace:
将源表空间的所有对象导入到目标表空间中(当两个表空间名称不同时)
remap_tablespace=source_tablespace:target:tablespace
注意:如果导入的数据库是新建数据库,那么需要先创建表空间,以及用户,如下面这样:
drop tablespace koauth24 including contents and datafiles; create tablespace koauth24 datafile ‘F:\app\Administrator\product\4.0data\koauth24‘ size 100M autoextend on next 100M; drop user koauth24 cascade; create user koauth24 identified by kingddom88 default tablespace koauth24; grant dba,resource,connect to koauth24; grant select any table to koauth24; grant update any table to koauth24; grant insert any table to koauth24;1)导到指定用户下
impdp scott/tiger@orcl directory=dir dumpfile=expdp.dmp SCHEMAS=scott logfile=impdp.log
2)改变表的owner
impdp system/manager directory=dir dumpfile=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager directory=dir dumpfile=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager directory=dump_dir dumpfile=full.dmp FULL=y;
5)追加数据
impdp system/manager directory=dir DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION
6、导入时用户名、表空间名称等不一样时,可做个映射
remap_schema=test(导出的名称):test1(将要导入的名称)
remap_tablespace=oauth2:koauth2
最后可以检查一下数据库中是不是所有表都有了,不足的可以再补齐。
imp/exp
一、数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like ‘00%‘\"
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。不过在上面命令后面 加上 compress=y 就可以了
二、数据的导入:
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
注意:基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。
同名用户之间的数据导入:
imp hkb/hkb@xe file=c:\orabackup\hkbfull.dmp log=c:\orabackup\hkbimp.log full=y
不同名之间的数据导入:
imp system/test@xe fromuser=hkb touser=hkb_new file=c:\orabackup\hkbfull.dmp
log=c:\orabackup\hkbimp.log;
oracle数据库的导入导出
标签:执行 ase 10g apu 常用 dao pre asc 需要