oracle导入.dmp文件(linux)

本文详细介绍了如何在Linux环境下使用imp工具进行Oracle数据库的.dmp文件导入,包括全文件导入、用户导入和表导入三种模式。通过交互式和命令行方式演示了不同场景下的导入操作,并强调了导入前需要创建用户和设置权限的重要性。
部署运行你感兴趣的模型镜像
 

1.2用imp 工具进行数据库备份及恢复
  
  导入模式可以分为full(全文件导入),owner(用户导入),table(表导入).
  
  full(全文件导入):指导入文件中的所有数据,并不是指全库导入,如果文件中只存在一个表的数据全文件,导入就只能导入一个表的数据.
  
  fromuser,touser( 用户导入):指导入文件中该用户的所有数据,如果文件中只存在一个表的数据,用户导入就只能导入一个表的数据.
  
  tables( 表导入):指导入文件中该表的数据.
  
  能够导入何数据很大程度上依赖于导出文件,譬如需要导入某用户的所有数据.导出文件中必须存在该用户的所有数据,即导出时必须为全库导出或用户导出.在CAMS 系统中,如果为了备份整个cams 用户的数据应该在导出时选择全库或者用户导出.
  
  说明:
  
  导入时需要注意需要事先创建需要导入的用户以及该用户的所有权限,所以在执行以下导入的用例之前,都需要先创建cams用户.创建CAMS用户的脚本见附录
  
  1.2.1 典型用法
  
  1. 交互式-用户导入
  
  [oracle@localhost script]$ imp
  Import: Release 8.1.7.4.0 - Production on Mon Feb 9 13:59:02 2004
  (c) Copyright 2000 Oracle Corporation. All rights reserved.
  Username: cams --此处输入启动导入的用户
  Password: --此处输入相应的密码
  Connected to: Oracle8i Enterprise Edition Release 8.1.7.4.0 -Production
  JServer Release 8.1.7.4.0 - Production
  Import file: expdat.dmp > /tmp/2004020601.dmp
  
  --此处输入需要导入的文件名,如果导出数据时导出到了多个文件,
  
  则imp 会提示用户需要输入下一个需要导入的文件名.交互式导入时大多数参数都有缺省值.如果选用缺省值,直接回车即可.
  
  Enter insert buffer size (minimum is 8192) 30720>
  
  --此处需要输入buffer值,此处通常选择缺省值,直接回车.
  
  Export file created by EXPORT:V08.01.07 via conventional path
  import done in ZHS16CGB231280 character set and ZHS16CGB231280 NCHAR
  character set
  IMP-00046: using FILESIZE value from export file of 1073741824
  List contents of import file only (yes/no): no >
  
  --如果选择yes则imp 会显示出导入文件的数据,并且这些数据这不会被导入数据库中.如果事先不知道导入文件中有哪些数据,可以利用此参数查看文件内容.此处直接回车.
  
  Ignore create error due to object existence (yes/no): no > --是否忽略对象已经存在的错误,如果选择yes 则出现对象已经存在的错误时,不显示错误信息.
  
  Import grants (yes/no): yes > --是否导入授权通常选择yes
  
  Import table data (yes/no): yes > --是否导入表中数据如果选择no,则只导入表的结构通常选择yes
  
  Import entire export file (yes/no): no > --是否导入整个文件如果选择yes,则imp 导入整个文件的数据.如果选择no,则下面会提示需要导入的用户名以及表名
  
  Username: camsii --需要导入的用户名
  
  Enter table(T) or partition(T:P) names. Null list means all tables for
  
  user
  
  Enter table(T) or partition(T:P) name or . if done: . ?需要导入的表名或表的分区名如果输入表名则只导入该用户模式下的表的数据如果输入回车或
  .
  则表示要导出该用户的所有数据此处输入
  .
  . . importing table "TBL_BILLDETAIL_SWITCH" 0 rows imported
  . . importing table "TBL_BLACKLIST" 0 rows imported
  . . importing table "TBL_CHARGE_CARD" 0 rows imported
  . . importing table "TBL_DISCOUNT_BY_TIME" 0 rows imported
  . . importing table "TBL_ERROR_CODE" 377 rows imported
  
  …
  …
  About to enable constraints..
  .
  Import terminated successfully with warnings.
  
  该命令从文件中导入cams 用户的所有数据如果有多个文件imp 会提示用户输入文件名
  
  2. 交互式-表导入
  
  可以利用全库导出用户导出和表导出的文件进行表导入.此例可以使用exp典型用法的例1,例2,例3,例4,例5,例8导出的文件进行导入
  
  [oracle@localhost script]$ imp
  Import: Release 8.1.7.4.0 - Production on Mon Feb 9 15:49:36 2004
  (c) Copyright 2000 Oracle Corporation. All rights reserved.
  Username: cams
  
  Password:
  Connected to: Oracle8i Enterprise Edition Release 8.1.7.4.0 -Production
  JServer Release 8.1.7.4.0 - Production
  Import file: expdat.dmp > /tmp/2004020601.dmp
  Enter insert buffer size (minimum is 8192) 30720>
  Export file created by EXPORT:V08.01.07 via conventional path
  import done in ZHS16CGB231280 character set and ZHS16CGB231280 NCHAR
  character set
  IMP-00046: using FILESIZE value from export file of 2147483648
  List contents of import file only (yes/no): no >
  Ignore create error due to object existence (yes/no): no >
  Import grants (yes/no): yes >
  Import table data (yes/no): yes >
  Import entire export file (yes/no): no >
  Username: cams
  Enter table(T) or partition(T:P) names. Null list means all tables for
  user
  Enter table(T) or partition(T:P) name or . if done: tbl_log
  Enter table(T) or partition(T:P) name or . if done: tbl_user_log
  Enter table(T) or partition(T:P) name or . if done:
  
  --每输入一个表名后回车,imp 会提示用户输入下一个要导入的表名,如果想结束输入表名,需要输入回车或"."
  
  . importing CAMS's objects into CAMS
  . . importing table "TBL_LOG" 10 rows imported
  . . importing table "TBL_USER_LOG" 0 rows imported
  Import terminated successfully with warnings.
  
  该命令从文件中导入cams 用户的两个表的数据如果有多个文件imp 会提示用户输入文件名
  
  3. 命令行-查看文件内容
  
  imp userid=cams/cams@cams full=y show=y file=(tmp/2004020601.dmp,
  /tmp/2004020602.dmp, /tmp/2004020603.dmp) log=/tmp/20040206.log
  
  该命令查看了文件中都有哪些数据,如果有多个文件imp,会提示用户输入文件名导入过程记录日志.
  
  4. 命令行-全文件导入
  
  imp userid=cams/cams@cams full=y file=(/tmp/2004020601.dmp,
  /tmp/2004020602.dmp, /tmp/2004020603.dmp) log=/tmp/20040206.log
  
  该命令从文件中导入全部数据,如果有多个文件imp,会提示用户输入文件名,导入过程记录日志.
  
  5. 命令行-用户导入
  
  imp userid=cams/cams@cams fromuser=cams touser=cams
  file=(/tmp/2004020601.dmp, /tmp/2004020602.dmp, /tmp/2004020603.dmp)
  log=/tmp/20040206.log
  
  该命令从文件中导入cams用户的全部数据,导出的文件中必须要有cams,用户的数据表示将导出文件的cams 用户数据导入到数据库的cams 用户中,如果有多个文件imp,会提示用户输入文件名导入过程记录日志.
  
  6. 命令行-表导入
  
  imp userid=cams/cams@cams tables=(tbl_user, tbl_user_log)
  file=(/tmp/2004020601.dmp, /tmp/2004020602.dmp, /tmp/2004020603.dmp)
  log=/tmp/20040206.log
  
  该命令从文件中导入cams 用户的两个表的全部数据,导出的文件中必须要有cams 用户的这两个表的数据.如果有多个文件imp会提示用户输入文件名,导入过程记录日志
  
  7. 命令行-用户导入-从增量导出文件中导入
  
  imp userid=cams/cams@cams fromuser=cams touser=cams
  file=/tmp/2004020601.dmp log=/tmp/20040206.log
  
  该命令从增量导出文件中导入cams 用户新增的数据,导出的文件中必须要有cams 用户的数据,如果有多个文件imp 会提示用户输入文件名,导入过程记录日志.
  
  其实导入命令和是否增量导出文件没有关系,imp 会自动判断该文件是否为增量导出文件
  
  8. 参数文件-用户导入
  
  imp parfile=cams_imp.par
  
  cams_imp.par 文件的内容为:
  
  userid=cams/cams@cams
  fromuser=cams
  touser=cams
  file=(/tmp/2004020601.dmp, /tmp/2004020602.dmp, /tmp/2004020603.dmp)
  log=/tmp/20040206.log
  
  该命令使用了参数文件,导入文件中cams 用户的所有数据,导入过程记录日志.
  
  说明:
  
  (1) cams 用户保存了CAMS 系统的重要数据,为了不暴露cams 用户的密码可以将上面的userid 的值写为cams@cams,此时imp 会提示用户输入密码,输入的密码不会显示出来.

