数据库连接的时候发现连接异常:
ERROR:
ORA-00257: archiver error. Connect internal only, until freed.
检查数据库日志:
检查发现ASM实例shared pool空间不足,数据库无法连接ASM实例。
检查ASM SGA配置
SQL> show parameter target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_max_target big integer 560M
memory_target big integer 560M
pga_aggregate_target big integer 0
sga_target big integer 0
检查发现当前ASM 使用自动内存管理方式,目前设置大小为560M,该数值对于生产库来说小了,参考MOS文档ID 437924.1 ,Oracle建议ASM实例memory_target= 1536M,memory_max_target=4G
检查spfile文件
SQL> show parameter spfile
未发现spfile存在
检查最近一次ASM实例启动信息:
检查发现最近一次ASM实例启动使用的spfile是:
” +HWGZ_OCR/hwgz-cluster/asmparameterfile/registry.253.815866813”
- 检查当前磁盘组信息
SQL> select group_number,name,state,type,voting_files from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TYPE V
------------ ------------------------------ ----------- ------ -
1 OCRDG MOUNTED NORMAL Y
2 DATADG MOUNTED EXTERN N
3 ARCHDG MOUNTED EXTERN N
检查发现当前ASM上没有OCRDG磁盘组。
恢复处理:
因为当前ASM实例上没有spfile,所以这个时候必须要手工重建ASM SPFILE,手工建立pfile,内容如下:
+ASM1.asm_diskgroups='DATADG','ARCHDG'#Manual Mount
+ASM2.asm_diskgroups='DATADG','ARCHDG'#Manual Mount
*.asm_diskstring='/dev/raw/raw*'
*.asm_power_limit=1
*.diagnostic_dest='/u01/11.2.0/grid/log'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='EXCLUSIVE'
*.memory_target=1536M
*.memory_max_target=4096M
通过pfile创建spfile
SQL> create spfile='+OCRDG/hwgz-cluster/OCRFILE/spfile.ora' from pfile='/home/grid/asmpfile.ora'
修改两个节点$GRID_HOME/dbs目录下pfile文件
$ cat init+ASM1.ora
.*spfile=' +OCRDG/hwgz-cluster/OCRFILE/spfile.ora'
$ cat init+ASM2.ora
.*spfile=' +OCRDG/hwgz-cluster/OCRFILE/spfile.ora'
两个节点分别重启集群服务