Oracle归档空间不足导致 imp 大数据假死


这里说的大数据只是相对来讲,试验用的数据大小为4GB...

先描述下出现的状况,首先,用vmware workstation 9 新建一个虚拟机,安装CentOS 6,在Oracle官方下载了联机文档,安照官方的文档一步一步操作。(其实安装次数多了也就明白了,安装oracle无非是做好这些工作:1,必须有图 形界面。2,所需要的包要安装齐全。3,更改内核参数。4,建立用户,以及组群。5,安装目录授权)之前oracle一直没有RHEL6的安装文档,现在 有了,我下载了最新的oracle数据库安装文件(怕老版本检测那关通不过)。这是官方文档下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/documentation/index.html

在这里我罗嗦一下,发现个奇怪问题,所依赖的包全部安装完毕之后,安装oracle软件时候,检测好多软件包没装,我挨个查,确定100%安装了,但是就 是检测没安装(安装的软件包比它要求安装的要新),不过,文档写的很清楚,or laster ,明明支持更新的版本...

当自己确认了,没问题了,直接ignore all 忽略所有,继续安装,一路顺畅,没有报错~~

上面只是说了一下安装时候有点有郁闷,在RHEL5上安装就很好,这方面应该是oracle的问题。下面,就是导入数据遇到的问题,当我安装好了数据库, 创建了表空间,开始导入数据的时候,之前一切顺利,后来卡在半路死活不动。我以为虚拟机假死,问候了vmware好几次。可是我发现在虚拟机下干嘛都很 快,但是就是倒入一半就死掉了。死活不动了。如果这时候你用ctrl+c,强制终止的话,你关掉虚拟机再开机就会报错露,很经典的错误。ORA-03113: 通信通道的文件结尾(错误解决)这个链接大家看看。

后来知道,会话没结束就强制终止了所以才会出现如此错误。如果真的强制结束了没关系,把会话也结束掉就可以了。

select sid,serial#,status,server from v$session where username='ABC';  ----ABC就是用户啦~

oracle会通过系统标识符(system Identifier,SID)和序列号(Serial Number,SERIAL#)唯一标识一个会话。看看处于活动状态的(active)的会话是哪个,把它结束掉。

alter system kill session '7,15';

这里举个例子,终止会话(SID=7,SERIAL#=15)。

把会话结束掉就不会有ORA-03113的错误问题了。

后来发现,造成以上现象的问题在于----归档!!

归档的日志空间满了,所以一直卡在那里不动了!有两个办法解决这个问题,1:增加归档日志空间(我默认安装好之后是4GB),2,删除一些归档日志。

一:增加归档日志空间大小

select * from v$recovery_file_dest;

show parameter db_recovery_file_dest

查看归档日志大小,以及空间使用情况。

alter system set db_recovery_file_dest_size=20G;

二:删除归档日志(以下复制于网络文章)

以ORACLE用户身份登录到数据库服务器

进入ORACLE数据备份工具

rman target/

或rman target/@orcl

2.在命令窗口里面执行

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

说明

SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除  闪回的数据。

同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库。

DELETE ARCHIVELOG FROM TIME 'SYSDATE-7';

相关内容