分类: 服务器与存储
2008-06-14 13:34:34
RMAN> backup database; Starting backup at 30-NOV-07 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=23 devtype=DISK RMAN-00571: ============================= RMAN-00569: = ERROR MESSAGE STAK FOLLOWS = RMAN-00571: ============================= RMAN-03002: failure of backup command at 11/30/2007 12:30:48 ORA-00600: internal error code, arguments: [525], [0x700000118D65E98], [5], [library cache], [17], [0x700000000025618], [device information], [] ORA-27041: unable to open file IBM AIX RISC System/6000 Error: 25: Not a typewriter Additional information: 16 |
在alertlog中也有相同的ORA-600报错,检查了RMAN要备份的数据文件权限,检查了RMAN备份目的地的目录权限,检查了数据库启动之后RMAN备份之前的alertlog,没有发现任何异常,怪哉。
Metalink上相关的文章有:Note:262997.1 和 Bug No. 2181764。
只是简单地描述这是一个只有在AIX平台上才会碰到的问题,是因为RMAN在备份过程中查询X$KRBAFF表(KRB is Kernel Backup/Restore, AFF is disk and node AFFinity)引起的,解决方法是使用diskratio=0来进行备份,也就是backup命令要改为:
backup format 'path' database diskratio=0; |
diskratio参数很少用到,它指定的是RMAN从多少块磁盘上读取数据文件,默认值跟FILESPERSET参数相同,如果不指定FILESPERSET参数那么该参数值是4,但是RMAN仍然会考虑真正参与备份的磁盘数,如果小于4那么就选择较小的那个数。
更进一步地在内部站点上查一下资料可以看到跟源码中的skgfdlndv()函数有关。
只有raw devices才有affinity info,而这次的备份牵涉到的文件全部都是文件系统,如果对于文件系统调用了ioctl检查affinity info那么就会出现OER(27041)的报错。
问题是解决了,但是仍然有疑问。
是什么操作系统级别的设定(比如内核参数)或者级别的设定(比如PV或者VG的参数)导致必须要指定diskratio=0才能RMAN备份成功?