@@header /* * * Author : Vishal Gupta * Purpose : Display Exadata Errors * * Revision History: * =================== * Date Author Description * --------- ------------ ----------------------------------------- * 20-Feb-13 Vishal Gupta Created * */ PROMPT PROMPT ************************************************** PROMPT * E X A D A T A C E L L S T A T U S PROMPT ************************************************** COLUMN cell_path HEADING "CellPath" FORMAT a15 COLUMN cellname HEADING "CellName" FORMAT a18 COLUMN upTime HEADING "UpTime" FORMAT a15 COLUMN status HEADING "Status" FORMAT a7 COLUMN fanStatus HEADING "Fan|Status" FORMAT a6 COLUMN powerStatus HEADING "Power|Status" FORMAT a6 COLUMN temperatureReading HEADING "Temp|(C)" FORMAT a6 COLUMN temperatureStatus HEADING "Temp|Status" FORMAT a6 COLUMN locatorLEDStatus HEADING "Locator|LED" FORMAT a7 COLUMN offloadEfficiency HEADING "OffLoad|Efficiency" FORMAT 99999.99 COLUMN iormBoost HEADING "IORM|Boost" FORMAT 99999.99 SELECT * FROM ( SELECT MAX(DECODE(cc.conftype,'CELL',EXTRACTVALUE(XMLTYPE(confval),'/cli-output/cell/name') ,NULL)) cellname --, cc.cellname cell_path , LPAD(MAX(DECODE(cc.conftype,'CELL',EXTRACTVALUE(XMLTYPE(confval),'/cli-output/cell/upTime') ,NULL)),15) upTime , MAX(DECODE(cc.conftype,'CELL',EXTRACTVALUE(XMLTYPE(confval),'/cli-output/cell/status') ,NULL)) status , MAX(DECODE(cc.conftype,'CELL',EXTRACTVALUE(XMLTYPE(confval),'/cli-output/cell/fanStatus') ,NULL)) fanStatus , MAX(DECODE(cc.conftype,'CELL',EXTRACTVALUE(XMLTYPE(confval),'/cli-output/cell/powerStatus') ,NULL)) powerStatus , MAX(DECODE(cc.conftype,'CELL',EXTRACTVALUE(XMLTYPE(confval),'/cli-output/cell/temperatureStatus') ,NULL)) temperatureStatus , MAX(DECODE(cc.conftype,'CELL',EXTRACTVALUE(XMLTYPE(confval),'/cli-output/cell/temperatureReading') ,NULL)) temperatureReading , MAX(DECODE(cc.conftype,'CELL',EXTRACTVALUE(XMLTYPE(confval),'/cli-output/cell/locatorLEDStatus') ,NULL)) locatorLEDStatus FROM v$cell_config cc WHERE cc.conftype = 'CELL' GROUP BY cc.cellname ) WHERE ( status <> 'online' OR fanStatus <> 'normal' OR powerStatus <> 'normal' OR temperatureStatus <> 'normal' OR locatorLEDStatus <> 'off' OR TO_NUMBER(temperatureReading) > 29 ) ORDER BY cellname ; PROMPT PROMPT **************************************************** PROMPT * E X A D A T A P H Y S I C A L D I S K S PROMPT **************************************************** COLUMN cellname HEADING "CellName" FORMAT a10 COLUMN diskType HEADING "Disk|Type" FORMAT a10 COLUMN name HEADING "PhyDisk|Name" FORMAT a10 COLUMN status HEADING "Status" FORMAT a8 COLUMN physicalSize HEADING "Size|(GB)" FORMAT 999,999 COLUMN errMediaCount HEADING "Media|Error|Count" FORMAT 9999999 COLUMN errOtherCount HEADING "Other|Error|Count" FORMAT 9999999 COLUMN foreignState HEADING "Foreign|State" FORMAT a5 COLUMN physicalFirmware HEADING "Firm|Ware" FORMAT a6 COLUMN physicalInsertTime HEADING "InsertTime" FORMAT a10 TRUNC COLUMN physicalInterface HEADING "Interface" FORMAT a10 COLUMN predfailStatus HEADING "Pred|Fail|Status" FORMAT a5 COLUMN poorPerfStatus HEADING "Poor|Perf|Status" FORMAT a5 COLUMN wtCachingStatus HEADING "Write|Through|Caching|Status" FORMAT a5 COLUMN peerFailStatus HEADING "Peer|Fail|Status" FORMAT a5 COLUMN criticalStatus HEADING "Critical|Status" FORMAT a5 COLUMN physicalDatedSerial HEADING "Physical|Dated|Serial" FORMAT a12 BREAK ON REPORT COMPUTE SUM LABEL 'Total' OF physicalSize FORMAT 99,999,999,999 ON REPORT SELECT clioutput.cellname , pd.diskType , pd.name , pd.status , pd.errMediaCount , pd.errOtherCount , pd.foreignState , pd.predfailStatus , pd.poorPerfStatus , pd.wtCachingStatus , pd.peerFailStatus , pd.criticalStatus , pd.physicalDatedSerial FROM v$cell_config cc , XMLTable('/cli-output' PASSING XMLTYPE(confval) COLUMNS cellname VARCHAR2(100) PATH 'context/@cell' , physicaldisk XMLTYPE PATH 'physicaldisk' ) clioutput , XMLTable('/physicaldisk' PASSING clioutput.physicaldisk COLUMNS NAME VARCHAR2(100) PATH 'name' , deviceId VARCHAR2(100) PATH 'deviceId' , diskType VARCHAR2(100) PATH 'diskType' , devicePartition VARCHAR2(100) PATH 'devicePartition' , enclosureDeviceId VARCHAR2(100) PATH 'enclosureDeviceId' , errMediaCount INTEGER PATH 'errMediaCount' , errOtherCount INTEGER PATH 'errOtherCount' , foreignState VARCHAR2(100) PATH 'foreignState' , luns VARCHAR2(100) PATH 'luns' , makeModel VARCHAR2(100) PATH 'makeModel' , physicalFirmware VARCHAR2(100) PATH 'physicalFirmware' , physicalInsertTime VARCHAR2(100) PATH 'physicalInsertTime' , physicalInterface VARCHAR2(100) PATH 'physicalInterface' , physicalSerial VARCHAR2(100) PATH 'physicalSerial' , physicalSize INTEGER PATH 'physicalSize' , slotNumber VARCHAR2(100) PATH 'slotNumber' , status VARCHAR2(100) PATH 'status' , id VARCHAR2(100) PATH 'id' , key_500 VARCHAR2(100) PATH 'key_500' , predfailStatus VARCHAR2(100) PATH 'predfailStatus' , poorPerfStatus VARCHAR2(100) PATH 'poorPerfStatus' , wtCachingStatus VARCHAR2(100) PATH 'wtCachingStatus' , peerFailStatus VARCHAR2(100) PATH 'peerFailStatus' , criticalStatus VARCHAR2(100) PATH 'criticalStatus' , physicalDatedSerial VARCHAR2(100) PATH 'physicalDatedSerial' ) pd WHERE cc.conftype = 'PHYSICALDISKS' AND ( pd.status <> 'normal' OR pd.errMediaCount > 0 OR pd.errOtherCount > 0 OR pd.foreignState <> 'false' OR pd.predfailStatus <> 'FALSE' OR pd.poorPerfStatus <> 'FALSE' OR pd.wtCachingStatus <> 'FALSE' OR pd.peerFailStatus <> 'FALSE' OR pd.criticalStatus <> 'FALSE' ) ORDER BY clioutput.cellname , pd.diskType , pd.name ; PROMPT PROMPT ************************************************** PROMPT * E X A D A T A L U N S PROMPT ************************************************** COLUMN cellname HEADING "CellName" FORMAT a10 COLUMN diskType HEADING "Disk|Type" FORMAT a10 COLUMN name HEADING "LUN|Name" FORMAT a5 COLUMN status HEADING "Status" FORMAT a8 COLUMN lunSize HEADING "Size|(GB)" FORMAT 999,999 COLUMN cellDisk HEADING "CellDisk|Name" FORMAT a15 COLUMN deviceName HEADING "deviceName" FORMAT a10 COLUMN id HEADING "id" FORMAT a10 COLUMN isSystemLun HEADING "isSystemLun" FORMAT a5 COLUMN lunAutoCreate HEADING "lunAutoCreate" FORMAT a6 COLUMN lunUID HEADING "lunUID" FORMAT a6 COLUMN physicalDrives HEADING "physicalDrives" FORMAT a10 COLUMN raidLevel HEADING "Raid|Level" FORMAT a6 COLUMN lunWriteCacheMode HEADING "lunWriteCacheMode" FORMAT a61 SELECT clioutput.cellname , lun.diskType , lun.name , lun.status , ROUND(lun.lunSize/power(1000,3)) lunSize , lun.cellDisk , lun.deviceName , lun.id , lun.isSystemLun , lun.lunAutoCreate , lun.lunUID , lun.physicalDrives , lun.raidLevel , lun.lunWriteCacheMode FROM v$cell_config cc , XMLTable('/cli-output' PASSING XMLTYPE(confval) COLUMNS cellname VARCHAR2(100) PATH 'context/@cell' , lun XMLTYPE PATH 'lun' ) clioutput , XMLTable('/lun' PASSING clioutput.lun COLUMNS name VARCHAR2(100) PATH 'name' , cellDisk VARCHAR2(100) PATH 'cellDisk' , deviceName VARCHAR2(100) PATH 'deviceName' , diskType VARCHAR2(100) PATH 'diskType' , id VARCHAR2(100) PATH 'id' , isSystemLun VARCHAR2(100) PATH 'isSystemLun' , lunAutoCreate VARCHAR2(100) PATH 'lunAutoCreate' , lunSize NUMBER PATH 'lunSize' , lunUID VARCHAR2(100) PATH 'lunUID' , physicalDrives VARCHAR2(100) PATH 'physicalDrives' , raidLevel VARCHAR2(100) PATH 'raidLevel' , lunWriteCacheMode VARCHAR2(100) PATH 'lunWriteCacheMode' , status VARCHAR2(100) PATH 'status' ) lun WHERE cc.conftype = 'LUNS' AND ( lun.status <> 'normal' OR (lun.diskType = 'HardDisk' AND lun.lunWriteCacheMode NOT LIKE '%WriteBack%') ) ORDER BY clioutput.cellname , lun.diskType , lun.name ; PROMPT PROMPT ******************************************** PROMPT * E X A D A T A C E L L D I S K S PROMPT ******************************************** COLUMN cellname HEADING "CellName" FORMAT a10 COLUMN cellDiskName HEADING "CellDiskName" FORMAT a16 COLUMN status HEADING "Status" FORMAT a11 COLUMN creationTime HEADING "CreationTime" FORMAT a25 COLUMN deviceName HEADING "Device|Name" FORMAT a10 COLUMN devicePartition HEADING "Device|Partition" FORMAT a10 COLUMN diskType HEADING "DiskType" FORMAT a10 COLUMN celdisksize HEADING "Size|(GB)" FORMAT 999,999 COLUMN freeSpace HEADING "Free|Space|(MB)" FORMAT 9,999,999 COLUMN id HEADING "id" FORMAT a40 COLUMN errorCount HEADING "Error|(#)" FORMAT 99999 COLUMN interleaving HEADING "Inter|Leaving" FORMAT a8 COLUMN lun HEADING "Lun" FORMAT a5 COLUMN physicalDisk HEADING "Physical|Disk" FORMAT a15 COLUMN raidLevel HEADING "Raid|Level" FORMAT a5 SELECT clioutput.cellname , celldisk.diskType , celldisk.name cellDiskName , celldisk.status , celldisk.creationTime , celldisk.celdisksize/power(1024,3) celdisksize , celldisk.freeSpace/power(1024,2) freeSpace , celldisk.deviceName , celldisk.devicePartition , celldisk.errorCount errorCount , celldisk.interleaving , celldisk.lun , celldisk.physicalDisk , celldisk.raidLevel FROM v$cell_config cc , XMLTable('/cli-output' PASSING XMLTYPE(confval) COLUMNS cellname VARCHAR2(100) PATH 'context/@cell' , celldisk XMLTYPE PATH 'celldisk' ) clioutput , XMLTable('/celldisk' PASSING clioutput.celldisk COLUMNS NAME VARCHAR2(100) PATH 'name' , creationTime VARCHAR2(100) PATH 'creationTime' , deviceName VARCHAR2(100) PATH 'deviceName' , devicePartition VARCHAR2(100) PATH 'devicePartition' , diskType VARCHAR2(100) PATH 'diskType' , errorCount NUMBER PATH 'errorCount' , freeSpace NUMBER PATH 'freeSpace' , interleaving VARCHAR2(100) PATH 'interleaving' , lun VARCHAR2(100) PATH 'lun' , physicalDisk VARCHAR2(100) PATH 'physicalDisk' , celdisksize NUMBER PATH 'size' , raidLevel VARCHAR2(100) PATH 'raidLevel' , status VARCHAR2(100) PATH 'status' ) celldisk WHERE cc.conftype = 'CELLDISKS' AND ( status <> 'normal' OR errorCount > 0 OR freeSpace > 0 ) ORDER BY cellname , DiskType , cellDiskName ; PROMPT PROMPT ************************************************** PROMPT * E X A D A T A G R I D D I S K S PROMPT ************************************************** COLUMN cellname HEADING "CellName" FORMAT a10 COLUMN name HEADING "GridDiskName" FORMAT a25 COLUMN status HEADING "Status" FORMAT a11 COLUMN creationTime HEADING "Creation|Time" FORMAT a10 TRUNC COLUMN diskType HEADING "DiskType" FORMAT a10 COLUMN asmDiskgroupName HEADING "ASM|Diskgroup|Name" FORMAT a10 COLUMN asmDiskName HEADING "asmDiskName" FORMAT a25 COLUMN asmDiskgroupName HEADING "asmDiskgroupName" FORMAT a10 COLUMN asmFailGroupName HEADING "asmFailGroupName" FORMAT a10 COLUMN availableTo HEADING "Available|To" FORMAT a10 COLUMN cachingPolicy HEADING "Caching|Policy" FORMAT a10 COLUMN offset HEADING "offset|(GB)" FORMAT 999,999 COLUMN griddisksize HEADING "Size|(GB)" FORMAT 999,999 COLUMN errorCount HEADING "Error|(#)" FORMAT 99999 SELECT clioutput.cellname , griddisk.diskType , griddisk.name , griddisk.status , griddisk.asmDiskgroupName , griddisk.asmDiskName , griddisk.asmFailGroupName , griddisk.availableTo , griddisk.cachingPolicy , griddisk.creationTime , griddisk.errorCount , griddisk.offset/power(1024,3) offset , griddisk.griddisksize/power(1024,3) griddisksize FROM v$cell_config cc , XMLTable('/cli-output' PASSING XMLTYPE(confval) COLUMNS cellname VARCHAR2(100) PATH 'context/@cell' , griddisk XMLTYPE PATH 'griddisk' ) clioutput , XMLTable('/griddisk' PASSING clioutput.griddisk COLUMNS name VARCHAR2(100) PATH 'name' , asmDiskgroupName VARCHAR2(100) PATH 'asmDiskgroupName' , asmDiskName VARCHAR2(100) PATH 'asmDiskName' , asmFailGroupName VARCHAR2(100) PATH 'asmFailGroupName' , availableTo VARCHAR2(100) PATH 'availableTo' , cachingPolicy VARCHAR2(100) PATH 'cachingPolicy' , creationTime VARCHAR2(100) PATH 'creationTime' , diskType VARCHAR2(100) PATH 'diskType' , errorCount NUMBER PATH 'errorCount' , offset NUMBER PATH 'offset' , griddisksize NUMBER PATH 'size' , status VARCHAR2(100) PATH 'status' ) griddisk WHERE cc.conftype = 'GRIDDISKS' AND ( griddisk.status <> 'active' ) ORDER BY clioutput.cellname , griddisk.diskType , offset , griddisk.name ; @@footer