exp和expdp导入导出 Oracle10g学习系列(8)

一、使用二者时应该注意的事项:

1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。

expdp impdp导大文件比exp和imp快,可以并行导,但导小文件很慢。网上有人说一个600多G的库,expdp只需要40分钟左右,exp的话要50个小时吧

imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。

二、exp和expdp的简单用法:


1、exp备份

(1)按表名导,tables=tb2,tb3,导多张表的时候,可以用逗号或空格分隔

exp bob/[email protected] tables=tb2,tb3 file=/tmp/baktb01.dmp  log=/tmp/baktb01.log

(2)按用户导,owner=bob,会把该用户下的所有表导出

exp bob/[email protected] owner=bob file=/tmp/baktb02.dmp log=/tmp/baktb02.log

(3)导出全库,full=y,用system或者有sysdba权限用户导

exp bob/[email protected] full=y file=/tmp/baktb03.dmp  log=/tmp/baktb03.log

(4)如果导出表文件超过2G报错,可以分多个文件导出

exp bob/[email protected] filesize=1g tables=tb2,tb3 file=/tmp/tb01.dmp,/tmp/tb02.dmp   log=/tmp/baktb04.log

2、imp还原

(1)还原表

imp bob/[email protected] tables=tb2,tb3 file=/tmp/baktb01.dmp log=/tmp/baktb01.log

如果表已经存在或者需要忽略表结构,ignore=y,需要用忽略参数

imp bob/[email protected] tables=tb2,tb3 file=/tmp/baktb01.dmp ignore=y log=/tmp/baktb01.log

(2)还原该用户下的所有表

imp bob/[email protected] owner=bob file=/tmp/baktb02.dmp log=/tmp/baktb02.log

(3)库还原

imp bob/[email protected] full=y file=/tmp/baktb03.dmp log=/tmp/baktb03.log

3、expdp备份

有sysdba权限的用户,在/tmp/下创建expdp目录,并且给导入导出权限

SQL>create directory expdp as ‘/tmp/’;

SQL>grant read,write on directory expdp to bob;

(1)按表名导,tables=tb2,tb3,导多张表的时候,可以用逗号或空格分隔

expdp bob/[email protected] tables=tb2,tb3 directory=expdp dumpfile=bak01.dmp logfile=expdp01.log

(2)按用户导,schemas=bob,会把该用户下的所有表导出

expdp bob/[email protected] schemas=bob directory=expdp dumpfile=bak02.dmp logfile=expdp02.log

(3)导出全库,full=y,用system或者有sysdba权限用户导

expdp bob/[email protected] full=y directory=expdp dumpfile=bak03.dmp logfile=expdp03.log

或者expdp \‘sys/oracle as sysdba\‘ full=y directory=expdp dumpfile=full.dmp

(4)按查询条件导

expdp bob/[email protected] directory=expdp dumpfile=bak04.dmp tables=emp query=‘WHERE deptno=20‘

(5)按表空间导

expdp bob/[email protected] directory=expdp dumpfile=tablespace.dmp tablespaces=temp,example

4、impdp还原

(1)还原表

impdp bob/[email protected] tables=tb2,tb3 directory=expdp dumpfile=bak01.dmp

(2)还原该用户下的所有表

impdp bob/[email protected] schemas=bob directory=expdp dumpfile=bak02.dmp

(3)库还原

impdp bob/[email protected] full=y directory=expdp dumpfile=bak03.dmp

(4)追加,如果表结构存在用append

impdp scott/tiger dumpfile=expdp:scott.bak tables=emp tables_exists_action=append

(5)替换,不会释放表空间

impdp
scott/tiger dumpfile=expdp:scott.bak tables=emp tables_exists_action=replace

(6)截断,会释放空间,重新插入新的数据

impdp scott/tiger dumpfile=expdp:scott.bak tables=emp tables_exists_action=truncate

(7)只恢复emp表的时候,另外两个表会跳过恢复

impdp scott/tiger dumpfile=expdp:scott.bak tables=emp,dept,salgrade tables_exists_action=skip

(8)改变表的owner:

例子:impdp user/passwd direcotry=xxx dumpfile=xxx.dmp remap_schema=原schema:新schema名字 logfile=xxx.log

impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;

(9)导入表空间

impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;

时间: 2025-01-04 07:32:42

exp和expdp导入导出 Oracle10g学习系列(8)的相关文章

Oracle(exp/imp)导入导出

一.exp本地导出与imp本地导入 直接进入系统命令行运行即可. exp命令:1 exp username/[email protected] file=d:test.dmp full=y2 exp username/[email protected] file=d:test.dmp owner=(ly)3 exp username/[email protected] file= d:test.dmp tables=(grid1,grid2) 1其中一是将Test(与某一数据库对应的oracle

Oracle exp/imp数据导入导出工具基本用法

一.获取帮助 exp/imp help=y 二.数据导出 1.将数据库完全导出,设置full选项exp system/[email protected] file=d:\db.dmp full=y 2.导出数据库结构,不导出数据,设置rows选项exp system/[email protected] file=d:\db.dmp rows=n full=y 3.当导出数据量较大时,可以分成多个文件导出,设置filesize选项exp system/[email protected] file=

oracle 函数学习 Oracle10g学习系列(7)

Oracle函数有字符函数.数学函数.日期函数和转换函数.我只了解了字符函数和数学函数. 一.字符函数: lower(char)  将字符串转化为小写的格式 SQL> select lower(ename),ename from emp; LOWER(ENAME) ENAME ------------ ---------- smith        SMITH allen        ALLEN ward         WARD upper(char)  将字符串转化为大写的格式 SQL>

RMAN备份和恢复 Oracle10g学习系列(9)

RMAN 总是以SYSDBA身份连接目标数据库,所以连接账户必须具有SYSDBA权限. RMAN特点: 1.备份数据库.表空间.数据文件.控制文件.归档日志和SPFILE.数据库是归档模式,目标库必须处于MOUNT状态或OPEN状态. 2.存储频繁执行的备份和恢复操作.放到脚本中执行 3.跳过未用块. 4.执行增量块级备份 5.指定备份限制 6.在备份时检测损坏块.用DBVERIFY工具进行检查 7.自动使用并行化特征提高备份和恢复性能.分配多个CPU.多个通道. 使用格式串: 在configu

oracle表空间 Oracle10g学习系列(10)

表空间的四种状态:online,offline,read write和ready only SQL> select file#,status,enabled from v$datafile; FILE#     STATUS                ENABLED --------  ---------           ------------- 1    SYSTEM                READ WRITE 2    ONLINE                READ

ORACLE-数据导入导出-常规exp/imp以及数据泵方式

博文说明[前言]: 本文将通过个人口吻介绍有关Oracle数据库导入导出相关知识,在目前时间点[2017年5月16号]下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容. 本文所写的导入导出是指在不使用工具的情况下,在命令行下进行的oracle数据库的导入和导出 正文: 一:常规exp/imp,导入导出方法 1.导出: 命令格式:exp user/[email protected]/SID

Linux下Oracle启动、建立表空间、用户、授权、数据库导入导出

1.1进入到sqlplus启动实例 [[email protected] ~]$ su - oracle                                 --“切换到oracle用户”[[email protected] ~]$ lsnrctl start                               --“打开监听”[[email protected] ~]$ sqlplus /nolog                                --“进入到

oracle数据泵导入导出数据

数据泵是10g推出的功能,个人倒数据比较喜欢用数据泵. 其导入的时候利用remap参数很方便转换表空间以及schema,并且可以忽略服务端与客户端字符集问题(exp/imp需要排查字符集). 数据泵也有不方便的地方,如果远程导出导入,必须安装数据库服务端(client不行):需要在数据库中创建一个路径directory(dba_directories):并且主流工具支持exp/imp的导入导出(plsql developer),所以发现数据泵流行程度没有想象中高. 以下简单介绍schema的导入

exp/expdp 与 imp/impdp命令导入导出数据库详解

一.exp命令导出数据库 如何使exp的帮助以不同的字符集显示:set nls_lang=simplified chinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中文显示,如果set nls_lang=American_america.字符集,那么帮助就是英文的了. 参数: 1.1  导出用户全部数据 exp 登录名称/用户密码@服务命名 FILE=文件存储的路径以及名称 log=日志存储的路径以及名称 FULL=Y(表示导出全部数据,如视图.索引关联关系等等全