设为首页 收藏本站
查看: 1139|回复: 0

[经验分享] oracle exp/imp示例及使用问题整理

[复制链接]

尚未签到

发表于 2018-9-11 06:36:21 | 显示全部楼层 |阅读模式
  oracle常用的迁移工具有exp,imp,expdp,impdp,dblink等方式,实际过程中可以根据工具特点,数据库的具体环境情况,灵活采用.
  exp/imp工具应方便简单使用,在数据量不大的情况下使用很频繁, 这个简要记录下使用中遇到的问题.
一、exp/imp版本不能往上兼容问题, 数据库的版本问题一定要搞清楚.
  1. 低版本的exp/imp可以连接高版本的数据库, 高版本exp/imp不能连接低版本的数据库.
  2. 高版本exp导出的dmp文件, 低版本imp命令无法导入.
  3. 低版本exp导出的dmp文件, 高版本imp命令可以导入.
  注意:
  操作者要有足够的权限,权限不够它会提示, 导入之前,需要创建相应的用户与表空间.
二、imp和exp使用的字符集不同
1. 查询数据库字符集
  SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
  PARAMETER                       VALUE
  ------------------------------- ----------
  NLS_CHARACTERSET                ZHS16GBK
  SQL> quit
2. 指定客户端字符集与数据库一致
  $ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
  windows系统下在cmd: set nls_lang=AMERICAN_AMERICA.ZHS16GBK
  否则,导出时会出现如下报错:EXP-00091: Exporting questionable statistics.
三、全库导出,单用户导入问题
1. 全库导出
  $ exp system/oracle file=system.dmp direct=y full=y;
  direct=y  直接路径读取
  recordlength=65535 缓冲区
2. 按用户导入要指定buffer参数,否则报错IMP-00032与IMP-00008.
  $ imp abc/abc file=system.dmp fromuser=abc touser=abc buffer=5400000;
3. 按用户导出该用户所有对象数据
  $ exp abc/abc file=abc.dmp direct=y log=abc.log
  注:要有记录日志的习惯,会查看报错的内容,针对处理.
四、示例:
1. 导出hr,tom用户下的所有对象
  exp hr/hr file=hr_tom.emp owner=hr,tom log=hr_tom.log
2. 导入hr对象
  imp hr/hr file=hr_tom.emp fromuser=hr touser=hr
3. 导入数据提速度示例
  buffer参数值可以减少磁盘读取的次数, ignore=y在导入表的时间出现存在的表,会直接增量导入数据.如果无一致性约束的话,会导入复制数据,feedback会显示进度.
  imp abc/abc file=abc.dmp buffer=10240000 commit=y feedback=100000 ignore=y
4. 表空间传输
  Oracle传输表空间迁移数据库
  http://koumm.blog.51cto.com/703525/1574822
5. 直接从DMP文件中提示SQL文件
  1) 从DMP文件中提示SQL文件
  imp abc/abc file=abc.dmp fromuser=abc touser=abc indexfile=abc.sql
  2) 涉及外键约束的表创建将不成功,这时应该分离出主键外键约束来,可以这样提取建表脚本:
  imp abc/abc file=abc.dmp fromuser=abc touser=abc indexes=n constraints=n indexfile=abc.sql
exp选项:
  buffer     :下载数据缓冲区,以字节为单位,缺省依赖操作系统
  consistent :下载期间所涉及的数据保持read only,缺省为n
  direct     :使用直通方式 ,缺省为n
  feeback    :显示处理记录条数,缺省为0,即不显示
  file       :输出文件,缺省为expdat.dmp
  filesize   :输出文件大小,缺省为操作系统最大值
  indexes    :是否下载索引,缺省为n,这是指索引的定义而非数据,exp不下载索引数据
  log        :log文件,缺省为无,在标准输出显示
  owner      :指明下载的用户名
  query      :选择记录的一个子集
  rows       :是否下载表记录
  tables     :输出的表名列表
  imp选项:
  buffer     :上载数据缓冲区,以字节为单位,缺省依赖操作系统
  commit     :上载数据缓冲区中的记录上载后是否执行提交
  feeback    :显示处理记录条数,缺省为0,即不显示
  file       :输入文件,缺省为expdat.dmp
  filesize   :输入文件大小,缺省为操作系统最大值
  fromuser   :指明来源用户方
  ignore     :是否忽略对象创建错误,缺省为n,在上载前对象已被建立往往是一个正常现象,所以此选项建议设为y
  indexes    :是否上载索引,缺省为n,这是指索引的定义而非数据,如果上载时索引已建立,此选项即使为n也无效,imp自动更新索引数据
  log        :log文件,缺省为无,在标准输出显示
  rows       :是否上载表记录
  tables     :输入的表名列表
  touser     :指明目的用户方


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-571641-1-1.html 上篇帖子: Red Hat 5.5安装oracle 10G 下篇帖子: Oracle Linux 5.8安装Oracle 10.2.0.5 x64-koumm的linux技术博客
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表