- 浏览: 794327 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (417)
- ASP.NET MVC (18)
- WEB基础 (24)
- 数据库 (69)
- iPhone (20)
- JQuery (3)
- Android (21)
- UML (8)
- C# (32)
- 移动技术 (19)
- 条码/RFID (6)
- MAC (8)
- VSS/SVN (6)
- 开卷有益 (4)
- 应用软件 (1)
- 软件工程 (1)
- java/Eclipse/tomcat (61)
- 英语学习 (2)
- 综合 (16)
- SharePoint (7)
- linux (42)
- Solaris/Unix (38)
- weblogic (12)
- c/c++ (42)
- 云 (1)
- sqlite (1)
- FTp (2)
- 项目管理 (2)
- webservice (1)
- apache (4)
- javascript (3)
- Spring/Struts/Mybatis/Hibernate (4)
- 航空业务 (1)
- 测试 (6)
- BPM (1)
最新评论
-
dashengkeji:
1a64f39292ebf4b4bed41d9d6b21ee7 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
zi_wu_xian:
PageOffice操作excel也可以设置表格的行高列宽,并 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
wanggang0321:
亲,我在pptx(office2007以上版本)转pdf的时候 ...
JODConverter]word转pdf心得分享(转) -
xiejanee:
楼主:你好!我想请问下 你在代码中用DOMDocument* ...
Xerces-C++学习之——查询修改XML文档 (转)
转自:http://blog.csdn.net/tianlesoftware/article/details/4718366
Oracle 的导出导入是一个很常用的迁移工具。 在 Oracle 10g 中, Oracle 推出了数据泵 (expdp/impdp). 它可以通过使用并行,从而在效率上要比 exp/imp 要高。
在 Oracle 10g 和 11g 的官方文档里没有搜到有关 exp/imp 的说明, 在 9i 里找到了相关的使用说明。 连接如下:
Export
http://download.oracle.com/docs/cd/B10501_01/server.920 /a96652/ch01.htm
http://download.oracle.com/docs/cd/B10501_01/server.920/a96652/ch02.htm#SUTIL002
执行备份和恢复的时候,不要在客户端的 shell 窗口执行, 要将备份的的进程添加到服务器的后台执行。
参考:
Linux 前台 和 后台进程 说明
http://blog.csdn.net/tianlesoftware/archive/2011/01/27/6165753.aspx
一 . 命令帮助如下:
1.1 export
[oracle@rac1 ~]$ exp help=y
Export: Release 10.2.0.1.0 - Production on Tue May 10 10:35:26 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
You can let Export prompt you for parameters by entering the EXP
command followed by your username/password:
Example: EXP SCOTT/TIGER
Or, you can control how Export runs by entering the EXP command followed
by various arguments. To specify parameters, you use keywords:
Format: EXP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)
Example: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
or TABLES=(T1:P1,T1:P2), if T1 is partitioned table
USERID must be the first parameter on the command line.
Keyword Description (Default) Keyword Description (Default)
--------------------------------------------------------------------------
USERID username/password FULL export entire file (N)
BUFFER size of data buffer OWNER list of owner usernames
FILE output files (EXPDAT.DMP) TABLES list of table names
COMPRESS import into one extent (Y) RECORDLENGTH length of IO record
GRANTS export grants (Y) INCTYPE incremental export type
INDEXES export indexes (Y) RECORD track incr. export (Y)
DIRECT direct path (N) TRIGGERS export triggers (Y)
LOG log file of screen output STATISTICS analyze objects (ESTIMATE)
ROWS export data rows (Y) PARFILE parameter filename
CONSISTENT cross-table consistency(N) CONSTRAINTS export constraints (Y)
OBJECT_CONSISTENT transaction set to read only during object export (N)
FEEDBACK display progress every x rows (0)
FILESIZE maximum size of each dump file
FLASHBACK_SCN SCN used to set session snapshot back to
FLASHBACK_TIME time used to get the SCN closest to the specified time
QUERY select clause used to export a subset of a table
RESUMABLE suspend when a space related error is encountered(N)
RESUMABLE_NAME text string used to identify resumable statement
RESUMABLE_TIMEOUT wait time for RESUMABLE
TTS_FULL_CHECK perform full or partial dependency check for TTS
VOLSIZE number of bytes to write to each tape volume
TABLESPACES list of tablespaces to export
TRANSPORT_TABLESPACE export transportable tablespace metadata (N)
TEMPLATE template name which invokes iAS mode export
Export terminated successfully without warnings.
1.2 import
[oracle@rac1 ~]$ imp help=y
Import: Release 10.2.0.1.0 - Production on Tue May 10 10:35:49 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
You can let Import prompt you for parameters by entering the IMP
command followed by your username/password:
Example: IMP SCOTT/TIGER
Or, you can control how Import runs by entering the IMP command followed
by various arguments. To specify parameters, you use keywords:
Format: IMP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)
Example: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
or TABLES=(T1:P1,T1:P2), if T1 is partitioned table
USERID must be the first parameter on the command line.
Keyword Description (Default) Keyword Description (Default)
--------------------------------------------------------------------------
USERID username/password FULL import entire file (N)
BUFFER size of data buffer FROMUSER list of owner usernames
FILE input files (EXPDAT.DMP) TOUSER list of usernames
SHOW just list file contents (N) TABLES list of table names
IGNORE ignore create errors (N) RECORDLENGTH length of IO record
GRANTS import grants (Y) INCTYPE incremental import type
INDEXES import indexes (Y) COMMIT commit array insert (N)
ROWS import data rows (Y) PARFILE parameter filename
LOG log file of screen output CONSTRAINTS import constraints (Y)
DESTROY overwrite tablespace data file (N)
INDEXFILE write table/index info to specified file
SKIP_UNUSABLE_INDEXES skip maintenance of unusable indexes (N)
FEEDBACK display progress every x rows(0)
TOID_NOVALIDATE skip validation of specified type ids
FILESIZE maximum size of each dump file
STATISTICS import precomputed statistics (always)
RESUMABLE suspend when a space related error is encountered(N)
RESUMABLE_NAME text string used to identify resumable statement
RESUMABLE_TIMEOUT wait time for RESUMABLE
COMPILE compile procedures, packages, and functions (Y)
STREAMS_CONFIGURATION import streams general metadata (Y)
STREAMS_INSTANTIATION import streams instantiation metadata (N)
VOLSIZE number of bytes in file on each volume of a file on tape
The following keywords only apply to transportable tablespaces
TRANSPORT_TABLESPACE import transportable tablespace metadata (N)
TABLESPACES tablespaces to be transported into database
DATAFILES datafiles to be transported into database
TTS_OWNERS users that own data in the transportable tablespace set
Import terminated successfully without warnings.
[oracle@rac1 ~]$
二 . Export
1. 表模式
备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。若备份到本地文件,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=exp.dmp log=exp.log tables=tab1,tab2,tab3
若直接备份到磁带设备,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=/dev/rmt0 log=exp.log tables=tab1,tab2,tab3
注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。
2. 用户模式
备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。 若备份到本地文件,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536 feedback=100000 file=exp.dmp log=exp.log
若直接备份到磁带设备,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=/dev/rmt0 log=exp.log
注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。
3. 完全模式
备份完整的数据库。业务数据库不采用这种备份方式。备份命令为:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 full=y file=exp_.dmp log=exp.log
三. IMPORT
import 要与 export 对应。 就是采用什么方式 export ,就需要采用什么方式 import ,因此 import 也有三种模式:表恢复、用户恢复、完全恢复。
1. 表模式
此方式将根据按照表模式备份的数据进行恢复。
1.1 恢复备份数据的全部内容
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n file=exp.dmp log=imp.log
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0 log=imp.log
1.2 恢复备份数据中的指定表:
若从本地文件恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n file=exp.dmp log=imp.log tables=t1,t2,t3
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
log=imp.log tables=t1,t2,t3
2. 用户模式
此方式将根据按照用户模式备份的数据进行恢复。
2.1. 恢复备份数据的全部内容
若从本地文件恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n file=exp.dmp log=imp.log
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0 log=imp.log
2.2. 恢复备份数据中的指定表
若从本地文件恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=exp.dmp log=imp.log tables=t1,t2,t3;
3. 完全模式
如果备份方式为完全模式,采用下列恢复方法:
imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 full=y file=exp.dmp log=imp.log
4. 参数说明
4.1. ignore 参数
Oracle 在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据 ignore 参数的设置来决定如何操作。
若 ignore=y , Oracle 不执行 CREATE TABLE 语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。
若 ignore=n , Oracle 不执行 CREATE TABLE 语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。
4.2. indexes 参数
在恢复数据的过程中,若 indexes=n ,则表上的索引不会被恢复,但是主键对应的唯一索引将无条件恢复,这是为了保证数据的完整性。
4.3 字符集转换
对于单字节字符集(例如 US7ASCII ) ,恢复时,数据库自动转换为该会话的字符集( NLS_LANG 参数);
对于多字节字符集 (例如 ZHS16CGB231280 ),恢复时,应尽量使字符集相同(避免转换),如果要转换,目标数据库的字符集应是输出数据库字符集的超集。
5. IMP 常见问题及解决方法
5.1 数据库对象已经存在
一般情况 , 导入数据前应该彻底删除目标数据下的表 , 序列 , 函数 / 过程 , 触发器等 ; 数据库对象已经存在 , 按缺省的 imp 参数 , 则会导入失败如果用了参数 ignore=y, 会把 exp 文件内的数据内容导入如果表有唯一关键字的约束条件 , 不合条件将不被导入如果表没有唯一关键字的约束条件 , 将引起记录重复
5.2 数据库对象有主外键约束
不符合主外键约束时 , 数据会导入失败 ,
解决办法 :
先导入主表 , 再导入依存表
disable 目标导入对象的主外键约束 , 导入数据后 , 再 enable 它们
5.3 权限不够
如果要把 A 用户的数据导入 B 用户下 , A 用户需要有 imp_full_database 权限
5.4 导入大表 ( 大于 80M ) 时 , 存储分配失败
默认的 EXP 时 , compress = Y, 也就是把所有的数据压缩在一个数据块上 .
导入时 , 如果不存在连续一个大数据块 , 则会导入失败 . 导出 80M 以上的大表时 , 记得 compress= N, 则不会引起这种错误 .
5.5 imp 和 exp 使用的字符集不同
如果字符集不同 , 导入会失败 , 可以改变 unix 环境变量或者 NT 注册表里 NLS_LANG 相关信息 . 导入完成后再改回来 .
5.6 imp 和 exp 版本不能往上兼容
可以从低版本导入高版本,但不能从高版本导入到低版本。
如果遇到迁移因版本不同的问题,可以用低版本的 export 导出,到导入到低版本。
四 . 示例
4.1 oracle 创建表空间,创建用户
// 创建临时表空间
create temporary tablespace test_temp
tempfile ‘/u01/app/oracle/oradata/orcl/test_temp01.Dbf'
size 32m autoextend on next 32m maxsize 2048m
extent management local;
// 创建数据表空间
create tablespace test_data logging
datafile '/u01/app/oracle/oradata/orcl/test_data01.dbf'
size 32m autoextend on
next 32m maxsize 2048m
extent management local;
// 创建用户并指定表空间
create user username identified by password
default tablespace test_data
temporary tablespace test_temp;
// 给用户授予权限
grant connect,resource to username;
先创建一个用户和表空间,用户名 david ,密码 david. 在这个表空间下创建一个表: tianle 。随便插入些数据。代码如下:
SQL> create tablespace test_data
3 datafile '/u01/app/oracle/oradata/orcl/test_data01.dbf'
4 size 5m;
Tablespace created.
SQL> create user david identified by david default tablespace test_data;
SQL> grant connect,resource to david;
SQL> conn david/david
SQL> create table tianle(id number, content varchar2(100));
SQL> set wrap off
SQL> column id format a20;
SQL> column content format a50;
4.2 表模式备份 与 恢复
备份:
[oracle@roy orcl]$ exp david/david rows=y indexes=n compress=n buffer=65536 file=exp_tianle_090101.dmp log=exp_tianle_090101.log tables=(tianle);
恢复:
[oracle@roy orcl]$ imp david/david fromuser=david touser=david rows=y indexes=n commit=y buffer=65536 file=exp_tianle_090101.dmp log=imp_tianle_090101.log tables=(tianle);
4.3 用户模式备份与恢复
备份:
[oracle@roy orcl]$ exp david/david owner=david rows=y indexes=n compress=n buffer=65536 file=exp_david__090101.dmp log=exp_david_090101.log;
恢复:
[oracle@roy orcl]$ imp david/david fromuser=david touser=david rows=y indexes=n commit=y buffer=65536 file=exp_tianle_090101.dmp log=exp_tianle_090101.log;
4.4 完全模式备份与恢复
备份:
[oracle@roy orcl]$ exp david/david rows=y indexes=n compress=n buffer=65536 full=y file=exp_fulldatabase_090101.dmp log=exp_fulldatabase_090101.log;
恢复
[oracle@roy orcl]$ imp david/david rows=y indexes=n commit=y full=y ignore=y buffer=65536 file=/tmp/exp_fulldatabase_090101.dmp log=/tmp/imp.log;
发表评论
-
DB2 中使用命令行工具连接远程数据库的方法
2014-04-24 11:09 0使用 CA ... -
db2note
2014-04-16 10:05 0db2connect---建立连接,创建statement d ... -
数据库3模型
2013-12-19 10:51 0概念模型就是在了解了用户的需求,用户的业务领域工作情况以后,经 ... -
关于并发
2013-12-08 14:12 0解决并发一般我们采用数据表里加版本号或者时间戳的方式,在up ... -
C++使用CLI连接DB2
2013-11-15 09:31 3374<!--推荐博文--> ... -
DB2 Old-New-Final-Table中间结果表
2013-11-11 13:50 1065DB2底层通过维护事物表,来对表进行添加,更新,和删除操作, ... -
SQL查询重复记录
2013-10-28 14:31 821假设现有一张人员表(表名:Person),若想将姓名、身份证 ... -
db2修改已经有数据的列名
2013-09-13 15:30 1610--修改列名或者列类型,由原类型到其他类型,修改类型有6步, ... -
数据库事务和锁(转)
2013-07-03 13:50 1112简述 关系型数据 ... -
Oracle事务 行级锁 保存点 回滚 提交(转)
2013-07-03 13:36 932一般事务(DML)即数据修改(增、删、改)的事务事务会将所有 ... -
ORACLE数据库事务隔离级别 (转)
2013-07-03 10:08 912事务隔离级别:一个事务对数据库的修改与并行的另一个 ... -
脏读、幻读、不可重复读
2013-07-03 10:06 1081脏读(Drity Read):某个事务已更新一份数据,另一个 ... -
select for update(转)
2013-06-19 10:46 945Select …forupdate语句是我们经常使用手工加锁 ... -
数据库锁
2013-06-19 09:36 8631 前言 数据库大并发操作要考虑死锁和锁的性能问 ... -
数据库note
2013-06-19 09:35 012.并发处理插入时控制并发,防止业务数据重复,那么把这几个业 ... -
windows 配置oracle
2013-06-04 11:21 991Oracle 创建表空间和用户 一、在Win ... -
SQL0204N "<username>.DUAL" is an undefined name
2013-06-03 14:06 2711"(0x80040E37): [DB2/NT6 ... -
commit rollback
2013-05-30 11:19 1033从SQL语言的分类谈COMMIT ... -
db2 sequence
2013-05-27 17:39 9031、create CREATE SE ... -
SQL提高查询效益之in、not in、between、like等条件讲述
2013-03-28 09:47 0http://cache.baiducontent.com/ ...
相关推荐
本文将深入探讨Oracle数据库中使用exp/imp工具进行逻辑增量备份的方法及其恢复策略。 1一、实现需求 在Oracle数据库环境中,确保数据安全性和可用性是关键。逻辑增量备份的主要目标是在最小化系统停机时间和资源...
Oracle 数据库的 EXP/IMP 工具是数据库管理员(DBA)进行数据迁移、备份和恢复的重要工具。本文将详细介绍这两个工具的使用方法。 一、导出工具 EXP 1. EXP 是一个操作系统级别的可执行文件,通常位于 ORACLE_HOME...
### Oracle 数据库中的 exp/imp2 导入导出技术详解 #### 一、Oracle 表空间(Tablespace)管理概述 在理解 exp/imp2 导入导出之前,我们首先需要对 Oracle 数据库的基本概念——表空间有一个清晰的认识。表空间是 ...
Oracle 数据库 exp/imp 命令详解 Oracle 数据库 exp/imp 命令是 Oracle 中最常用的命令之一。它们用于数据库的备份和恢复。exp 命令用于将数据库中的数据导出到文件中,而 imp 命令用于将文件中的数据导入到数据库...
Oracle exp/imp 是Oracle数据库系统提供的两个实用工具,用于数据的备份和恢复。exp(Export)用于导出数据库中的对象和数据,而imp(Import)则用于将这些导出的数据导入到另一个数据库中。在实际操作中,由于各种...
导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...
在这个"oracleClient安装包exp和imp文件.zip"压缩包中,我们主要关注的是这两个工具以及它们在Oracle客户端11.2.0.4.0中的应用。 **Oracle客户端安装包**: Oracle客户端是与Oracle服务器进行通信的软件组件,它...
在Oracle数据库管理中,数据的导入和导出是常见的操作,这通常涉及到exp和imp这两个命令。这两个命令允许用户将数据库对象(如表、索引、存储过程等)及其数据从一个数据库环境转移到另一个,或者进行数据备份和恢复...
Oracle 9i数据库系统是Oracle公司的一个重要版本,它提供了许多功能来支持数据管理,其中包括数据导入(IMP)和导出(EXP)工具。这两个工具是数据库管理员进行数据迁移、备份和恢复操作的关键组件。 **EXP(Export...
"Oracle_imp_exp.rar_ oracle_imp_exp_oracle_oracle exp_oracle_imp_" 这个压缩包文件,显然与Oracle数据库的导入(exp)和导出(imp)操作有关,可能包含一个自编写的工具,用于简化和记录这些过程。 Oracle...
Oracle 的数据库导入导出(imp/exp)是数据库管理员经常使用的两个命令,它们分别用于数据库的导出和导入。本文档总结了 Oracle 数据库的完全导入导出、imp 和 exp 命令的使用方法,以及本机和异机恢复的步骤。 一...
Oracle的exp和imp工具是数据库管理员进行数据备份、迁移和重组的重要手段。这两个工具执行逻辑备份,即将数据库对象和数据转换成一个名为.dmp的文件,以便在需要时重新导入到数据库中。然而,对于大型数据库,exp...
在Oracle 11g版本中,`imp.exe`和`exp.exe`是两个非常重要的工具,它们分别用于数据库导入和导出操作。这两个工具是Oracle Data Pump的一部分,提供高效的数据迁移和备份恢复功能。 一、imp.exe(数据库导入工具) ...
Oracle数据库的备份是确保数据安全的关键操作,其中exp和imp命令是进行逻辑备份的主要工具。逻辑备份相较于物理备份,不需要数据库运行在归档模式下,也不需要大量的外部存储设备,如磁带库,因此在很多业务环境中更...
oracle版本绿色客户端(只收集了32位的,可在32、64下运行),并提供了相应的启动脚本,不需要任何配置,可随时随地拷贝使用。...本包提供windows下的32位绿色免安装、简易oracle客户端,含sqlplus、exp、imp等工具