在windows下导入全部文件

在dos下 输入 :imp system/manager@local   full=y file=d:/iex.dmp

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

### 如何将Oracle.dmp文件分割成更小的文件 在处理大型Oracle数据库导出文件(`.dmp`)时,可能会遇到存储空间不足或传输不便的问题。为了应对这种情况,可以使用以下方法和工具来将`.dmp`文件分割成更小的文件。 #### 方法一:使用`split`命令分割`.dmp`文件 在Unix/Linux系统中,可以使用`split`命令将一个大的`.dmp`文件分割为多个较小的文件。例如: ```bash split -b 100M large_file.dmp small_file_ ``` 上述命令会将`large_file.dmp`文件按每100MB分割,并生成以`small_file_`为前缀的多个文件[^1]。 #### 方法二:通过`exp`工具直接分割导出文件 在导出数据库时,可以直接通过`exp`工具的参数设置来生成多个分割文件。例如: ```bash exp username/password file=(file1.dmp, file2.dmp, file3.dmp) filesize=100M log=export.log ``` 上述命令会在导出过程中生成三个大小为100MB的文件(`file1.dmp`, `file2.dmp`, `file3.dmp`),并记录日志到`export.log`文件中[^4]。 #### 方法三:使用`compress`或`gzip`压缩文件 如果目标是减少文件体积而不是分割文件,可以使用`compress`或`gzip`工具对`.dmp`文件进行压缩。例如: ```bash gzip large_file.dmp ``` 这将生成一个名为`large_file.dmp.gz`的压缩文件,体积通常会显著减小。 #### 方法四:使用`imp`工具导入分割后的文件 当需要重新导入分割后的`.dmp`文件时,可以使用`imp`工具指定所有分割文件。例如: ```bash imp username/password file=(file1.dmp, file2.dmp, file3.dmp) log=import.log ``` 上述命令会依次读取分割文件并完成导入操作[^4]。 #### 方法五:使用`impdp`工具与`filesize`参数 在Data Pump模式下,可以通过`impdp`工具的`filesize`参数来控制导出文件的大小。例如: ```bash expdp username/password directory=data_pump_dir dumpfile=large_file_%U.dmp filesize=100M ``` 上述命令会自动将导出文件分割为多个100MB大小的文件文件名格式为`large_file_01.dmp`, `large_file_02.dmp`等[^5]。 --- ### 注意事项 - 在使用`split`命令分割文件后,需确保接收方能够正确合并文件。 - 如果使用`exp`或`impdp`工具进行分割,需确保导入时指定所有分割文件的路径。 - 压缩文件虽然可以减少体积,但在某些场景下可能不支持直接导入压缩后的文件。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值