ITPub博客

首页 > Linux操作系统 > Linux操作系统 > imp/exp

imp/exp

原创 Linux操作系统 作者:yanchwang0410 时间:2011-05-16 19:52:48 0 删除 编辑
数据导出:
 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 wner=(system,sys)
 3 将数据库中的表inner_notify、notify_staff_relat导出
    exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
 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
   imp aichannel/aichannel@HUST full=y  file=d:datanewsmgnt.dmp ignore=y
   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
   在后面加上 ignore=y 就可以了。
 2 将d:daochu.dmp中的表table1 导入
 imp system/manager@TEST  file=d:daochu.dmp  tables=(table1)
 
 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
 
注意:
 操作者要有足够的权限,权限不够它会提示。
 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
附录一:
 给用户增加导入数据权限的操作
 第一,启动sql*puls
 第二,以system/manager登陆
 第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
 第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
   DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
      DBA,CONNECT,RESOURCE,CREATE SESSION  TO 用户名字
 第五, 运行-cmd-进入dmp文件所在的目录,
      imp userid=system/manager full=y file=*.dmp
      或者 imp userid=system/manager full=y file=filename.dmp
 执行示例:
 F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp
屏幕显示
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation.  All rights reserved.
连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)
. 正在将AICHANNEL的对象导入到 AICHANNEL
. . 正在导入表                  "INNER_NOTIFY"          4行被导入
准备启用约束条件...
成功终止导入,但出现警告。
 
附录二:
 Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
  先建立import9.par,
  然后,使用时命令如下:imp parfile=/filepath/import9.par
  例 import9.par 内容如下:
        FROMUSER=TGPMS      
        TOUSER=TGPMS2     (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)         
        ROWS=Y
        INDEXES=Y
        GRANTS=Y
        CONSTRAINTS=Y
        BUFFER=409600
        file==/backup/ctgpc_20030623.dmp
        log==/backup/import_20030623.log
补充:在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的“...”,以改变以往的闪烁的光标
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 所有者用户名列表 wner=(system,sys)
  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 选定导出表子集的子句
  IMP命令
  USERID 必须是命令行中的第一个参数。
  关键字 说明(默认)
  ----------------------------------------------
  USERID 用户名/口令
  FULL 导入整个文件 (N)
  BUFFER 数据缓冲区大小
  FROMUSER 所有人用户名列表
  FILE 输入文件 (EXPDAT.DMP)
  TOUSER 用户名列表
  SHOW 只列出文件内容 (N)
  TABLES 表名列表
      IGNORE 忽略创建错误 (N)
  RECORDLENGTH IO 记录的长度
  GRANTS 导入权限 (Y)
  INCTYPE 增量导入类型
  INDEXES 导入索引 (Y)
  COMMIT 提交数组插入 (N)
  ROWS 导入数据行 (Y)
  PARFILE 参数文件名
  LOG 屏幕输出的日志文件
  CONSTRAINTS 导入限制 (Y)
  DESTROY 覆盖表空间数据文件 (N)
  INDEXFILE 将表/索引信息写入指定的文件
  SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N)
  ANALYZE 执行转储文件中的 ANALYZE 语句 (Y)
  FEEDBACK 显示每 x 行 (0) 的进度
  TOID_NOVALIDATE 跳过指定类型 id 的校验
  FILESIZE 各转储文件的最大尺寸
  RECALCULATE_STATISTICS 重新计算统计值 (N)
  参数说明
  1. ignore参数
  Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。若ignore=y,Oracle不执行CREATE TABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。
  若ignore=n,Oracle不执行CREATE TABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。
  2. indexes参数
  在恢复数据的过程中,若indexes=n,则表上的索引不会被恢复,但是主键对应的唯一索引将无条件恢复,这是为了保证数据的完整性。
  字符集转换
  对于单字节字符集(例如US7ASCII),恢复时,数据库自动转换为该会话的字符集(NLS_LANG参数);对于多字节字符集
  (例如ZHS16CGB231280),恢复时,应尽量使字符集相同(避免转换),如果要转换,目标数据库的字符集应是输出数据库字符集的超集。
  恢复方法业务数据库采用表恢复方案。在用IMP进行恢复前,先在SYS用户下运行CATEXP.SQL文件(如果以前已运行该文件,则不要执行这个脚本),然后执行下列命令:
  IMP ICDMAIN/ICD FILE=文件名 LOG=LOG文件名 ROWS=Y COMMIT=Y BUFFER=Y IGNORE=Y TABLES=表名

