asm内存不足导致归档报错

数据库连接的时候发现连接异常:

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'


两个节点分别重启集群服务


请使用浏览器的分享功能分享到微信等