文档解释
ORA-01163: SIZE clause indicates string (blocks), but should match header string
Cause: The size specified in bytes in the SIZE clause of the CREATE CONTROLFILE statement does not equate to the number of blocks recorded in the header.
Action: Specify the correct filename and size ( in bytes ).
ORA-01163: SIZE clause indicates string (blocks), but should match header string错误是指数据库报错时,当用户试图创建或修改控制文件时,为每个数据文件或日志文件说明记录的块大小与控制文件的头部块大小不匹配时显示的错误代码。
官方解释
当你尝试创建或修改控制文件时,如果指定的块大小与控制文件的头部块大小不匹配,Oracle会给出如下报错:
SQL> ALTER DATABASE BACKUP CONTROLFILE to ‘/tmp/ctlfile.ctl’;
ALTER DATABASE BACKUP CONTROLFILE to ‘/tmp/ctlfile.ctl’
*
ERROR at line 1:
ORA-01163: SIZE clause indicates string (blocks), but should match header string (blocks)
常见案例
当前数据库控制文件的块大小与备份控制文件的块大小不一致,此时Oracle就会报错ORA-01163,来指示字符块大小必须要和头部块大小一致。
正常处理方法及步骤
1、首先使用 alter database backup controlfile to trace 检查提示的错误
2、按照提示,把块大小改成和头部相同,可以使用修改控制文件语句,也可以使用resize command来改变当前数据库块大小
3、使用alter database backup controlfile to 重新生成控制文件,使其块大小和头部大小一致
4、shutdown和startup数据库,检查重新生成的控制文件是否正常工作