今天准备从正式库中expdp出Oracle数据库中用户real的所有数据,发现报错:
......
ORA-31693: 表数据对象 "REAL"."I_RECVS" 无法加载/卸载并且被跳过, 错误如下:
ORA-19502: 文件 "G:\expdp\real\backup\real_only_04.dmp", 块编号 13058 写错误 (块大小 = 4096)
ORA-27072: 文件 I/O 错误
OSD-04008: WriteFile() 失败, 无法写入文件
O/S-Error: (OS 1117) 由于 I/O 设备错误,无法运行此项请求。
ORA-19502: 文件 "G:\expdp\real\backup\real_only_04.dmp", 块编号 13058 写错误 (块大小 = 4096)
ORA-27072: 文件 I/O 错误
OSD-04008: WriteFile() 失败, 无法写入文件
O/S-Error: (OS 1117) 由于 I/O 设备错误,无法运行此项请求。
......
通过分析发现,这个的命令格式进行expdp导出备份时,会向flashback area写入备份数据,刚好我的flashback area空间不足,所以就出现了上面的错误!
进一步查找flashback area空间不足时发现,数据库服务器上预设的一个计划任务这些天一直执行不成功,该计划任务本来是每天清理过时的数据及归档日志备份的,其批处理命令如下:
rman cmdfile = script \AutoDelObsBak_drmis.rcv target
sys/******@drmis
catalog
rman/rman@rman
LOG=rman_clear.log
其中角本文件AutoDelObsBak_drmis.rcv 内容为:
run {
resync catalog;
crosscheck archivelog all;
delete noprompt expired archivelog all;
crosscheck backup;
delete noprompt expired backup;
report obsolete;
delete noprompt obsolete;
}
通过手工执行以上rman操作不成功,并报以下错误:
RMAN-03009: resync 命令(default 通道上,在06、05、2008 20:30:38 上)失败
RMAN-03009: resync 命令(default 通道上,在06、05、2008 20:30:38 上)失败
ORA-01653: 表RMAN.RSR 无法通过 8 (在表空间 RMAN_TS 中)扩展
表空间RMAN_TS是专为Oracle生成数据库数据备份用的catalog 恢复目录数据库中RMAN用户对应的表空间,到RMAN数据库上查看,确实发现RMAN_TS已达100%(非自动扩展),把RMAN_TS表空间加大后,重新清理过时备份数据后再expdp或rman数据备份,都不再报ORA-19502和ORA-27072错误。
总结:要定期查看flashback area及rman catalog 使用情况!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13165828/viewspace-604385/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13165828/viewspace-604385/