orcal imp/exp的參數
exp nc50/1 inctype=complete file=E:\data.dmp full=y(导出全部)
exp nc50/1 file=E:\data.dmp WNER = nc50(导出指定用户nc50)
imp nc50/1@orcl inctype=complete file=E:\data.dmp full=Y(导入全部)
imp nc50/1@orcl file=E:\data.dmp fromuser=nc50 touser=nc50(导入指定用户nc50)
exp -help
EXP导出选项
关键字
内容
USERID
运行导出命令的帐号的用户名/口令
BUFFEER
用来取数据行的缓冲区的大小
FILE
导出转储文件的名字
COMPRESS
导出是否应该压缩有碎片的段成一个范围,这将会影响STORAGE子句
GRANTS
导出时否要导出数据库对象上的授权
INDEXES
是否要导出表上的索引
ROWS
是否应导出行。如它为‘N’,那么在导出文件中仅生成数据库对象的DDL
CONSSTRAINTS
是否导出表旧的约定条件
FULL
如设为‘Y’,那么将执行一个整个数据库导出操作
OWNER
要导出的一系列数据库帐号,然后执行这些帐号的USER导出操作
TABLES
要导出的一系列表;执行这些表的TABLE导出操作
RECORDLENGTH
转储导出文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导出文件
INCTYPE
正在执行的导出操作的类型(有效值有COMPLETE(缺省值),CUMULATIVE和IVCREMENTAL)
RECORD
在增量导出类型中的一个标记,标明是否将日志存储到数据字典中日志导出的表中
PARFILE
要传递给导出的参数文件的名字。这个文件将包含所有参数的入口项
ANALYZE
标明是否将移对象的统计信息写入导出转储文件中
CONSISTENT
标明是否保留所有导出对象的读取一致复制
LOG
导出日志将要写入的文件的名字
MLS
标明是否要导出MLS 标号
MLS_LABEL
规定了MLS标号的格式
IMP导入选项
关键字
内容
USERID
运行导入命令的帐号的用户名/口令
BUFFEER
用来取数据行的缓冲区的大小
FILE
导入转储文件的名字
SHOW
规定文件内容是否被显示,而不是被执行
EGNORE
标明在执行‘CREATE’命令时,是否忽略遇到的错误。如果正在导入的对象已经存在时,应使用这个参数
FULL
如设为‘Y’,那么将执行一个整个数据库导入操作
FROMUSER
在FULL=N的情况下,才有参数。它是一系列的数据库帐号,其对象应从导出转储文件中读取
TOUSER
一系列数据库帐号,导出转储文件扣的对象将要导入这些帐号
GRANTS
导入时否要导入数据库对象上的授权
INDEXES
是否要导入表上的索引
ROWS
是否应导入行。如它为‘N’,那么在导入文件中执行数据库对象的DDL
TABLES
要导入的一系列表
RECORDLENGTH
转储导入文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导入文件
INCTYPE
正在执行的导入操作的类型(有效值有COMPLETE(缺省值),CUMULATIVE和IVCREMENTAL)
PARFILE
要传递给导入的参数文件的名字。这个文件将包含所有参数的入口项
ANALYZE
标明是否将移对象的统计信息写入导入转储文件中
LOG
导入日志将要写入的文件的名字
MLS
标明是否要导入MLS 标号
INDEXFILE
不执行导入动作,只生成建索引的文本
1.1  基本命令
 1.  获取帮助
 
$ exp help=y
$ imp help=y
 
2.  三种工作方式
 
(1)交互式方式
$ exp        //  然后按提示输入所需要的参数
(2)命令行方式
$ exp user/pwd@dbname file=/oracle/test.dmp full=y    //  命令行中输入所需的参数
 
(3)参数文件方式
$ exp parfile=username.par    //  在参数文件中输入所需的参数
参数文件 username.par 内容 userid=username/userpassword buffer=8192000
compress=n grants=y
file=/oracle/test.dmp full=y
 
3.  三种模式
 
(1)表方式,将指定表的数据导出/导入。
导出:
导出一张或几张表:
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2
导出某张表的部分数据
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1 query=\”where col1=\’…\’
and col2 \<…\”
导入:
导入一张或几张表
$  imp  user/pwd  file=/dir/xxx.dmp  log=xxx.log  tables=table1,table2  fromuser=dbuser touser=dbuser2 commit=y ignore=y
 
(2)用户方式,将指定用户的所有对象及数据导出/导入。
导出:
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log wner=(xx, yy)
只导出数据对象,不导出数据  (rows=n )
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log wner=user rows=n
导入:
$  imp  user/pwd  file=/dir/xxx.dmp  log=xxx.log  fromuser=dbuser  touser=dbuser2
commit=y ignore=y
(3)全库方式,将数据库中的所有对象导出/导入导出:
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=ycommit=y ignore=y
导入:
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24628403/viewspace-695508/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 常用
下一篇: ora-12638
请登录后发表评论 登录
全部评论

注册时间:2011-05-16

  • 博文量
    4
  • 访问量
    1162