Oracle数据库导入失败

Oracle从服务器上导出的数据库,在导入到另外一个服务器的数据库时会出现不同的错误,最常见的两个错误解决方案如下:

1. 导出的数据库文件,在导入到另外一个数据库服务器时出现版本错误,通过notepad++打开需要导入的.dmp文件,查看当前电脑上的oracle版本号,将.dmp文件首行的版本号修改一致即可导入成功

2.导出的数据库文件出现空表时,在导入时报找不到表和视图错误,解决方案:通过在原数据库中执行语句:

select 'alter table '||table_name||' allocate extent(size 64k);' from tabs t     where not exists (select segment_name from user_segments s where s.segment_name=t.table_name);
查出记录为0 的表,并拼凑好修改sql,如下:

全选查询结果复制 粘贴 plsql 执行。

(给空表分配空间)

alter table LC_DA_LOADOFLINE allocate extent(size 64k);
alter table LC_DA_LINELOSS allocate extent(size 64k);
alter table LC_DA_ALARMINFO allocate extent(size 64k);
alter table LC_DA_ALARMHINTED allocate extent(size 64k);
alter table LC_DA_ALARMDETAIL allocate extent(size 64k);
alter table LC_AR_TERMINALTIME allocate extent(size 64k);
alter table FE_WRITESECT allocate extent(size 64k);
alter table FE_COLLECTMETERNUM allocate extent(size 64k);
alter table AR_POWERFILE_HIS allocate extent(size 64k);
alter table AR_CUSTOMERADDINFO allocate extent(size 64k);
alter table PS_POWERTRANSFORMER_HIS allocate extent(size 64k);
alter table PBCATVLD allocate extent(size 64k);
alter table PBCATTBL allocate extent(size 64k);
alter table PBCATCOL allocate extent(size 64k);
alter table MS_TEST_SJH allocate extent(size 64k);
alter table MS_TEMP_SESSIONNUM allocate extent(size 64k);
alter table MS_COMMONDATA_LDCK_HIS allocate extent(size 64k);

然后再执行exp命令导出数据库文件,即可。

将导出的文件在重新导入到另一个数据库服务器中。

--删除用户(需要登录超级管理员)
drop user qypsrsstest  cascade;
--创建用户
create user qypsrsstest identified by qypsrsstest123 default tablespace qypsrss temporary tablespace temp;
-- 为用户授权
grant connect,dba to qypsrsstest;

扫描二维码关注公众号,回复: 1176941 查看本文章

--导入数据库
imp qypsrsstest/qypsrsstest123@orcl fromuser=qypsrss touser=qypsrsstest file=D:\qypsrss.dmp 
--导出数据库
exp qypsrss/qypsrss123@dicpsi  file=D:\qypsrss.dmp owner=qypsrss log=D:\qypsrss.log

猜你喜欢

转载自a--bian.iteye.com/blog/2139525