oracle数据导入表空间,Oracle 数据备份、回复以及导入时表空间不存在的解决方案...

Oracle 数据备份、恢复以及导入时表空间不存在的解决方案

一、数据备份(导出)

1、exp命令导出dmp文件(exp -help查看帮助信息)

命令:exp username/userpasswd@192.168.99.199/orcl file=C:\jds.dmplog=C:\jds.log tables=tablename...;(不写tables时表示导出当前用户所有表)

2、exp备份数据库中表结构(不要数据)

命令:exp username/userpasswd@192.168.99.199/orcl file=C:\jds.dmp log=C:\jds.logtables=tablename... rows=n;(不写tables时表示导出当前用户所有表)

3、PL/SQL导出

newReport Window--->写sql将要导出的数据查询出来--->Export Results导出不同文件类型的数据

1548081239.jpg

二、数据恢复(导入)

1、imp命令导入dmp文件(imp - help查看帮助信息)

命令:imp username/userpasswd@127.0.0.1:1521/orcl file=C:\jds.dmp full=y;

2、imp命令导入表结构(不要数据)

(1)dmp文件包含数据

命令:imp username/userpasswd@127.0.0.1:1521/orcl file=C:\jds.dmp full=y rows=n;

(2)dmp文件本身就不包含数据

命令:imp username/userpasswd@127.0.0.1:1521/orcl file=C:\jds.dmp full=y;

3、PL/SQL导入(貌似只能导入dmp文件)

Tools ---> import tables

1548081240.png

4、导入csv文件

csv文件样式(test.csv):

1548081241.png

删除第一行,确保第一行就是数据内容。

(1)创建对应字段的表(要导进去数据的表TableEmp)...

(2)创建ctl文件(test.ctl):

--指定外部数据文件(要导入的csv文件)

INFILE "G:/test.csv"--指定要导入的表(INSERT 要求导入之前表就为空;APPEND是指在表中追加记录;REPLACE表示删除旧记录‘delete’,替换成新纪录;TRUNCATE表示删除旧记录‘truncate’,替换成新纪录)

INSERT(APPEND,REPLACE,TRUNCATE) INTO TABLETableEmp--数据中每行记录默认用“,”隔开(为了防止数据记录中有‘,’则使用制表符X'09')

FIELDS TERMINATED BY X'09'

--表中字段没有对应值时,允许为空

TRAILING NULLCOLS (columnName1, columnName2...)

(3)执行命令:sqlldr username/userpasswd@orcl control=F:/test.ctl log=F:/test.log

1548081242

这个表示导入成功的数据行数。excel数据格式的数据可以通过更换数据格式为csv文件格式,再进行导入操作。

三、imp导入dmp文件出现错误(表空间“JDS”不存在)解决方案

方案一:

(1)用system用户登录,查找导入的目标数据库的默认表空间,可以根据用户名查询

select username, default_tablespace from dba_users where username='ZCL';

(2)执行修改表空间语句(假设目标数据库的表空间名是:JDS_DATA)

alter tablespace JDS_DATA rename to JDS;

(3)执行imp语句

(4)导入成功后,执行改回原来表空间的名称

alter tablespace JDS rename to JDS_DATA;

方案二:

根据log信息重新创建对应的表,然后再执行imp语句(注意:要加上ignore=y)1楼qiang.wang刚开始看以为这两个表空间都要存在,琢磨了下发现只需要把表空间的名字给改了就可以。这个也是省了重新去创建表空间了。感谢分享。Re: 可乐•雪碧•咖啡•茶@qiang.wang,不客气,大家一起交流探讨!我也是在别处看到的~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值