ORACLE exp/imp
来源:互联网 发布:2016外汇储备数据 编辑:程序博客网 时间:2024/04/29 15:50
一、关于数据泵的概述 在Oracle 10g中,数据泵(Data Pump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行I/O服务器以更快地读取或插入数据,从而,单进程瓶颈被彻底解决。 通过数据泵,以前通过EXP/IMP主要基于Client/Server的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快或减少资源消耗。 数据泵通过新的API来建立和管理,这些新的工作主要由DBMS_DATAPUMP来完成。新的导入/导出工具完全成为了一个客户端应用,通过IMPDP/EXPDP执行的命令实际上都是在调用Server端的API在执行操作,所以一旦一个任务被调度或执行,客户端就可以推出连接,任务会在server端继续执行,随后通过客户端实用程序从任何地方检查任务的状态和进行修改 二、数据泵的使用 示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp 注意到与EXP不同,EXPDP增加了一个主要的参数:DIRECTORY 这个参数是用来定义一个路径,前面已经提到,数据泵主要在Server端工作,导出文件需要写出到Server端本地目录,这个DIRECTORY就是对应的Server端的路径 如: //创建目录 create or replace directory expdir as 'd:/'; //给test赋予目录的读写权限 grant read,write on directory expdir to test; //导出数据 C:/>expdp test/test@acf dumpfile=test.dmp directory=expdir 三、EXPDP/IMPDP的停止与重启动 EXPDP和IMPDP的本质在于,通过API调用,把传统的EXP/IMP类交付式模式的操作,转变成数据库内部的job任务,从而实现了任务的可终止与重启动。 c:/expdp test/test@acf directory=dpdata dumpfile=full.dmp full=y job_name=expfull 在执行过程中,可以拿下Ctrl+C组合键,退出当前交互模式,退出之后,导出操作不会停止,这不同于Oracle以前的EXP。以前的EXP,如果退出交互式模式,就会出错终止导出任务。 在Oracle 10中,由于EXPDP是数据库内部定义的任务,已经与客户端无关。退出交互之后,会进入export的命令行模式,此时支持status等查看命令: Export> status 如果想停止改任务,可以发出stop_job命令 Export> stop_job 接下来可以通过命令行再次连接到这个任务 c:/expdp test/test@acf attach=expfull 通过start_job命令重新启动导出 Export> start_job 4、EXPDP排出部分对象的导出 在EXPDP的帮助文件中,可以看到存在EXCLUDE和INCLUDE参数 这个两个参数文档中介绍的命令格式存在问题,这个两个参数的正确用法是: EXCLUDE=OBJECT_TYPE[:name_clause][,...] INCLUDE=OBJECT_TYPE[:name_clause][,...] 示例: expdp <other_parameters> schema=scott exclude=sequence,table:"in('EMP','DEPT')" impdp <other_parameters> schema=scott include=function,package,procedure,table:"='EMP'" 有了这些还不够,由于命令中包含了多个特殊字符,在不同的操作系统下需要通过转义字符才能使上面的命令顺利执行 如:EXCLUDE=TABLE:/"IN('BIGTALE')/"
oracle学习小结1
http://jackyrong.javaeye.com/blog/482724
7 导出表
导出自己的表
exp userid=scott/xxx@xxx tables=(a,b) file=c:/xxx.dmp;
导出其他的方案
exp userid=system/xx@xxx tables=(scott.a,scott.b) file=c:/xxx.dmp
只导出表结构,不导数据
exp userid=system/xx@xxx tables=(scott.a,scott.b) file=c:/xxx.dmp rows=n;
如果要导出大表,则加参数direct=y
导出方案
exp userid=system/xx@xxx owner=(scott,system) file=c:/xxxx.dmp;
Oracle 备份与恢复
http://www.oracle.com/technology/global/cn/obe/2day_dba/backup.htm
http://www.oracle.com.cn/viewthread.php?tid=33849
- 脱机备份与恢复
- OEM中导入导出数据
- 提高数据可用性策略
- 使用数据泵进行逻辑备份与恢复
故障类型:
实例恢复:
主要用于DB实例故障引起的DB停机,OS错误、意外掉电、进程故障、shutdown abort终止时故障
实例恢复,在再次启动DB时,由DB根据重做日志文件记录的内容(如未提交的事务,已提交但未完成的事务)自动完成恢复。
介质恢复:联机备份时发生实例故障,则需介质恢复,介质损坏引起介质恢复
脱机备份与恢复/冷备份与恢复、联机备份与恢复/热备份与恢复、逻辑备份与恢复、
脱机备份与恢复/冷备份与恢复
http://bbs.chinaunix.net/viewthread.php?tid=776954
shutdown 默认为 normal
shutdown normal //快速关闭,做个检查点
不允许新的连接、不等待会话结束、事务结束、做个检查点并关闭数据文件。启动时不需要实例恢复。
shutdown abort //快速关闭,重启DB恢复
不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件.启动时自动进行实例恢复
不可联机备份与恢复,'不干净'关闭数据库方式,可能包含未提交事务和不一致数据.若执行abort,则应重启DB,由DB
对事务和不一致数据进行处理,然后执行shutdown normal、shutdown immediate或shutdown transaction,最后脱机备份与恢复
shutdown immediate //快速关闭,截断当前事务
不允许新的连接、不等待会话结束、不等待事务结束、做个检查点并关闭数据文件.没有结束的事务自动rollback.
启动时不需要实例恢复。
shutdown transaction //快速关闭,等待事务结束
不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件.启动时不需要实例恢复.
对于ABORT,DB Buffer Cache的内容没有写入数据文件,没有提交的事务也没有回滚。数据库没有dismount和关闭,数据文件也没有关闭。当数据库启动时,需要通过redo log恢复数据,通过回滚段对事务回滚,对资源进行释放。
对于NORMAL、TRANSACTIONAL、IMMEDIATE,DB Buffer Cache的内容写入了数据文件,没有提交的事务被回滚,所有的资源被释放,数据库被“干净”的关闭。
STARTUP [FORCE] [RESTRICT] [PFILE= filename] [OPEN [RECOVER][ database] | MOUNT | NOMOUNT]
startup open:
缺省参数为OPEN,打开数据库,允许数据库的访问.当前实例的控制文件中所描述的所有文件都已经打开.
startup mount:
仅仅给DBA进行管理操作,不允许数据库的用户访问。仅仅只是当前实例的控制文件被打开,数据文件未打开。
startup nomount:
仅仅通过初始化文件,分配出SGA区,启动数据库后台进程,没有打开控制文件和数据文件。不能任何访问数据库。
STARTUP PFILE=filename:
以filename为初始化文件启动数据库,不是采用缺省初始化文件.
STARTUP FORCE:
中止当前数据库的运行,并开始重新正常的启动数据库。
STARTUP RESTRICT:
只允许具有RESTRICTED SESSION权限的用户访问数据库。
STARTUP RECOVER:
数据库启动,并开始介质恢复。
若执行shutdown abort则应重启DB,由DB对事物不一致数据进行处理,然后执行shutdown normal,shutdown immediate或shutdown transaction,最后执行脱机备份与恢复.脱机备份保证DB,脱机状态较长.
联机备份与恢复/热备份与恢复 7x24
DB处于archirvelog(归档模式),好处:当数据文件或表空间处于备份与恢复时,用户仍可访问其他数据.
逻辑备份与恢复/数据备份
客服端工具imp/exp 数据泵工具expdp/impdp
特点:多种方式,DB级、方案(或用户)级/表级.
不同OS间传输,oracle二进制文件存储.
不同oracle间传输
低>>>高版本间升级
高>>>低版本间升级
提高DB可用性策略
设计备份与恢复策略前考略的问题
有多少数据需要保护,能承受多少数据丢失?
DB那些数据常修改,何时载数据,何时改DB结构?
备份可脱机多长时间,是否7x24小时,何时使用DB最频繁?
恢复时间多快?
备份/恢复所需要的资源?如:工具、人员、设备、时间等
是否需要闪回技术逆向更改?
周备份,短时停数据库,则热备.
防止故障
数据/存储故障
逻辑/物理故障
物理故障:数据文件、控制文件、重做日志文件和归档日志文件.
磁盘毁损,人为意外删除数据文件或改写配置文件
逻辑故障:表、索引、或表记录.一般人为原因是最大原因
人为逻辑故障:
误删文件、数据
update语句中不正确使用where子句更新过多行
oracle10g flashback (闪回)技术支持航、事务、表、表空间和DB存储故障
估计空间量
设计布局、数据、归档文件分开,以免I/O竞争
创建逻辑卷和文件系统
定义和执行数据备份和恢复计划
创建用户的数据库
ASM(自动存储管理),内核中提供垂直集成文件系统和数据卷管理器
ASM本地镜像机制扩展SAME(全部条带话和镜像)用于防治存储故障的选件.
启动实现三倍镜像,支撑硬件辅助恢复技术能力、将强数据保护.
备份策略
非7x24 noarchivelog下操作
7x24 archivelog操作,2次/周、2次/月
多个DB恢复目录的恢复管理器 RMAN
控制文件
SQL>select status,name from v$controlfile;
数据文件
SQL>select status,file_name form dba_data_files;
联机重做日志文件
SQL>select group#,status,member from v$logfile;
脱机备份
--不连DB方式启动sqlplus
SQL>sqlplus /nolog
SQL>connect system/password AS SYSDBA
--脱机备份
SQL>shutdown immediate
--备份拷贝:控制文件、数据文件、重做日志文件 ok
SQL>startup open
--在改变DB结构(如改变参数设置:表空间、表及控制文件,数据文件,重做日志文件的位置和名称)后,都应脱机备份
脱机恢复
data pump(数据泵)进行逻辑备份与恢复
expdp/impdp 服务端程序使用,可以解决:a.表 b.方案 c.数据库
实现逻辑备份和恢复
数据方案之间传输
数据库之间传输
数据库应用软件升级
消除磁盘碎片
SQL>connect sys/password AS SYSDBA
SQL>create directory dump_dir AS 'e:/dump';
SQL>grant read,write on directory dump_dir to system,myuser;
expdp username/password parameter1[,parameter2,...]
C:/expdp system/password full=y estimate_only=y estimate=statistice nologfile=y
导出表
导出myuser方案的department和student表的过程
c:/expdp myuser/password directory=dump_dir dumpfile=myusertab.dmp logfile=myusertab.log tables=department,student
导出方案
导出muyser方案的过程
c:/expdp myuser/password directory=dump_dir dumpfile=myuser.dmp logfile=myuser.log schemas=myuser job_name=exp_myuser_schema
导出数据库
使用参数文件导出数据库
文件:e:/dump/myparfile.txt
内容:dumpfile=dump_dir:mydb_%U.dmp
logfile=dump_dir:mydb.log
filesize=100M
job_name=exp_full
full=y
导出整个数据库过程,时间较长多则几个小时,不易完全成功,不建议使用
c:/expdp system/password parfile=e:/dump/myparfile.txt
使用impdp导入数据 impdp username/password parameter1[,parameter2,...]
parameter如:sqlfile=[directory_object:]file_name sqlfile=目录对象名:sql脚本名
导入数据
SQL>connect myuser/password
SQL>delete from student;
SQL>commit;
C:/impdp myuser/password directory=dump_dir dumpfile=myusertab.dmp logfile=myuser_imp.log conect=data_only table=student
导入表
SQL>drop table student cascade constraints;
SQL>desc student;
c:/impdp myuser/password directory=dump_dir dumpfile=myusertab.dmp logfile=myusertab_imp.log tables=student
导入方案
SQL>connect system/password
SQL>drop user myuser cascade;
SQL>grant connect,resource to myuser identified by password
SQL>alter user myuser default tablespace myts01 temporary tablespace=temp;
若导入前没有创建用户,则导入方案是会有错误提示信息
c:/impdp system/password directory=dump_dir dumpfile=myuser.dmp logfile=myuser_imp.log schemas=myuser job_name=imp_schema
在OEM中导出导入数据 集成impdp/expdp
---------------------------------------------------------------------------------------------------------------------
Oracle imp/exp 详解
- 一、 EXP
- C:/>exp help=y
- 通过输入 EXP 命令和用户名 / 口令,您可以
- 在用户 / 口令之后的命令 :
- 实例 : EXP SCOTT/TIGER
- 或者,您也可以通过输入跟有各种参数的 EXP 命令来控制 “ 导出 ” 的运行方式。
- 要指定参数,您可以使用关键字 :
- 格式 : EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
- 实例 : EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
- 或 TABLES=(T1: P1,T1: P2) ,如果 T1 是分区表
- USERID 必须是命令行中的第一个参数。
- 关键字 说明 默认
- USERID 用户名 / 口令
- FULL 导出整个文件 (N)
- BUFFER 数据缓冲区的大小
- OWNER 所有者用户名列表
- FILE 输出文件 (EXPDAT.DMP)
- TABLES 表名列表
- COMPRESS 导入一个范围 (Y)
- RECORDLENGTH IO 记录的长度
- GRANTS 导出权限 (Y)
- INCTYPE 增量导出类型
- INDEXES 导出索引 (Y)
- RECORD 跟踪增量导出 (Y)
- ROWS 导出数据行 (Y)
- PARFILE 参数文件名
- CONSTRAINTS 导出限制 (Y)
- CONSISTENT 交叉表一致性
- LOG 屏幕输出的日志文件
- STATISTICS 分析对象 (ESTIMATE)
- DIRECT 直接路径 (N)
- TRIGGERS 导出触发器 (Y)
- FEEDBACK 显示每 x 行 (0) 的进度
- FILESIZE 各转储文件的最大尺寸
- QUERY 选定导出表子集的子句
- 下列关键字仅用于可传输的表空间
- TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
- TABLESPACES 将传输的表空间列表
- 二、 IMP
- 1. 获取帮助
- imp help=y
- 2. 导入一个完整数据库
- imp system/manager file=bible_db log=dible_db full=y ignore=y
- 3. 导入一个或一组指定用户所属的全部表、索引和其他对象
- imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
- 4. 将一个用户所属的数据导入另一个用户
- imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
- imp system/manager file=tank log=tank fromuser=(seapark,amy)
- touser=(seapark1, amy1)
- 5. 导入一个表
- imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
- 6. 从多个文件导入
- imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
- log=paycheck, filesize=1G full=y
- 7. 使用参数文件
- imp system/manager parfile=bible_tables.par
- bible_tables.par 参数文件:
- #Import the sample tables used for the Oracle8i Database Administrator's
- Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
- 8. 增量导入
- imp system./manager inctype= RECTORE FULL=Y FILE=A
- Oralce 数据泵
- http://junmail.javaeye.com/blog/215780
- 一、关于数据泵的概述
- 在Oracle 10g中,数据泵(Data Pump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行I/O服务器以更快地读取或插入数据,从而,单进程瓶颈被彻底解决。
- 通过数据泵,以前通过EXP/IMP主要基于Client/Server的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快或减少资源消耗。
- 数据泵通过新的API来建立和管理,这些新的工作主要由DBMS_DATAPUMP来完成。新的导入/导出工具完全成为了一个客户端应用,通过 IMPDP/EXPDP执行的命令实际上都是在调用Server端的API在执行操作,所以一旦一个任务被调度或执行,客户端就可以推出连接,任务会在 server端继续执行,随后通过客户端实用程序从任何地方检查任务的状态和进行修改
- 二、数据泵的使用
- 示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
- 注意到与EXP不同,EXPDP增加了一个主要的参数:DIRECTORY
- 这个参数是用来定义一个路径,前面已经提到,数据泵主要在Server端工作,导出文件需要写出到Server端本地目录,这个DIRECTORY就是对应的Server端的路径
- 如:
- //创建目录
- create or replace directory expdir as 'd:/';
- //给test赋予目录的读写权限
- grant read,write on directory expdir to test;
- //导出数据
- C:/>expdp test/test@acf dumpfile=test.dmp directory=expdir
- 三、EXPDP/IMPDP的停止与重启动
- EXPDP和IMPDP的本质在于,通过API调用,把传统的EXP/IMP类交付式模式的操作,转变成数据库内部的job任务,从而实现了任务的可终止与重启动。
- c:/expdp test/test@acf directory=dpdata dumpfile=full.dmp full=y job_name=expfull
- 在执行过程中,可以拿下Ctrl+C组合键,退出当前交互模式,退出之后,导出操作不会停止,这不同于Oracle以前的EXP。以前的EXP,如果退出交互式模式,就会出错终止导出任务。
- 在Oracle 10中,由于EXPDP是数据库内部定义的任务,已经与客户端无关。退出交互之后,会进入export的命令行模式,此时支持status等查看命令:
- Export> status
- 如果想停止改任务,可以发出stop_job命令
- Export> stop_job
- 接下来可以通过命令行再次连接到这个任务
- c:/expdp test/test@acf attach=expfull
- 通过start_job命令重新启动导出
- Export> start_job
- 4、EXPDP排出部分对象的导出
- 在EXPDP的帮助文件中,可以看到存在EXCLUDE和INCLUDE参数
- 这个两个参数文档中介绍的命令格式存在问题,这个两个参数的正确用法是:
- EXCLUDE=OBJECT_TYPE[:name_clause][,...]
- INCLUDE=OBJECT_TYPE[:name_clause][,...]
- 示例:
- expdp <other_parameters> schema=scott exclude=sequence,table:"in('EMP','DEPT')"
- impdp <other_parameters> schema=scott include=function,package,procedure,table:"='EMP'"
- 有了这些还不够,由于命令中包含了多个特殊字符,在不同的操作系统下需要通过转义字符才能使上面的命令顺利执行
- 如:EXCLUDE=TABLE:/"IN('BIGTALE')/"
- Oracle imp/exp
- Oracleのexp & imp
- Oracle EXP && IMP
- ORACLE imp&exp使用
- Oracle Imp exp使用方法
- exp,imp(oracle)
- oracle exp/imp 详解
- oracle exp imp
- oracle imp/exp
- oracle exp/imp
- oracle exp/imp 命令
- oracle exp/imp
- ORACLE EXP/IMP 说明
- oracle exp/imp 字符集
- oracle imp/exp使用
- oracle imp/exp
- Oracle Recover-IMP/EXP
- Oracle Recover-IMP/EXP
- 在arcmap中设置标注格式
- ARM启动代码学习(一)RO和RW还有ZI代表什么?
- 分页无刷新
- messagebox
- MySQL和MSSQL中优化随机查询速度
- ORACLE exp/imp
- ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.3
- 如何禁止别人关闭计算机(转载)
- CEGUI嵌入OGRE笔记
- 一对一映射
- DataSet助手
- delphi中导出excel文本格式
- IDENTITY(函数)
- treeview展开指定层的结点