昨天上午,同事反映某系统在执行存储过程的过程中报错了,报错的信息异常如下:
05:00000:00009:2014/06/09 15:45:30.34 server Error: 8242, Severity: 16, State: 1
05:00000:00009:2014/06/09 15:45:30.34 server The table 'USER_FILES' in database 'PRODB' is bound to metadata cache memory. Unbind the table and retry the query later.
尝试对该表进行单表查询,发现没有报错,但是执行存储过程的过程中却又不可执行。经过查阅相关资料,发现该问题为ASE在较低版本下存在的BUG,主要是由于metadata cache有问题导致,解决办法主要有如下几个方面:
1、升级ASE版本,但是涉及到LISENCE的问题。
2、重启数据库。重新初始化metadata cache里的内容。
3、不重启数据库的情况下,通过dbcc cacheremove(库名,表名),将metadata cache中的信息移除。
由于在观察日志记录中发现存在问题的表还不少,为了保险起见,还是决定安排计划性重启数据库解决问题。
经过重启,问题得到处理。