oracle数据库导出导入总结

本文详细介绍如何在Windows和Linux环境下使用命令行工具进行Oracle数据库的导出与导入操作,并提供了具体的命令示例及常见问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

windows导出:

之前我windows上只装了pl/sql,用工具/导出对象,只能导出表结构,达不到要求。

后来上了官网,下了oracle 11g的客户端(下载地址:链接:https://pan.baidu.com/s/1f9ou6lIdEmX5AFNEWcsvAQ 密码:j7n0),完整安装后,可以用命令行导出:

导出语句如下:

 

 exp username/password@ip/servicename file=XXX.dmp owner=XXX log=XXX.log ignore=y statistics=none compress=n  

导出前可以用 exp -help查看下参数的意思,能加上就加上,不然导入报错,各种坑。

linux导出:

同样,linux服务器上我也只装了个简化版的sqlplus,需增加exp文件。

如果没有图形化安装环境,只能到安装有客户端的机器上拷exp文件。

下载地址:链接:https://pan.baidu.com/s/14z7n1bHv9IWLl4ppPMyQnw 密码:bzwv

参考文章:https://blog.youkuaiyun.com/silence_ljh/article/details/9793691

                https://blog.youkuaiyun.com/huaishu/article/details/39056369

imp导入:

前面一开始导出没导好,后来导入也是各种坑。

导入步骤:

1.创建表空间your_tablespace
create tablespace your_tablespace datafile 'C:\tablespace\your_tablespace ' size 4000m autoextend on next 10m maxsize unlimited;
2.创建用户zhangshan 赋权 connet  resource  dba
对用户处理
revoke unlimited tablespace from zhangshan 
alter user zhangshan  quota 0 on system;//将用户在System表空间的配额置为0

alter user zhangshan  quota unlimited on your_tablespace;//设置在用户在your_tablespace

注:your_tablespace是你导出的用户所在的表空间名


3.导入:
imp username/password@ip/servicename file=C:\TEMP\xxx.dmp  log=C:xxx.log fromuser=xxx
 touser=zhangshan  ignore=y  statistics=none

 

后续:

最近升级公司应用又让我搞了一天,头痛,做好总结:

导出命令:

exp username/password@ip/servicename file=XXX.dmp owner=XXX log=XXX.log ignore=y statistics=none compress=n

导入命令:

imp username/password@ip/servicename file=XXX.dmp log=XXX.log full=y ignore=y

容易出现的问题:

(1)oracle有空表导出会报错,解决方案:

执行select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

粘贴运行结果sql直接运行; 

然后直接使用plsql导出数据表即可

(2)导出的表空间名与导入的表空间表不一致,造成无法导入数据,解决方法:

1)、可以用sed修改dmp文件,正常导入

sed -i 's/TEST_TS/USERS/g' a.dmp

2)、dmp文件包含导出时候表空间的信息,导入时候如果没有创建相应的表空间会提示表空间不存在

3)、如果几个表导出,导入时将错误忽略 ignore=y即可

4)、用transport_tablespace参数

exp transport_tablespace=y tablespaces=(TEST_TS) file=b.dmp

imp transport_tablespace=y file=b.dmp datafiles=/data1/oracle/test.dbf

总之,导入导出作好日志记录,就好排查问题,用pl/sql就没有日志,还是用命令行好。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值