数据迁移:oracle数据库表结构导出exp、导入imp

导出一个用户(userA)下的表结构到另一个用户(userB)下:

  第一次使用的是exp、imp命令,同事告诉我可以使用expdp、impdp,两者差异不大,但是后者的功能更多一点,比如导入数据表空间的问题,impdp可以直接使用"remap_tablespace",下一篇文章在粗略的写一下。

导出:
$exp  userA/userApwd@oracle  file=/home/uat2cu/sjqywj/usera.dmp  log=user.log  rows=n tables='(table_name1,table_name2)' owner=userA;

$exp userA/userApwd@oracle file=/home/uat2cu/sjqywj/xxx.dmp log=xxx.log rows=n tables=’(table_name1,table_name2)’;

exp可选参数:
参数备注
owner=userA导出用户userA的数据表
rows=n只导出表结构、不导出表数据,默认为 y
tables = (name1,name2)导出指定的表。在linux中会报错syntax error near unexpected token `(’ 解决方法,在括号两边加 ‘引号
full=y表示导出全部数据,如视图、索引关联关系等
queryquery=\“where id < 100\” 引号要通过转义符转义
inctype增量导出模型,oracle9i的参数已经被废弃

  可以将参数组织成.par文件导出数据,建立一个forexp.par文件,文件内容为exp导出参数,eg:

// forexp.par
file = /home/uat2cu/sjqy/usera.dmp
log = user.log
full = y
rows = n
owner = userA
table = (name1,name2)
query = "where id < 100"

  $exp userA/userApwd@oracle parfile = forexp.par

导入:

$ imp userB/userBpwd@oracle file=/home/uat2cu/sjqywj/xxx.dmp log=xxx.log fromuser=userA touser=userB commit=y ignore=y tablespaces=表空间
ignore=y(表示忽略错误创建)

$  imp  userB/userBpwd@oracle file=/home/uat2cu/sjqywj/usera.dmp  log=user.log  ignore=y
imp可选参数(常用)
参数备注
fromuser所有人用户名列表
tables要导入的表名
ignore忽略错误创建,默认为n
commit数据分批提交,对大的数据进行imp操作应该使用commit=y参数,防止imp中断,数据回滚占用更多时间
rows导入表数据,默认为Y
indexes导入索引,默认为Y
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值