程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 11.2.0.3ASM實例出現ORA-4031錯誤導致數據庫歸檔失敗

11.2.0.3ASM實例出現ORA-4031錯誤導致數據庫歸檔失敗

編輯:Oracle教程


環境:
平台:RedHat EnterPrise 5.8 X86_X64
數據庫:Oracle EnterPrise 11.2.0.3
集群軟件:Oracle grid 11.2.0.3


故障現象:
數據庫出現了歸檔失敗,其中有一個節點的實例出現HANG死的狀況。

日志信息如下:

 

 Fri Feb 28 19:49:04 2014
 ARC1: Error 19504 Creating archive log file to '+DATA02'
 ARCH: Archival stopped, error occurred. Will continue retrying
 ORACLE Instance orcl1 - Archival Error
 ORA-16038: log 14 sequence# 68244 cannot be archived
 ORA-19504: failed to create file ""
 ORA-00312: online log 14 thread 1: '+DATA02/orcl/onlinelog/group_14.264.792274883'
 ORA-00312: online log 14 thread 1: '+DATA02/orcl/onlinelog/group_14.265.792274889'
 Archiver process freed from errors. No longer stopped
 Fri Feb 28 19:50:22 2014
 ARC0: LGWR is actively archiving destination LOG_ARCHIVE_DEST_3
 ARCH: Archival stopped, error occurred. Will continue retrying
 ORACLE Instance orcl1 - Archival Error
 ORA-16014: log 14 sequence# 68244 not archived, no available destinations
 ORA-00312: online log 14 thread 1: '+DATA02/orcl/onlinelog/group_14.264.792274883'
 ORA-00312: online log 14 thread 1: '+DATA02/orcl/onlinelog/group_14.265.792274889'
 ARC0: Archive log rejected (thread 1 sequence 68240) at host 'orclsh'
 FAL[server, ARC0]: FAL archive failed, see trace file.
 ARCH: FAL archive failed. Archiver continuing
 ORACLE Instance orcl1 - Archival Error. Archiver continuing. 

分析:
由於歸檔失敗發生在ASM磁盤上,首先檢查ASM磁盤空間以及DB_RECOVERY_FILE_DEST_SIZE,ASM磁盤空間是足夠的,而且由於只有一個節點出現出現了無法歸檔的問題,也可以排除是空間不足造成的。確認兩個節點的DB_RECOVERY_FILE_DEST_SIZE參數設置都是0,基本上可以判斷問題和當前節點的ASM實例狀態不正常有關。

檢查ASM實例的錯誤信息:

 Fri Feb 28 19:41:23 2014
 Dumping diagnostic data in directory=[cdmp_20130702164115], requested by (instance=2, osid=2032294 (LMD0)), summary=[incident=165521].
 Fri Feb 28 19:49:19 2014
 Dumping diagnostic data in directory=[cdmp_20130702164845], requested by (instance=2, osid=2032294 (LMD0)), summary=[incident=165522].
 Fri Feb 28 19:55:56 2014
 Dumping diagnostic data in directory=[cdmp_20130702165517], requested by (instance=2, osid=2032294 (LMD0)), summary=[incident=165523].

當前節點ASM實例出現了的這個信息,說明報錯發生在實例2上:

Fri Feb 28 18:34:25 2014
 Errors in file /u01/app/grid/diag/asm/+asm/+ASM2/trace/+ASM2_lmd0_2032294.trc (incident=186256):
 ORA-04031: unable to allocate 3768 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","ges enqueues")
 Use ADRCI or Support Workbench to package the incident.
 See Note 411.1 at My Oracle Support for error and packaging details.
 Insufficient shared pool to allocate a GES object (ospid 2032294)
 Fri Feb 28 18:29:53 2014
 Sweep [inc][186256]: completed
 Fri Feb 28 18:36:49 2014
 Errors in file /u01/app/grid/diag/asm/+asm/+ASM2/trace/+ASM2_lmd0_2032294.trc (incident=186257):
 ORA-04031: unable to allocate 3768 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","ges enqueues")
 Use ADRCI or Support Workbench to package the incident.
 See Note 411.1 at My Oracle Support for error and packaging details.
 Insufficient shared pool to allocate a GES object (ospid 2032294)

果然實例2上的ASM出現了大量ORA-4031錯誤。檢查ASM啟動的參數配置:

Fri Feb 28 20:06:55 2012
 NOTE: No asm libraries found in the system
 ERROR: -5(Duplicate disk DATA_DG01:ASM_DISK1)
 ERROR: -5(Duplicate disk DATA_DG01:ASM_DISK2)
 MEMORY_TARGET defaulting to 411041792.
 * instance_number obtained from CSS = 2, checking for the existence of node 0... 
 * node 0 does not exist. instance_number = 2 
 Starting ORACLE instance (normal)
 LICENSE_MAX_SESSION = 0
 LICENSE_SESSIONS_WARNING = 0
 Private Interface 'en1' configured from GPnP for use as a private interconnect.
[name='en1', type=1, ip=169.254.78.6, mac=00-1a-64-bb-50-7d, net=169.254.0.0/16, mask=255.255.0.0, use=haip:cluster_interconnect/62]
 Public Interface 'en0' configured from GPnP for use as a public interface.
[name='en0', type=1, ip=10.1.16.35, mac=00-1a-64-bb-50-7c, net=10.1.16.32/27, mask=255.255.255.224, use=public/1]
 Picked latch-free SCN scheme 3
 Using LOG_ARCHIVE_DEST_1 parameter default value as /u01/app/11.2.0.3/grid/dbs/arch
 Autotune of undo retention is turned on. 
 LICENSE_MAX_USERS = 0
 SYS auditing is disabled
 NOTE: Volume support enabled
 Starting up:
 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
 With the Real Application Clusters and Automatic Storage Management options.
 ORACLE_HOME = /u01/app/11.2.0.3/grid
 System name: AIX
 Node name: orcldb2
 Release: 1
 Version: 6
 Machine: 00C94E064C00
 Using parameter settings in server-side pfile /u01/app/11.2.0.3/grid/dbs/init+ASM2.ora
 System parameters with non-default values:
large_pool_size = 12M
instance_type = "asm"
remote_login_passwordfile= "EXCLUSIVE"
asm_diskstring = "/dev/ocr_*"
asm_diskstring = "/dev/voting_*"
asm_diskstring = "/dev/asm_*"
asm_diskgroups = "DATA"
asm_diskgroups = "DATA_DG01"
asm_diskgroups = "SPFILE_DG"
asm_power_limit = 1
diagnostic_dest = "/u01/app/grid"
 Cluster communication is configured to use the following interface(s) for this instance
169.254.78.6
 cluster interconnect IPC version:Oracle UDP/IP (generic)
 IPC Vendor 1 proto 2

調整及建議:
當前ASM實例使用默認的MEMORY_TARGET配置,分配大小大約是400M,根據Oracle的MOS文章:ASM & Shared Pool (ORA-4031) [ID 437924.1],在11.2.0.3中,Oracle增加了ASM實例所允許的默認進程數PROCESSES,但是默認的MEMORY_TARGET參數沒有增加。
根據Oracle的建議,11.2.0.3的MEMORY_TARGET至少應該設置到1536M,而MEMORY_MAX_TARGET設置為4096M。  
SQL> alter system set memory_max_target=4096m scope=spfile;

SQL> alter system set memory_target=1536m scope=spfile;

對於當前的情況,如果短時間內無法重啟DB和ASM實例,可以在問題節點配置一個本地歸檔路徑,設置目標路徑為本地磁盤,從而避免歸檔無法完成而導致的實例HANG死。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved