今天备份数据库时出现:ORA-01455: converting column overflows integer datatype(转换列溢出整数数据类型)
因为客户端只有oracle8i的版本,而我要备份的数据库是9i的版本,出现了这个问题,于是我改登到要备份的数据库的服务器上再执行exp命令,没有出现这个问题,所以怀疑是数据库的版本问题。
在网上查这了资料,有网友同样遇到了这样的问题,
这个朋友经验看来还是不少的:
http://yangtingkun.itpub.net/post/468/214144
问题现状:
RMAN备份脚本中发现了错误信息。
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of crosscheck command at 08/15/2006 09:18:29
ORA-01455: converting column overflows integer datatype
解决办法:
SQL> select handle from rc_backup_piece where bs_key = 2074;
HANDLE
----------------------------------------------------------------
/data1/backup/testdata/88hudivo_1_1
RMAN> delete force noprompt backuppiece '/data1/backup/testdata/88hudivo_1_1';
using channel ORA_DISK_1
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
2117 2074 1 1 AVAILABLE DISK /data1/backup/testdata/88hudivo_1_1
deleted backup piece
backup piece handle=/data1/backup/testdata/88hudivo_1_1 recid=264 stamp=602328055
Deleted 1 objects
直接删除BACKUPSET会出现下面的错误:
RMAN> delete backupset 2074;
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=18 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of delete command at 09/28/2006 15:34:01
RMAN-06004: ORACLE error from recovery catalog database: ORA-01455: converting column overflows integer datatype
RMAN-06159: error while looking up backup set
删除成功后,问题解决。不过nocatalog方式仍然需要重建控制文件才能恢复正常。由于刚才删除了最新的备份,解决问题后,应马上对数据库进行备份。