Service 네트워크와 Management 네트워크는 데이터베이스 서버, 스토리지 서버,
Infiniband Network Switch, CISCO Ethernet Switch, PDU 및 1G와의 네트워크로 아래와 같이 연결되어 있습니다.

§ 데이터베이스 서버: SQL*Plus, CRSCTL, SRVCTL, Dbmcli(Image 12.1.2.1.0 이상)
§ ASM : ASMCMD , SQL*Plus
§ 스토리지 서버: Cellcli , Dcli
1) SQL*Plus
스토리지 서버가 데이터베이스 서버에서 가용해 지면 그 외의 동작은 전통적인 Oracle RAC 데이터베이스와 유사합니다. 따라서 기존 데이터베이스에서 쓰던 방식 그대로 SQL*Plus 를 통해서 데이터베이스를 모니터링 및 관리할 수 있습니다.
2) SRVCTL
Oracle 데이터베이스 11gR2/12c RAC Cluster 를 관리하는 command line interface 툴 입니다. Cluster 리소스에 대한 start/stop 과 상태 체크를 할 수 있습니다.
3) CRSCTL
Oracle 데이터베이스 11gR2/12c RAC Cluster 를 관리하는 또 다른 툴 입니다.
4) ASMCMD
Diskgroup 이나 Backup 등과 같은 ASM 자원에 대한 관리를 할 수 있는 command line interface 툴 입니다.
5) Ibstatus
Infiniband 장치에 대한 상태를 점검할 수 있는 툴 입니다.
6) Cellcli
Exadata 스토리지 서버를 관리하기 위한 command line 툴 입니다.
7) dbmcli
Exadata 데이터베이스 서버를 관리하기 위한 command line 툴 입니다. 데이터베이스 서버를 관리 및 모니터링 하기 위한 기본적인 명령어들을 수행하는 툴입니다. 단, Image 12.1.2.1.0 이상부터 지원

1) OS: Solaris 와 Linux 중 선택하여 사용 가능 하나 Solaris 버전의 경우 12.1.1.1.1 버전까지만 지원 합니다.
2) 버전: Oracle 데이터베이스 11gR2/12c 버전을 사용하며 Exadata 만의 특별한 버전은 없습니다.
3) ASM (Automatic Storage Management): 데이터베이스 서버 소프트웨어의 중요 구성요소로 파일 시스템 및 볼륨의 관리 기능을 제공 합니다
4) DBRM (Database Resource Manager): DBRM과 IORM 은 통합되어 자원관리에 사용 되며 시스템 자원에 대한 우선순위에 따라 자원을 할당할 수 있습니다.
5) libcell : Oracle 데이터베이스가 스토리지 서버와 통신하는데 사용하는 라이브러리입니다.
6) dbmcli : 데이터베이스 서버 관리를 위한 Command Line Interface 입니다.
7) MS(Managment Server) : DB서버 모니터링 및 Configuration을 관리 합니다.
8) RS(Restart Server) : MS 서비스의 시작, 종료, 모니터링을 제공 합니다.
1) iDB : 스토리지 서버와 데이터베이스 서버간의 통신을 하는데 사용하는 프로토콜 입니다.
2) RDS(Reliable Datagram Sockets) : iDB 프로토콜의 근간이 되는 프로토콜로 CPU 사용에 대한 장점을 제공 합니다.
1) OS: Exadata 스토리지 서버의 운영 시스템은 오라클 리눅스 X86_64 만 제공 합니다.
2) 버전: 12.1.2.1.0 (X5 기본 설치 버전)
3) Cellsrv : 데이터베이스 서버의 I/O 요청을 처리하는 멀티스레드 프로그램 입니다.
4) Cellcli : 스토리지 서버 관리를 위한 Command Line Interface 입니다.
5) MS(Management Server) : Cellsrv 와 Cellcli 사이의 인터페이스를 제공하는 관리 프로그램입니다.
6) RS(Restart Server) : Cellsrv 와 MS 서비스의 시작, 종료, 모니터링을 제공 합니다.
7) IORM : DBRM 과 통합 되어 관리자가 정의한 우선순위에 따라 I/O 를 할당할 수 있습니다.
IORM은 'I/O Resource Manager'의 약자입니다.
정리: 엑사는 스토리지 서버와 인피니벤드와 데이터베이스 서버 이렇게 3가지로 구성되어 있고 스토리지 서버에서 데이터 베이스 서버로 데이터를 빠르게 전송하기 위해 오라클에 자체적으로 만든 “스마트 스캔” 기술을 통해 엑사 데이터 베이스 서버를 최적화 했다.
리눅스 시스템의 전반적인 여유공간이 얼마나 있는지 점검합니다.
[root@krxa01 ~]# **df –h**
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VGExaDb-LVDbSys1
30G 23G 5.4G 81% / à Root 파티션, 리눅스 S/W 설치공간
/dev/sda1 496M 38M 433M 8% /boot à 리눅스 부팅을 위한 S/W 설치공간
/dev/mapper/VGExaDb-LVDbOra1
99G 12G 83G 13% /u01 à 오라클 11gR2 S/W 설치 디렉토리
tmpfs 252G 3.9M 252G 1% /dev/shm à Swap 영역
네, df -h 명령어의 결과를 보면, 전반적으로 문제는 없는 것으로 보입니다. 각 파일 시스템의 사용률을 보면 사용 가능한 공간이 충분히 남아 있으며, 특히 중요한 루트 파일 시스템(/)의 경우에도 19%의 여유 공간이 남아 있습니다.
그러나 최적의 성능을 위해, 주기적으로 파일 시스템의 사용량을 모니터링하고 필요에 따라 추가적인 공간을 확보하는 것이 좋습니다. 특히 / 파일 시스템은 중요한 시스템 파일과 프로그램이 저장되는 곳이므로, 이 공간이 부족하면 시스템 성능에 영향을 미칠 수 있습니다.
아래의 예시와 같이 profile에 Grid Infrastructure 및 Oracle Home 이외에 log 발생 위치 등을 alias로 지정하여 운영 시 편리하게 관리 및 접근 가능합니다.
alias adump='cd /u01/app/oracle/diag/asm/+asm/+ASM${NODE}/trace'
alias bdump='cd /u01/app/oracle/diag/rdbms/${DBNAME}/$ORACLE_SID/trace'
alias crsstat='crsctl stat res -t'
alias ll='ls -altr'
alias ob='cd $ORACLE_BASE'
alias oh='cd $ORACLE_HOME'
alias pat='cd /u01/stage/patch'
alias sp='sqlplus / as sysdba'
alias t_asmlog='tail -f $ORACLE_BASE/diag/asm/+asm/+ASM{NODE}/trace/alert_+ASM{NODE}.log'
alias t_crsdlog='tail -f $GRID_HOME/log/`hostname -a`/crsd/crsd.log'
alias t_cssdlog='tail -f $GRID_HOME/log/`hostname -a`/cssd/ocssd.log'
alias t_dblog='tail -f $ORACLE_BASE/diag/rdbms/${DBNAME}/$ORACLE_SID/trace/alert_${ORACLE_SID}.log'
alias v_asmlog='vi $ORACLE_BASE/diag/asm/+asm/+ASM1/trace/alert_+ASM{NODE}.log'
alias v_crsdlog='vi $GRID_HOME/log/`hostname -a`/crsd/crsd.log'
alias v_cssdlog='vi $GRID_HOME/log/`hostname -a`/cssd/ocssd.log'
alias v_dblog='vi -f $ORACLE_BASE/diag/rdbms/${DBNAME}/$ORACLE_SID/trace/alert_${ORACLE_SID}.log'
마찬가지로 profile에 필요한 환경변수를 설정하여 운영 시 편리하게 관리 및 접근 가능합니다.
export LANG=ko_KR.euckr
# User specific environment and startup programs
export ORACLE_BASE=/u01/app/oracle
export ORA_CRS_HOME=/u01/app/11.2.0.4/grid
export GRID_HOME=/u01/app/11.2.0.4/grid
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
export NLS_LANG=American_America.KO16KSC5601
export ORACLE_UNQNAME=KRX
export NLS_DATE_FORMAT=yyyymmdd
export ORAENV_ASK=NO
NODE=`hostname -a | awk 'BEGIN { FS="" } { print $NF }'`
export ORACLE_SID=${ORACLE_UNQNAME}${NODE}
#. oraenv
DBNAME=`echo $ORACLE_UNQNAME|tr '[A-Z]' '[a-z]'`
# Each RAC node must have a unique ORACLE_SID. (i.e. orcl1, orcl2,...)
export EDITOR=vim
export ORAENV_ASK=YES
export CLASSPATH=$ORACLE_HOME/jdbc/lib/ojdbc5.jar:$ORACLE_HOME/jdbc/lib/ojdbc5_g.jar:.
export ORACLE_PATH=/u01/app/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export PATH=$PATH:$GI_HOME/bin:$ORACLE_HOME/jdk/bin:$ORACLE_HOME/bin
export PATH=.:${PATH}:/bin:/usr/bin:/sbin:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin
export PATH=${PATH}:/opt/oracle.SupportTools:/opt/oracle.SupportTools/ibdiagtools:/opt/oracle.SupportTools/onecommand
export PATH=${PATH}:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/kerberos/bin
export PATH=${PATH}:$ORACLE_HOME/lib
export PS1='\u@\h:$PWD> '
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$GRID_HOME/lib:/lib:/usr/lib:/usr/local/lib
set -o vi
set -o vi는 쉘 명령어 편집을 vi 편집기 스타일로 설정하는 명령어입니다. 이를 통해 사용자는 명령어 입력 시 vi 편집기와 같은 방식으로 텍스트를 편집할 수 있게 됩니다.

🌟 DB버에서는 기본적으로 ADR, Hardware, Software, Metric 기준으로 지정된 threshold에 따라 alert을 발생시키며, 추가로 생성하거나 threshold 를 상황에 맞게 변경하여 관리할 수 있습니다.
🌟 Alert 은 warning, critical, clear, info 의 4가지 레벨로 분류되어 그 종류와 중요도에 따라 SNMP와 연계한 Notification 구성도 가능합니다. Enterprise Manager 를 활용해서 Metric 을 모니터링을 하는 경우, 구성 변경이나 모니터링 interval 을 고려하여 undeliver 된 alert 로그를 때때로 확인하고 관리해야 합니다.
🌟 DBMCLI를 이용하여 DB서버에서 발생한 모든 alert 로그를 확인합니다.
[root@krxadb01 ~]# dbmcli
DBMCLI: Release - Production on Sun Feb 01 21:03:40 KST 2015 Copyright (c) 2007, 2014, Oracle. All rights reserved.DBMCLI>
DBMCLI> list alerthistory
1_1 2015-01-20T12:11:53-08:00 critical "A power supply component is suspected of causing a fault with
a 100 certainty. Component Name : /SYS/PS0 Fault class : fault.chassis.power.ext-fail Fault message
: http://support.oracle.com/msg/SPX86A-8003-EL" 1_2 2015-01-20T12:12:24-08:00 clear
"A power supply component fault has been cleared. Component Name : /SYS/PS0 Trap Additional Info :
fault.chassis.power.ext-fail" 2_1 2015-01-20T12:16:49-08:00 critical "A power supply
component is suspected of causing a fault with a 100 certainty. Component Name : /SYS/PS1 Fault class
: fault.chassis.power.ext-fail Fault message : http://support.oracle.com/msg/SPX86A-8003-EL"
2_2 2015-01-20T12:16:55-08:00 clear "A power supply component fault has been cleared.
Component Name : /SYS/PS1 Trap Additional Info : fault.chassis.power.ext-fail"
DBMCLI>
DBMCLI를 이용하여 DB서버에서 발생한 모든 alert 로그를 확인하였고, 결과에 따르면 '2_1' 및 '2_2' 에 대한 경고가 발생하였습니다. 이 경고들은 특정 파워 서플라이 컴포넌트가 장애를 일으킬 가능성이 있다는 것을 보여주고 있습니다.
하지만, 각 경고에 대한 상세 정보를 보면, '2_1' 경고는 이미 클리어(clear)되었으며 '2_2' 경고 또한 클리어되었다는 것을 알 수 있습니다. 이는 해당 문제가 이미 해결되었음을 나타냅니다.
따라서, 현재 시점에서 DBMCLI 실행 결과로부터 파악되는 문제는 없습니다. 하지만, 이러한 경고가 발생한 원인을 파악하고, 필요하다면 추가적인 조치를 취하는 것이 좋습니다.
🔎 조금 더 상세한 정보를 보려면?
DBMCLI> **list alerthistory 2_1 detail**
name: 2_1 alertDescription: "A power supply component suspected of causing a fault"
alertMessage: "A power supply component is suspected of causing a fault with a 100 certainty.
Component Name : /SYS/PS1 Fault class : fault.chassis.power.ext-fail Fault message
: http://support.oracle.com/msg/SPX86A-8003-EL" alertSequenceID: 2
alertShortName: Hardware alertType: Stateful beginTime:
2015-01-20T12:16:49-08:00 endTime: 2015-01-20T12:16:55-08:00
examinedBy: metricObjectName: /SYS/PS1_FAULT
notificationState: 0 sequenceBeginTime: 2015-01-20T12:16:49-08:00
severity: critical alertAction:
"For additional information, please refer to **http://support.oracle.com/msg/SPX86A-8003-EL**"
DBMCLI>
로그 상세에 따르면 DB서버 환경 설정 검증 중 오류가 발견되었고, 그에 따른 조치 권고사항을 제시하고 있습니다.
😄 노션 ai 에게 물어보기 ❓
다음과 같이 질문하세요 : 위의 코드 박스안에 list alerthistory 2_1 detail 의 명령어의 결과가 뭘 나타내는지 알려줘
💎 노션 ai 가 알려준 결과:
"list alerthistory 2_1 detail" 명령어의 결과는 특정 경고 이력에 대한 자세한 정보를 보여줍니다. 여기서는 "2_1" 이라는 이름의 경고에 대한 상세 정보를 보여줍니다. 이 정보에는 경고의 설명, 메시지, 시퀀스 ID, 유형, 시작 시간, 종료 시간, 심각도, 액션 등이 포함되어 있습니다. 특히 이 경우, "/SYS/PS1"이라는 컴포넌트가 100% 확신으로 장애를 일으키는 것으로 의심되고 있음을 알려주고 있습니다.
alert 의 정의와 관련 metric 정보를 조회하여 문제 해결의 참고 정보로 활용할 수 있습니다.
DBMCLI> list alertdefinition attributes name, metricname, alertsource, description where alertshortname='ADR'
ADRAlert "Automatic Diagnostic Repository" "Incident Alert"
"list alertdefinition attributes name, metricname, alertsource, description where alertshortname='ADR'" 명령어는 'ADR'라는 짧은 이름(shortname)을 가진 경고 정의(alertdefinition)의 속성들을 나열하는 역할을 합니다. 이 명령어는 경고 정의의 이름, 메트릭 이름, 경고 소스, 설명 등의 속성을 표시합니다.
또한, 중요한 alert 을 조회하기 위해 filtering 할 수 있습니다.
DBMCLI> list alerthistory where severity = 'clear'
1_2 2015-01-20T12:12:24-08:00 clear "A power supply component fault has been cleared. Component Name : /SYS/PS0 Trap Additional Info : fault.chassis.power.ext-fail"
2_2 2015-01-20T12:16:55-08:00 clear "A power supply component fault has been cleared. Component Name : /SYS/PS1 Trap Additional Info : fault.chassis.power.ext-fail"
"DBMCLI> list alerthistory where severity = 'clear'" 명령어는 'clear'라는 심각도(severity)를 가진 모든 알림 이력(alerthistory)를 나열하는 역할을 합니다. 이 명령어는 기본적으로 문제가 해결된(clear) 알림 이력만을 표시합니다.
문제. 데이터 베이스에 경고 메세지를 확인하는데 경고 심각도가 critical 인 경고 메세지를 조회하시오 !
!
DBMCLI> list alerthistory where severity = 'critical'
DBMCLI를 이용하여 대상 DB서버의 상태를 확인합니다.
DBMCLI> **list dbserver detail**
name: krxacel01
bbuStatus: normal
coreCount: 2
cpuCount: 4
diagHistoryDays: 7
fanCount: 16/16
fanStatus: normal
id: 1438NM103T
interconnectCount: 2
kernelVersion: 2.6.39-400.246.1.el5uek
locatorLEDStatus: off
makeModel: Oracle Corporation ORACLE SERVER X5-2
metricHistoryDays: 7
msVersion: OSS_12.1.2.1.1_LINUX.X64_150129
pendingCoreCount: 18
powerCount: 2/2
**powerStatus: normal
releaseImageStatus: success**
releaseVersion: 12.1.2.1.1.150129
releaseTrackingBug: 20240049
**status: online**
temperatureReading: 29.0
**temperatureStatus: normal**
upTime: 2 days, 14:29
**msStatus: running
rsStatus: running**
"list dbserver detail" 명령어는 DB서버의 상세 정보를 조회하는 명령어입니다. 이 명령어의 결과는 다음과 같이 해석할 수 있습니다
:
😄 노션 ai 에게 물어보기 ❓
locatorLEDStatus: off 가 off 되어도 문제가 없는거야 ?
네,
locatorLEDStatus: off는 서버의 위치 지정 LED가 꺼져 있는 것을 의미합니다. 이는 서버의 위치를 식별하는 데 사용되는 LED 신호등이 현재 꺼져 있음을 나타내는 것일 뿐, 서버의 성능이나 기능에는 영향을 미치지 않습니다. 따라서,locatorLEDStatus가off라고 해서 서버 운영에 문제가 생기는 것은 아닙니다.
DBMCLI> list metriccurrent attributes name, objectType, metricObjectName, metricValue, alertStateDS_BBU_TEMP DBSERVER krxacel01 34.0 C normal
DS_CPUT DBSERVER krxacel01 25.7 % normal
DS_CPUT_MS DBSERVER krxacel01 0.1 % normal
DS_FANS DBSERVER krxacel01 16 normal
DS_FSUT DBSERVER_FILESYSTEM / 77 % normal
DS_FSUT DBSERVER_FILESYSTEM /EXAVMIMAGES 7 % normal
DS_FSUT DBSERVER_FILESYSTEM /boot 13 % normal
DS_FSUT DBSERVER_FILESYSTEM /var/lib/xenstored 1 % normal
DS_MEMUT DBSERVER krxacel01 88 % normal
DS_MEMUT_MS DBSERVER krxacel01 4.9 % normal
DS_RUNQ DBSERVER krxacel01 0.4 normal
DS_SWAP_IN_BY_SEC DBSERVER krxacel01 0.0 KB/sec normal
DS_SWAP_OUT_BY_SEC DBSERVER krxacel01 0.0 KB/sec normal
DS_SWAP_USAGE DBSERVER krxacel01 0 % normal
DS_TEMP DBSERVER krxacel01 29.0 C normal
DS_VIRTMEM_MS DBSERVER krxacel01 1,168 MB normal
N_HCA_MB_RCV_SEC DBSERVER krxacel01 0.017 MB/sec normal
N_HCA_MB_TRANS_SEC DBSERVER krxacel01 0.014 MB/sec normal
N_IB_MB_RCV_SEC IBPORT HCA-1:1 0.010 MB/sec normal
N_IB_MB_RCV_SEC IBPORT HCA-1:2 0.007 MB/sec normal
N_IB_MB_TRANS_SEC IBPORT HCA-1:1 0.008 MB/sec normal
N_IB_MB_TRANS_SEC IBPORT HCA-1:2 0.006 MB/sec normal
N_IB_UTIL_RCV IBPORT HCA-1:1 0.0 % normal
N_IB_UTIL_RCV IBPORT HCA-1:2 0.0 % normal
N_IB_UTIL_TRANS IBPORT HCA-1:1 0.0 % normal
N_IB_UTIL_TRANS IBPORT HCA-1:2 0.0 % normal
N_NIC_KB_RCV_SEC DBSERVER krxacel01 3.0 KB/sec normal
N_NIC_KB_TRANS_SEC DBSERVER krxacel01 0.2 KB/sec normaDBMCLI>
DBMCLI> describe metricdefinition
name
description
metricType
objectType
persistencePolicy
unit
DBMCLI> list metricdefinition attributes name, metrictype, objecttype, unit, description where name=' DS_SWAP_USAGE'
DS_SWAP_USAGE Instantaneous DBSERVER % "Percentage of swap used" DBMCLI>
"list metriccurrent attributes name, objectType, metricObjectName, metricValue, alertState" 명령어는 DB서버의 현재 메트릭 값을 나열하는 역할을 합니다. 이 명령어의 결과는 메트릭의 이름, 객체 유형, 메트릭 객체 이름, 메트릭 값, 경고 상태 등의 정보를 제공합니다.
결과를 확인해보면, 모든 메트릭의 경고 상태가 'normal'로 나타나고 있습니다. 이는 모든 메트릭이 정상 범위 내에 있음을 의미합니다. 즉, 메트릭의 값이 정상 범위를 벗어나 경고 상태가 발생하지 않고 있습니다.
따라서, 이 결과를 바탕으로 볼 때, 현재 DB서버의 상태는 정상이라고 판단할 수 있습니다. 어떠한 문제도 발견되지 않았습니다.
서버의 작동 온도는 다양한 요인에 따라 달라질 수 있지만, 일반적으로 서버실의 온도는 20℃ ~ 25℃를 유지하는 것이 권장됩니다. 이보다 높은 온도에서도 서버가 안정적으로 작동할 수 있으나, 40℃를 넘어가면서 서버 부품에 과열이 발생할 가능성이 높아집니다. 따라서, 서버의 온도가 40℃를 초과하게 되면, 적절한 조치를 취해야 합니다. 이는 서버 부품의 수명을 단축시키거나, 최악의 경우 시스템 장애로 이어질 수 있기 때문입니다.
DBMCLI> list metriccurrent attributes name, metricObjectName, metricValue, alertState where alertState!='normal'
위의 결과가 아무것도 안나오면 정상입니다.
DBMCLI> **list physicaldisk**
252:0 BR2L2S normal
252:1 BR31GS normal
252:2 BPD1VS normal
252:3 BR31BS normal
DBMCLI>
DBMCLI> **list physicaldisk BR2L2S detail**
name: 252:0
deviceId: 8
diskType: HardDisk
enclosureDeviceId: 252
errMediaCount: 0
errOtherCount: 0
makeModel: "HITACHI H109060SESUN600G"
physicalFirmware: A690
physicalInsertTime: 2015-01-08T21:25:15-08:00
physicalInterface: sas
physicalSerial: BR2L2S
physicalSize: 558.9120712280273G
slotNumber: 0
status: normal
DBMCLI>

IB Network 에러는 ibport 오브젝트를 조회하여 링크업, 포트 상태 및 에러 카운트를 주기적으로 모니터링 하여 linkup 및 active 상태가 아니거나 error 카운트가 급격히 증가하는 경우 IB Network 점검이 필요합니다
DBMCLI> **list ibport detail**
name: HCA-1:1
dataRate: "40 Gbps"
hcaFWVersion: 2.11.1280
id: 0x0010e00001486d69
lid: 14
linkDowned: 0
linkIntegrityErrs: 0
linkRecovers: 0
physLinkState: **LinkUp**
portNumber: 1
rcvConstraintErrs: 0
rcvData: 833848828
rcvErrs: 0
rcvRemotePhysErrs: 0
status: **Active**
symbolErrs: 0
vl15Dropped: 0
xmtConstraintErrs: 0
xmtData: 673508721
xmtDiscards: 0
name: HCA-1:2
dataRate: "40 Gbps"
hcaFWVersion: 2.11.1280
id: 0x0010e00001486d6a
lid: 15
linkDowned: 0
linkIntegrityErrs: 0
linkRecovers: 0
physLinkState: **LinkUp**
portNumber: 2
rcvConstraintErrs: 0
rcvData: 642645473
rcvErrs: 0
rcvRemotePhysErrs: 0
status: **Active**
symbolErrs: 0
vl15Dropped: 0
xmtConstraintErrs: 0
xmtData: 534204895
xmtDiscards: 0
DBMCLI>
cpu와 메모리를 90% 넘게 사용하는 프로세서가 있으면 그 프로세서로 인해서 성능이 떨어집니다.
top 으로 그 프로세서서를 찾아서 kill 시키거나 화면 캡쳐해서 관련 프로세서의 벤더사에 메일로 알려줘야합니다.
# top

[root@krxa01 ~]# sar.sh 5 10000
dba 들이 이 명령어를 사용하는때는 데이터 이행을 하거나 db 에 중요한 작업을 수시간 수행해야할 때
작업이 순조롭게 진행되고 있는지 확인할 때 유용한 명령어입니다.
[root@krxacel01 ~]# ipmitool sel list |more
1 | 09/05/2011 | 02:44:36 | System Boot Initiated | System Restart | Asserted 2 | 09/05/2011 | 02:44:37 | System Boot Initiated | Initiated by hard reset | Asserted 3 | 09/05/2011 | 02:44:37 | System Firmware Progress | Memory initialization | Asserted 4 | 09/05/2011 | 02:44:37 | System Firmware Progress | Primary CPU initialization | Asserted 5 | 09/05/2011 | 02:44:39 | System Boot Initiated | Initiated by warm reset | Asserted 6 | 09/05/2011 | 02:44:40 | System Firmware Progress | Memory initialization | Asserted 7 | 09/05/2011 | 02:44:40 | System Firmware Progress | Primary CPU initialization | Asserted 8 | 09/05/2011 | 02:44:41 | System Boot Initiated | Initiated by warm reset | Asserted 9 | 09/05/2011 | 02:44:41 | System Firmware Progress | Memory initialization | Asserted a | 09/05/2011 | 02:44:41 | System Firmware Progress | Primary CPU initialization | Asserted b | 09/05/2011 | 02:44:42 | System ACPI Power State #0x26 | S0/G0: working | Asserted c | 09/05/2011 | 02:44:42 | System ACPI Power State #0x26 | S5/G2: soft-off | Deasserted d | 09/05/2011 | 02:44:47 | Entity Presence #0x58 | Device Present e | 09/05/2011 | 02:44:48 | Entity Presence #0x55 | Device Present f | 09/05/2011 | 02:44:49 | Entity Presence #0x57 | Device Present 10 | 09/05/2011 | 02:44:51 | Entity Presence #0x54 | Device Present 11 | 09/05/2011 | 02:45:07 | System Firmware Progress | Management controller initialization |Asserted-- 이하 생략 --
[root@krxacel01 ~]# ipmitool sel list | grep ECC | cut -f1 -d : | sort -u
[root@krxacel01 ~]#
"ipmitool sel list"는 IPMItool의 명령어 중 하나로, 시스템 이벤트 로그(SEL)를 조회하는 데 사용됩니다. IPMItool은 서버 관리 및 모니터링을 위한 오픈소스 유틸리티이며, "sel"은 System Event Log를 의미합니다.
"ipmitool sel list" 명령어의 결과는 시스템에서 발생한 각 이벤트에 대한 정보를 제공합니다. 각 줄은 개별 이벤트를 나타내며, 이벤트의 ID, 발생 날짜와 시간, 이벤트의 타입, 이벤트에 대한 설명, 그리고 이벤트의 상태(주로 Asserted 또는 Deasserted)를 포함합니다.
예를 들어, 첫 번째 줄인 "1 | 09/05/2011 | 02:44:36 | System Boot Initiated | System Restart | Asserted"는 2011년 5월 9일 2시 44분 36초에 시스템 부팅이 시작되어 시스템 재시작이 발생했음을 나타냅니다. "Asserted"는 이 이벤트가 발생했음을 의미합니다.
"ipmitool sel list | grep ECC | cut -f1 -d : | sort -u" 명령어는 "ipmitool sel list"의 출력 결과 중에서 "ECC"를 포함하는 줄만을 찾아, 각 줄의 첫 번째 필드를 추출하고, 중복을 제거하여 출력합니다. "ECC"는 에러 검출 및 수정(Error Checking and Correcting)을 의미하며, 메모리 에러를 검출하고 자동으로 수정하는 기술을 가리킵니다. 이 명령어는 ECC 관련 이벤트가 있는지 확인하는 데 사용됩니다.

cellcli 유틸리티는 Exadata의 Cell을 관리하기 위한 command-line 관리 툴로서, 각각의 스토리지 서버에서 MS 프로세스와 통신하여 Cell 의 기동과 정지, Cell 설정 정보 관리 및 Cell 환경 내의 오브젝트 들을 관리할 수 있습니다. 스토리지 서버에서 각각 수행되어야 하며, dcli 유틸리티를 사용하면 원격으로 여러 스토리지 서버에서 동시에 명령을 수행할 수 있습니다.
[root@krxacl01 ~]# cellcliCellCLI:
Release 12.1.2.1.0 - Production on Sun Feb 09 18:42:11 KST 2014 Copyright (c) 2007, 2013, Oracle. All rights reserved.Cell Efficiency Ratio: 320 CellCLI>
CellCLI> **list alerthistory**
1_1 2013-03-15T05:46:49+09:00 critical "A power supply component is suspected of causing a fault. Component Name : /SYS/PS1 Fault class : fault.chassis.power.ext-fail Fault message : http://www.sun.com/msg/SPX86-8003-73" 1_2 2013-03-28T18:02:50+09:00 clear "A power supply component fault has been cleared. Component Name : /SYS/PS1" 2_1 2013-03-28T17:54:04+09:00 critical "Cell configuration check discovered the following problems: Check Exadata configuration via ipconf utility Verifying of Exadata configuration file /opt/oracle.cellos/cell.conf Error. Exadata configuration file not found /opt/oracle.cellos/cell.conf [INFO] The ipconf check may generate a failure for temporary inability to reach NTP or DNS server. You may ignore this alert, if the NTP or DNS servers are valid and available. [INFO] You may ignore this alert, if the NTP or DNS servers are valid and available. [INFO] As root user run /usr/local/bin/ipconf -verify -semantic to verify consistent network configurations." 2_2 2013-03-28T18:19:23+09:00 clear "The cell configuration check was successful." 3 2013-03-28T17:59:40+09:00 critical "RS-7445 [Serv MS hang detected] [It will be restarted] [] [] [] [] [] [] [] [] [] []" 4 2013-03-28T18:14:23+09:00 critical "RS-7445 [Required IP parameters missing] [Check cellinit.ora] [] [] [] [] [] [] [] [] [] []" 5_1 2013-03-14T13:46:49+09:00 critical "A power supply component is suspected of causing a fault. Component Name : /SYS/PS1 Fault class : fault.chassis.power.ext-fail Fault message : http://www.sun.com/msg/SPX86-8003-73" 6_1 2013-04-02T10:39:26+09:00 critical "Cell configuration check discovered the following problems: Check Exadata configuration via ipconf utility Verifying of Exadata configuration file /opt/oracle.cellos/cell.conf Checking NTP server on 10.10.10.22 : FAILED Error. Overall status of verification of Exadata configuration file: FAILED [INFO] The ipconf check may generate a failure for temporary inability to reach NTP or DNS server. You may ignore this alert, if the NTP or DNS servers are valid and available. [INFO] You may ignore this alert, if the NTP or DNS servers are valid and available. [INFO] As root user run /usr/local/bin/ipconf -verify -semantic to verify consistent network configurations." 6_2 2013-04-03T15:56:11+09:00 clear "The cell configuration check was successful." CellCLI>
list alerthistory 명령어의 결과를 분석해보면 다음과 같습니다:
2013-03-15T05:46:49+09:00 - 전원 공급 장치에 문제가 발생한 것으로 보입니다. 해당 부품의 이름은 /SYS/PS1 이며, 이는 전원 공급 장치가 고장으로 인해 시스템에 문제를 일으켰음을 나타냅니다.2013-03-28T18:02:50+09:00 - 위의 전원 공급 장치 문제가 해결되었습니다.2013-03-28T17:54:04+09:00 - Exadata 구성 검사에서 문제를 발견했습니다. 구체적으로는 Exadata 구성 파일 /opt/oracle.cellos/cell.conf이 없는 것으로 보입니다. 또한, NTP 또는 DNS 서버에 일시적으로 연결할 수 없는 경우가 있음을 알려주는 메시지가 있습니다.2013-03-28T18:19:23+09:00 - 위의 구성 검사 문제가 성공적으로 해결되었습니다.2013-03-28T17:59:40+09:00 - RS-7445라는 오류가 발생했습니다. 이는 MS 프로세스가 멈춘 것을 감지했음을 나타내며, 이 프로세스는 재시작될 것입니다.2013-03-28T18:14:23+09:00 - RS-7445라는 또 다른 오류가 발생했습니다. 이 오류는 필요한 IP 매개 변수가 누락되었다는 것을 나타냅니다.2013-03-14T13:46:49+09:00 - 이전과 유사한 전원 공급 장치 문제가 다시 발생했습니다.2013-04-02T10:39:26+09:00 - Exadata 구성 검사에서 다시 문제가 발생하였습니다. NTP 서버 체크에 실패하였으며, Exadata 구성 파일 검증의 전체 상태가 실패하였습니다.2013-04-03T15:56:11+09:00 - 위의 구성 검사 문제가 성공적으로 해결되었습니다.이러한 결과를 통해, 시스템에서 일어난 일련의 문제들이 있었지만, 모든 문제는 해결된 것으로 보입니다. 그러나 이러한 문제가 반복적으로 발생하였으므로, 시스템 구성에 관한 추가적인 검사와 모니터링이 필요할 것으로 보입니다.
CellCLI> **list alerthistory 2_1 detail**
name: 2_1 alertMessage: "Cell configuration check discovered the following problems: Check Exadata configuration via ipconf utility Verifying of Exadata configuration file /opt/oracle.cellos/cell.conf Error. Exadata configuration file not found /opt/oracle.cellos/cell.conf [INFO] The ipconf check may generate a failure for temporary inability to reach NTP or DNS server. You may ignore this alert, if the NTP or DNS servers are valid and available. [INFO] You may ignore this alert, if the NTP or DNS servers are valid and available. [INFO] As root user run /usr/local/bin/ipconf -verify -semantic to verify consistent network configurations." alertSequenceID: 2 alertShortName: Software alertType: Stateful beginTime: 2013-03-28T17:54:04+09:00 endTime: 2013-03-28T18:19:23+09:00 examinedBy: metricObjectName: checkconfig notificationState: 0 sequenceBeginTime: 2013-03-28T17:54:04+09:00 severity: critical
alertAction: "Correct the configuration problems. Then run cellcli command: ALTER CELL VALIDATE CONFIGURATION Verify that the new configuration is correct." CellCLI>
list alerthistory 2_1 detail 명령어의 결과는 다음과 같은 정보를 제공합니다:
name: 2_1 : 이는 알림의 고유 식별자를 나타냅니다.- alertMessage: : 이 메시지는 Exadata 구성 파일 /opt/oracle.cellos/cell.conf을 찾을 수 없다는 문제를 나타냅니다. 또한, NTP 또는 DNS 서버에 일시적으로 연결할 수 없는 경우가 있음을 알려주는 메시지가 있습니다.alertSequenceID: 2 : 이는 알림의 시퀀스 ID를 나타냅니다.alertShortName: Software : 이는 알림의 간략한 이름을 나타냅니다.alertType: Stateful : 이는 알림의 유형을 나타냅니다.beginTime: 2013-03-28T17:54:04+09:00 : 이는 알림이 시작된 시간을 나타냅니다.endTime: 2013-03-28T18:19:23+09:00 : 이는 알림이 종료된 시간을 나타냅니다.examinedBy: : 이는 알림을 검토한 사람이나 프로세스를 나타냅니다.metricObjectName: checkconfig : 이는 알림이 참조하는 메트릭 개체의 이름을 나타냅니다.notificationState: 0 : 이는 알림의 통보 상태를 나타냅니다.sequenceBeginTime: 2013-03-28T17:54:04+09:00 : 이는 알림 시퀀스가 시작된 시간을 나타냅니다.severity: critical : 이는 알림의 심각도를 나타냅니다.alertAction: : 이는 문제를 해결하기 위한 권장 조치를 나타냅니다. 이 경우, 구성 문제를 수정하고 셀 구성을 검증하라는 조치가 제안되고 있습니다.즉, 이 알림은 Exadata 구성 파일을 찾을 수 없는 문제와, NTP 또는 DNS 서버에 일시적으로 연결할 수 없는 문제에 대해 경고하고 있습니다. 이 문제를 해결하기 위해, 구성 문제를 수정하고 셀 구성을 검증해야 합니다.
CellCLI> list alerthistory where serverity='clear'
1_2 2013-03-28T18:02:50+09:00 clear "A power supply component fault has been cleared. Component Name : /SYS/PS1"
2_2 2013-03-28T18:19:23+09:00 clear "The cell configuration check was successful."
6_2 2013-04-03T15:56:11+09:00 clear "The cell configuration check was successful."
☀️ 24. 스토리지 서버의 상태를 확인하는 명령어
CellCLI> list cell detail
name: krxacel01
bbuStatus: normal # For equal to or earlier than X4-2
cellVersion: OSS_12.1.2.1.0_LINUX.X64_141206.1
cpuCount: 24
diagHistoryDays: 7
fanCount: 8/8
fanStatus: normal
flashCacheMode: WriteBack
id: 1233FM5057
interconnectCount: 3
interconnect1: ib0
interconnect2: ib1 # For Active bonding
iormBoost: 0.0
ipaddress1: 192.168.10.11/22
ipaddress2: 192.168.10.12/22 # For Active bonding
kernelVersion: 2.6.39-400.243.1.el6uek.x86_64
locatorLEDStatus: off
makeModel: Oracle Corporation SUN FIRE X4270 M3 High Performance
memoryGB: 63
metricHistoryDays: 7
offloadGroupEvents:
offloadEfficiency: 1,000.0
powerCount: 2/2
powerStatus: normal
releaseImageStatus: success
releaseVersion: 12.1.2.1.0.141206.1
releaseTrackingBug: 17885582
status: online
temperatureReading: 27.0
temperatureStatus: normal
upTime: 3 days, 2:18
usbStatus: normal
cellsrvStatus: running
msStatus: running
rsStatus: running
cellsrvStatus: running
밑에 3줄이 전부 running 으로 조회되면 해당 스토리지 서버가 정상적으로 운영중임을 확인할 수 있습니다.

CellCLI> **list metriccurrent attributes name, objectType, metricObjectName, metricValue, alertState where objectType='CELL'**
CL_BBU_CHARGE CELL krx3bcel01 84.0 % normal
CL_BBU_TEMP CELL krx3bcel01 33.0 C normal
CL_CPUT_CS CELL krx3bcel01 0.8 % normal
CL_CPUT CELL krx3bcel01 3.8 % normal
CL_CPUT_MS CELL krx3bcel01 0.5 % normal
CL_FANS CELL krx3bcel01 8 normal
CL_MEMUT_CS CELL krx3bcel01 10.8 % normal
CL_MEMUT CELL krx3bcel01 32 % normal
CL_MEMUT_MS CELL krx3bcel01 0.9 % normal
CL_RUNQ CELL krx3bcel01 0.4 normal
CL_SWAP_IN_BY_SEC CELL krx3bcel01 0.0 KB/sec normal
CL_SWAP_OUT_BY_SEC CELL krx3bcel01 0.0 KB/sec normal
CL_SWAP_USAGE CELL krx3bcel01 0 % normal
CL_TEMP CELL krx3bcel01 19.0 C normal
CL_VIRTMEM_CS CELL krx3bcel01 9,342 MB normal
CL_VIRTMEM_MS CELL krx3bcel01 1,373 MB normal
IORM_MODE CELL krx3bcel01 2 normal
N_HCA_MB_RCV_SEC CELL krx3bcel01 0.065 MB/sec normal
N_HCA_MB_TRANS_SEC CELL krx3bcel01 0.117 MB/sec normal
N_NIC_KB_RCV_SEC CELL krx3bcel01 1.1 KB/sec normal
N_NIC_KB_TRANS_SEC CELL krx3bcel01 0.9 KB/sec normal
N_NIC_NW CELL krx3bcel01 3 normal
CellCLI>
CellCLI> describe metricdefinition
name
description
metricType
objectType
persistencePolicy
unit
CellCLI> list metricdefinition attributes name, metrictype, objecttype, unit, description where name='CL_BBU_CHARGE'
CL_BBU_CHARGE Instantaneous CELL % "Disk Controller Battery Charge"
list metriccurrent attributes name, objectType, metricObjectName, metricValue, alertState where objectType='CELL' 명령어의 결과는 CELL 객체의 현재 메트릭 값을 나타냅니다. 각 줄은 다음 값을 포함합니다:
name: 메트릭의 이름을 나타냅니다.objectType: 메트릭의 객체 유형을 나타냅니다. 이 경우 모든 객체 유형은 'CELL'입니다.metricObjectName: 메트릭의 객체 이름을 나타냅니다. 이 경우 모든 객체 이름은 'krx3bcel01'입니다.metricValue: 메트릭의 현재 값을 나타냅니다. 값은 다양한 단위로 표시됩니다 (%, C, %, %, %, KB/sec, KB/sec, %, C, MB, MB, MB/sec, MB/sec, KB/sec, KB/sec, 개).alertState: 메트릭의 경고 상태를 나타냅니다. 이 경우 모든 경고 상태는 'normal'입니다.즉, 이 명령어는 'krx3bcel01'이라는 이름의 CELL 객체에 대한 다양한 메트릭의 현재 값을 제공합니다. 모든 메트릭의 경고 상태가 'normal'이므로, 이 CELL 객체는 현재 정상 상태인 것으로 보입니다.
💡 **메트릭(metric)** 은 시스템이나 애플리케이션의 성능, 건강 상태, 기타 특성을 측정하기 위한 표준 단위입니다. 시스템 메트릭은 CPU 사용량, 메모리 사용량, 디스크 I/O 등을 포함할 수 있으며, 애플리케이션 메트릭은 에러율, 응답 시간, 처리량 등을 포함할 수 있습니다. 메트릭은 시스템이나 애플리케이션의 성능을 모니터링하고 분석하는 데 필수적인 도구입니다. 💡 **CELL** 은 Oracle Exadata의 스토리지 서버를 나타냅니다. 'krx3bcel01'과 같은 이름으로 참조되며, 이 객체는 다양한 메트릭을 통해 성능, 건강 상태 등을 모니터링할 수 있습니다.다음은 오라클 엑사 데이터 전문가들이 스토리지 서버에 문제가 생기지 않게 예방하는 차원에서 확인하는 주요 명령어들입니다:
1. 스토리지 서버 상태 확인: list cell detail 명령어를 사용하여 스토리지 서버의 상태를 확인할 수 있습니다. 이 명령어는 스토리지 서버의 다양한 메트릭, 예를 들면 CPU 사용량, 메모리 사용량, 전원 상태 등을 보여줍니다.
2. 스토리지 서버 경고 메시지 확인: list alerthistory 명령어를 사용하여 스토리지 서버에서 발생한 경고 메시지를 확인할 수 있습니다. 이 명령어는 시스템에서 발생한 문제와 그 해결 상태를 보여줍니다.
3. 스토리지 서버의 특정 경고 메시지 상세 정보 확인: list alerthistory [로그 ID] detail 명령어를 사용하여 특정 경고 메시지의 상세 정보를 확인할 수 있습니다.
4. 스토리지 서버 메트릭 확인: list metriccurrent where objectType='CELL' 명령어를 사용하여 스토리지 서버의 현재 메트릭 값을 확인할 수 있습니다. 이 명령어는 스토리지 서버의 다양한 메트릭을 보여주며, 이를 통해 스토리지 서버의 성능과 건강 상태를 모니터링할 수 있습니다.
5. 스토리지 서버 메트릭 정의 확인: list metricdefinition 명령어를 사용하여 스토리지 서버의 메트릭 정의를 확인할 수 있습니다. 이 명령어는 스토리지 서버 메트릭의 이름, 유형, 단위, 설명 등을 보여줍니다.
이러한 명령어들은 스토리지 서버에서 발생할 수 있는 문제를 예방하고, 발생한 문제를 신속하게 해결하는 데 중요한 도구입니다. 이러한 명령어들을 통해 오라클 엑사 데이터 전문가들은 스토리지 서버의 성능을 모니터링하고, 문제가 생길 경우 즉시 대응할 수 있게 됩니다.
CellCLI> **list metriccurrent attributes name, metricObjectName, metricValue, alertState where objectType='CELL' and alertState!='normal'**
CellCLI>
😄위의 명령어 결과에 대한 설명:
이 명령어는 'CELL' 객체 유형의 메트릭 중에서 경고 상태가 'normal'이 아닌 경우를 찾는 것입니다. 결과가 아무것도 없다는 것은 현재 'CELL' 객체에 대한 메트릭이 모두 'normal' 상태라는 것을 의미합니다. 즉, 현재 스토리지 서버에는 경고 상태에 있는 메트릭이 없다는 것으로, 문제가 발생하고 있는 컴포넌트가 없다는 것을 의미합니다.
CellCLI를 실행시켜 physical 디스크 목록을 조회합니다.
CellCLI> **list physicaldisk**
20:0 KGNG5M normal
20:1 KG59EM normal
20:2 KGNENM normal
20:3 KG6KSM normal
20:4 KG5BJM normal
20:5 KG5GPM normal
20:6 KGNDZM normal
20:7 KG6K5M normal
20:8 KEJ1AM normal
20:9 KG557M normal
20:10 KG5BNM normal
20:11 KG7SUM normal
FLASH_1_0 5L003GG3 normal
FLASH_1_1 5L003FVR normal
FLASH_1_2 5L003JYQ normal
FLASH_1_3 5L003JEF normal
FLASH_2_0 5L003G8L normal
FLASH_2_1 5L003FVF normal
FLASH_2_2 5L003JK9 normal
FLASH_2_3 5L003HM1 normal
FLASH_4_0 5L003G3K normal
FLASH_4_1 5L003GGA normal
FLASH_4_2 5L003FQT normal
FLASH_4_3 5L003GAZ normal
FLASH_5_0 5L004QLQ normal
FLASH_5_1 5L004R3Z normal
FLASH_5_2 5L004QT3 normal
FLASH_5_3 5L004H87 normal
[For X5-2 EF]
NVME_0 CVMD4320006K1P6LGN normal
NVME_1 CVMD4321006V1P6LGN normal
NVME_3 CVMD432300221P6LGN normal
NVME_4 CVMD432000031P6LGN normal
NVME_6 CVMD4321001V1P6LGN normal
NVME_7 CVMD4325005V1P6LGN normal
NVME_9 CVMD4320006J1P6LGN normal
NVME_10 CVMD4325004C1P6LGN normal
CellCLI>
코드 박스에 있는 디스크 목록에서:
"Non-Volatile"의 한글 뜻은 "비휘발성"입니다.
physical disk 목록 조회 결과에 filtering 을 적용할 수 있습니다.
physical disk 의 type 이 flash disk 인 physical disk 의 목록을 확인할 수 있습니다.
CellCLI> **list pysicaldisk where disktype='FlashDisk'**
FLASH_1_0 5L003GG3 normal
FLASH_1_1 5L003FVR normal
FLASH_1_2 5L003JYQ normal
FLASH_1_3 5L003JEF normal
FLASH_2_0 5L003G8L normal
FLASH_2_1 5L003FVF normal
FLASH_2_2 5L003JK9 normal
FLASH_2_3 5L003HM1 normal
FLASH_4_0 5L003G3K normal
FLASH_4_1 5L003GGA normal
FLASH_4_2 5L003FQT normal
FLASH_4_3 5L003GAZ normal
FLASH_5_0 5L004QLQ normal
FLASH_5_1 5L004R3Z normal
FLASH_5_2 5L004QT3 normal
FLASH_5_3 5L004H87 normal
CellCLI를 실행시켜 cell 디스크 목록을 조회합니다.
CellCLI> **list celldisk**
CD_00_krx3bcel01 normal
CD_01_krx3bcel01 normal
CD_02_krx3bcel01 normal
CD_03_krx3bcel01 normal
CD_04_krx3bcel01 normal
CD_05_krx3bcel01 normal
CD_06_krx3bcel01 normal
CD_07_krx3bcel01 normal
CD_08_krx3bcel01 normal
CD_09_krx3bcel01 normal
CD_10_krx3bcel01 normal
CD_11_krx3bcel01 normal
FD_00_krx3bcel01 normal
FD_01_krx3bcel01 normal
FD_02_krx3bcel01 normal
FD_03_krx3bcel01 normal
FD_04_krx3bcel01 normal
FD_05_krx3bcel01 normal
FD_06_krx3bcel01 normal
FD_07_krx3bcel01 normal
FD_08_krx3bcel01 normal
FD_09_krx3bcel01 normal
FD_10_krx3bcel01 normal
FD_11_krx3bcel01 normal
FD_12_krx3bcel01 normal
FD_13_krx3bcel01 normal
FD_14_krx3bcel01 normal
FD_15_krx3bcel01 normal
😄위의 명령어 결과에 대한 설명:
해당 명령어 결과는 오라클 엑사 데이터 스토리지 서버의 셀 디스크 목록을 보여줍니다. 셀 디스크는 'CD'로 시작하며, 플래시 디스크는 'FD'로 시작합니다. 각 디스크의 상태는 'normal'로, 모든 디스크가 정상 상태임을 나타냅니다.
'krx3bcel01'과 같은 이름은 해당 디스크가 속한 스토리지 서버를 나타냅니다. 이 결과를 통해 각 디스크의 상태를 확인하고, 필요한 경우 관리 작업을 수행할 수 있습니다.
점검을 원하는 celldisk 의 상세 정보를 확인합니다.
CellCLI> list celldisk where name like '.*10.*' detail
name: CD_10_krxacl01
comment:
creationTime: 2014-01-20T10:11:00+09:00
deviceName: /dev/sdk
devicePartition: /dev/sdk
diskType: HardDisk
errorCount: 0
freeSpace: 0
id: 8b02c079-782f-42d6-8f4a-2b432eb16684
interleaving: none
lun: 0_10
physicalDisk: DP5T8E
raidLevel: 0
size: 1116.640625G
status: normal
name: FD_10_krxacl01
comment:
creationTime: 2014-01-23T10:59:15+09:00
deviceName: /dev/sdx
devicePartition: /dev/sdx
diskType: FlashDisk
errorCount: 0
freeSpace: 341.1875G
freeSpaceMap: offset=31.328125G,size=341.1875G
id: 8010ff3e-fb08-4a1c-9671-3058e400f916
interleaving: none
lun: 4_2
physicalDisk: 11000128518
size: 372.515625G # Flashcompression 적용한 경우
size: 186.25G # Flashcompression 적용 안한 경우
status: normal
CellCLI>

반면, “Hybrid Columnar Compression” 이 적용되지 않은 경우, 데이터는 압축되지 않고 그대로 저장되므로, 같은 양의 데이터를 저장하기 위해서는 더 많은 공간이 필요하게 됩니다. 따라서 Flash Disk의 전체 사용 가능 공간은 줄어들게 되며, 이는 'size: 186.25G'라는 결과에서 확인할 수 있습니다.
따라서 “Hybrid Columnar Compression” 의 적용 여부는 Oracle Exadata Storage Server의 저장 용량을 결정하는 중요한 요소 중 하나입니다. 하지만 압축 기능을 사용하면 CPU 자원을 추가로 사용하게 되므로, 시스템의 전체 성능에 영향을 미칠 수 있습니다. 따라서 Flashcompression의 적용 여부는 시스템의 요구 사항과 성능을 고려하여 결정해야 합니다.
CellCLI를 실행시켜 grid 디스크 목록을 조회합니다.
CellCLI> **list griddisk**
DATA_CD_00_krxacl01 active
DATA_CD_01_krxacl01 active
DATA_CD_02_krxacl01 active
DATA_CD_03_krxacl01 active
DATA_CD_04_krxacl01 active
DATA_CD_05_krxacl01 active
DATA_CD_06_krxacl01 active
DATA_CD_07_krxacl01 active
DATA_CD_08_krxacl01 active
DATA_CD_09_krxacl01 active
DATA_CD_10_krxacl01 active
DATA_CD_11_krxacl01 active
DBFS_DG_CD_02_krxacl01 active
DBFS_DG_CD_03_krxacl01 active
DBFS_DG_CD_04_krxacl01 active
DBFS_DG_CD_05_krxacl01 active
DBFS_DG_CD_06_krxacl01 active
DBFS_DG_CD_07_krxacl01 active
DBFS_DG_CD_08_krxacl01 active
DBFS_DG_CD_09_krxacl01 active
DBFS_DG_CD_10_krxacl01 active
DBFS_DG_CD_11_krxacl01 active
RECO_CD_00_krxacl01 active
RECO_CD_01_krxacl01 active
RECO_CD_02_krxacl01 active
RECO_CD_03_krxacl01 active
RECO_CD_04_krxacl01 active
RECO_CD_05_krxacl01 active
RECO_CD_06_krxacl01 active
RECO_CD_07_krxacl01 active
RECO_CD_08_krxacl01 active
RECO_CD_09_krxacl01 active
RECO_CD_10_krxacl01 active
RECO_CD_11_krxacl01 active
CellCLI>
💡 위의 'list griddisk' 명령어는 Oracle Exadata 스토리지 서버에서 현재 사용 가능한 그리드 디스크의 목록을 보여줍니다. 각 그리드 디스크는 고유한 이름을 가지고 있으며, 'active' 상태로 표시되어 있습니다. 이는 해당 그리드 디스크들이 현재 활성 상태이며 정상적으로 작동하고 있다는 것을 의미합니다.😄 노션 ai 에게 위의 코드박스안에 list griddisk 명령어로 수행결과를 분석해달고 요청하세요
그리드 디스크 목록은 다음 세 가지 유형으로 구분됩니다:
따라서, 이 명령어는 현재 시스템의 그리드 디스크 상태를 확인하는 데 유용하며, 각 그리드 디스크의 상태를 모니터링하여 시스템의 전반적인 건강 상태를 평가하는 데 도움을 줍니다.
같은 디스크 그룹의 grid 디스크는 같은 크기여야 하고, 같은 스토리지 서버의 grid 디스크는 같은 failure group 이어야 합니다.
grid 디스크의 디스크 그룹 및 크기 등은 다음과 같이 확인할 수 있습니다
CellCLI> **list griddisk attributes name, size, asmDiskgroupName, asmDiskName, asmFailGroupName, cellDisk**
DATA_CD_00_krxacl01 866G DATA DATA_CD_00_KRXACL01 KRXACL01 CD_00_krxacl01
DATA_CD_01_krxacl01 866G DATA DATA_CD_01_KRXACL01 KRXACL01 CD_01_krxacl01
DATA_CD_02_krxacl01 866G DATA DATA_CD_02_KRXACL01 KRXACL01 CD_02_krxacl01
DATA_CD_03_krxacl01 866G DATA DATA_CD_03_KRXACL01 KRXACL01 CD_03_krxacl01
DATA_CD_04_krxacl01 866G DATA DATA_CD_04_KRXACL01 KRXACL01 CD_04_krxacl01
DATA_CD_05_krxacl01 866G DATA DATA_CD_05_KRXACL01 KRXACL01 CD_05_krxacl01
DATA_CD_06_krxacl01 866G DATA DATA_CD_06_KRXACL01 KRXACL01 CD_06_krxacl01
DATA_CD_07_krxacl01 866G DATA DATA_CD_07_KRXACL01 KRXACL01 CD_07_krxacl01
DATA_CD_08_krxacl01 866G DATA DATA_CD_08_KRXACL01 KRXACL01 CD_08_krxacl01
DATA_CD_09_krxacl01 866G DATA DATA_CD_09_KRXACL01 KRXACL01 CD_09_krxacl01
DATA_CD_10_krxacl01 866G DATA DATA_CD_10_KRXACL01 KRXACL01 CD_10_krxacl01
DATA_CD_11_krxacl01 866G DATA DATA_CD_11_KRXACL01 KRXACL01 CD_11_krxacl01
DBFS_DG_CD_02_krxacl01 33.796875G DBFS_DG DBFS_DG_CD_02_KRXACL01 KRXACL01 CD_02_krxacl01
DBFS_DG_CD_03_krxacl01 33.796875G DBFS_DG DBFS_DG_CD_03_KRXACL01 KRXACL01 CD_03_krxacl01
DBFS_DG_CD_04_krxacl01 33.796875G DBFS_DG DBFS_DG_CD_04_KRXACL01 KRXACL01 CD_04_krxacl01
DBFS_DG_CD_05_krxacl01 33.796875G DBFS_DG DBFS_DG_CD_05_KRXACL01 KRXACL01 CD_05_krxacl01
DBFS_DG_CD_06_krxacl01 33.796875G DBFS_DG DBFS_DG_CD_06_KRXACL01 KRXACL01 CD_06_krxacl01
DBFS_DG_CD_07_krxacl01 33.796875G DBFS_DG DBFS_DG_CD_07_KRXACL01 KRXACL01 CD_07_krxacl01
DBFS_DG_CD_08_krxacl01 33.796875G DBFS_DG DBFS_DG_CD_08_KRXACL01 KRXACL01 CD_08_krxacl01
DBFS_DG_CD_09_krxacl01 33.796875G DBFS_DG DBFS_DG_CD_09_KRXACL01 KRXACL01 CD_09_krxacl01
DBFS_DG_CD_10_krxacl01 33.796875G DBFS_DG DBFS_DG_CD_10_KRXACL01 KRXACL01 CD_10_krxacl01
DBFS_DG_CD_11_krxacl01 33.796875G DBFS_DG DBFS_DG_CD_11_KRXACL01 KRXACL01 CD_11_krxacl01
RECO_CD_00_krxacl01 216.796875G RECO RECO_CD_00_KRXACL01 KRXACL01 CD_00_krxacl01
RECO_CD_01_krxacl01 216.796875G RECO RECO_CD_01_KRXACL01 KRXACL01 CD_01_krxacl01
RECO_CD_02_krxacl01 216.796875G RECO RECO_CD_02_KRXACL01 KRXACL01 CD_02_krxacl01
RECO_CD_03_krxacl01 216.796875G RECO RECO_CD_03_KRXACL01 KRXACL01 CD_03_krxacl01
RECO_CD_04_krxacl01 216.796875G RECO RECO_CD_04_KRXACL01 KRXACL01 CD_04_krxacl01
RECO_CD_05_krxacl01 216.796875G RECO RECO_CD_05_KRXACL01 KRXACL01 CD_05_krxacl01
RECO_CD_06_krxacl01 216.796875G RECO RECO_CD_06_KRXACL01 KRXACL01 CD_06_krxacl01
RECO_CD_07_krxacl01 216.796875G RECO RECO_CD_07_KRXACL01 KRXACL01 CD_07_krxacl01
RECO_CD_08_krxacl01 216.796875G RECO RECO_CD_08_KRXACL01 KRXACL01 CD_08_krxacl01
RECO_CD_09_krxacl01 216.796875G RECO RECO_CD_09_KRXACL01 KRXACL01 CD_09_krxacl01
RECO_CD_10_krxacl01 216.796875G RECO RECO_CD_10_KRXACL01 KRXACL01 CD_10_krxacl01
RECO_CD_11_krxacl01 216.796875G RECO RECO_CD_11_KRXACL01 KRXACL01 CD_11_krxacl01
CellCLI>
😄 노션 ai 에게 위의 코드박스안의 수행결과를 분석해달고 요청하세요
'list griddisk attributes name, size, asmDiskgroupName, asmDiskName, asmFailGroupName, cellDisk' 명령어는 Oracle Exadata 스토리지 서버에서 현재 사용 가능한 그리드 디스크의 상세한 정보를 보여줍니다.
각 그리드 디스크는 고유한 이름을 가지고 있으며, 그리드 디스크의 크기, 속한 디스크 그룹의 이름, ASM 디스크 이름, 실패 그룹 이름, 그리고 셀 디스크 이름 등의 정보를 포함하고 있습니다.
이 정보는 시스템의 그리드 디스크 상태를 확인하고, 디스크 별로 할당된 공간을 파악하는데 유용합니다. 또한 각 그리드 디스크의 디스크 그룹과 실패 그룹 정보를 통해 시스템의 구성을 이해하고, 필요한 경우 관리 작업을 수행할 수 있습니다.
Network 에러는 N_MB_DROP_SEC, N_MB_RDMA_DROP_SEC 두 개의 metric 을 주기적으로 모니터링 하여 그 수가 기존과 다르게 증가하면 해당 스토리지 서버의 Network 점검이 필요합니다.
§ N_MB_DROP_SEC, N_MB_RDMA_DROP_SEC metric 의 정보를 확인하고, 현재 metric 값을 확인합니다.
CellCLI> **list metricdefinition N_MB_DROP_SEC detail**
name: N_MB_DROP_SEC
description: "Number of megabytes droped during transmission per second to a particular host"
metricType: Rate
objectType: HOST_INTERCONNECT
unit: MB/sec
CellCLI> **list metricdefinition n_mb_rdma_drop_sec detail**
name: N_MB_RDMA_DROP_SEC
description: "Number of megabytes dropped during RDMA transmission per second to a particular host"
metricType: Rate
objectType: HOST_INTERCONNECT
unit: MB/sec
CellCLI> **list metricdefinition n_mb_rdma_drop_sec, n_mb_drop_sec detail**
name: N_MB_RDMA_DROP_SEC
description: "Number of megabytes dropped during RDMA transmission per second to a particular host"
metricType: Rate
objectType: HOST_INTERCONNECT
unit: MB/sec
name: N_MB_DROP_SEC
description: "Number of megabytes droped during transmission per second to a particular host"
metricType: Rate
objectType: HOST_INTERCONNECT
unit: MB/sec
😄 노션 ai 에게 위의 코드박스안의 수행결과를 분석해달고 요청하세요
위의 코드 결과는 네트워크 에러를 점검하는 두 가지 메트릭, 'N_MB_DROP_SEC'와 'N_MB_RDMA_DROP_SEC'의 정의를 보여주고 있습니다.
'N_MB_DROP_SEC'는 특정 호스트로의 전송 중에 드롭된 메가바이트 수를 초당으로 표시하는 메트릭입니다. 'N_MB_RDMA_DROP_SEC'는 RDMA 전송 중에 특정 호스트로 드롭된 메가바이트 수를 초당으로 표시하는 메트릭입니다.
그러나, 이 코드 결과는 이 두 메트릭의 현재 값이 어떤지, 즉 네트워크 에러가 발생했는지 여부를 보여주지 않습니다. 따라서 이 정보만으로는 네트워크 점검 결과가 정상인지 비정상인지 판단할 수 없습니다. 메트릭의 현재 값을 확인하려면 'list metriccurrent where name like 'N_MB_DROP_SEC' or name like 'N_MB_RDMA_DROP_SEC''와 같은 명령어를 실행해야 합니다.

Smart Flash Cache 는 Flash 카드에 데이터를 캐싱하여 데이터베이스 성능을 향상시키는 엑사데이터의 소프트웨어적 기술입니다. 설정 내용은 CellCli 커맨드를 사용해서 확인할 수 있습니다.
**<Flashcompression 비 적용시>**
CellCLI> **list flashcache attributes name, size, status**
krxacl01_FLASHCACHE **2978.75G** normal
CellCLI> **list flashcache detail**
name: krxacl01_FLASHCACHE
cellDisk: FD_13_krxacl01,FD_11_krxacl01,FD_05_krxacl01,FD_08_krxacl01,FD_10_krxacl01,FD_01_krxacl01,FD_12_krxacl01,FD_02_krxacl01,FD_14_krxacl01,FD_00_krxacl01,FD_06_krxacl01,FD_15_krxacl01,FD_03_krxacl01,FD_09_krxacl01,FD_04_krxacl01,FD_07_krxacl01
creationTime: 2014-01-21T09:58:16+09:00
degradedCelldisks:
**effectiveCacheSize: 2978.75G**
id: a43dbe16-31c8-4185-8aa4-997eb7c81864
size: 2978.75G
status: **normal**
😄 노션 ai 에게 위의 코드 박스의 결과가 flashcompression 비 적용시라는걸 어떻게 알수 있지? 라고 물어본 결과입니다.
코드 박스의 내용을 살펴보면, 'list flashcache attributes name, size, status' 명령어를 통해 플래시 캐시의 이름, 크기, 상태를 확인하고 있습니다. 그리고 'list flashcache detail' 명령어를 통해 플래시 캐시의 상세 정보를 확인하고 있습니다.
여기서 주목해야 할 부분은 'effectiveCacheSize'입니다. 이 값은 플래시 캐시의 실제 사용 가능한 공간을 나타내는데, 이 예제에서는 '2978.75G'로 표시되어 있습니다. 이는 플래시 캐시의 전체 크기('size')가 '2978.75G'인 것과 동일합니다.
이는 플래시 컴프레션(Flashcompression)이 비활성화 되어 있다는 것을 의미합니다. 왜냐하면 플래시 컴프레션은 데이터를 압축해 플래시 캐시의 사용 가능한 공간을 늘리는 기능이기 때문입니다. 따라서, 플래시 컴프레션이 활성화되어 있다면 'effectiveCacheSize'는 'size'보다 커야 합니다.
하지만 이 경우에는 두 값이 동일하므로, 플래시 컴프레션이 비활성화 되어 있음을 알 수 있습니다.
😄 노션 ai 에게 flashcompression 기능을 활성화하는게 좋아 아니면 비활성화 하는게 좋아? 라고 물어본 결과입니다.
플래시 컴프레션 기능의 활성화 여부는 여러 요인을 고려하여 결정해야 합니다.
플래시 컴프레션 기능을 활성화하면, 데이터가 압축되어 저장되므로 더 많은 데이터를 플래시 캐시에 저장할 수 있습니다. 이는 저장 공간의 효율성을 높이는 장점이 있습니다.
그러나, 데이터를 압축하고 해제하는 과정은 추가적인 CPU 자원을 사용하게 됩니다. 따라서, 시스템의 전반적인 성능에 영향을 줄 수 있습니다.
따라서, 플래시 컴프레션 기능의 활성화 여부는 시스템의 저장 공간 요구 사항과 CPU 자원, 그리고 성능 사이의 균형을 고려하여 결정해야 합니다.
자주 검색되는 object 는 압축을 하지 않고 저장하고 자주 검색되지 않는 object 는 압축을 해서 저장하는게
바람직합니다. 다음과 같이 압축된 object 확인을 통해 선별할 수 있습니다.
CellCLI> list flashcachecontent attributes dbUniqueName,hitCount,missCount,cachedSize,objectNumber
KRXAA 0 0 16384 16036
KRXAA 0 0 16384 16037
KRXAA 0 0 16384 16038
KRXAA 0 0 16384 16039
KRXA 1 1 65536 16043
KRXA 1 1 65536 16047
…………….. 이하 생략……………………………………………………
CellCLI> list flashcachecontent attributes dbUniqueName,hitCount,missCount,cachedSize,objectNumber where objectNumber=16036
KRXAA 0 0 16384 16036
CellCLI> list flashcachecontent where objectNumber=16036 detail
cachedKeepSize: 0
cachedSize: 16384
dbID: 2825298339
dbUniqueName: KRXAA
hitCount: 0
missCount: 0
objectNumber: 16036
tableSpaceNumber: 0
CellCLI>
대상 오브젝트는 데이터베이스에서도 조회해보기
SQL> select data_object_id dobject_id,object_name,owner
2 from dba_objects
3* where data_object_id=16036
SQL> /
DOBJECT_ID OBJECT_NAME OWNER
---------- ----------------------------------- ------------------------------
16036 SYS_IL0000015933C00061$$ SYS
Exadata 스마트 플래시 로깅은 Exadata 스토리지 소프트웨어 11.2.2.4에서 도입된 기능으로, Exadata 플래시 저장소를 redo log 작성의 두 번째 대상으로 사용함으로써 전체 redo log 동기화 시간을 줄이는 것을 목표로 합니다.
Smart Flash Logging 기능은 Redo Log File과 Smart Flash Logging 영역에 동시에 Write 하여 둘 중 하나만 완료되면 “처리 완료” 하므로써 redo log write 처리 성능을 빠르게 해줍니다.

Exadata 스마트 플래시 로깅은 기본적으로 활성화되어 있으며, 특별히 활성화할 필요는 없습니다. 다만, 스토리지 셀이 최소한 Exadata 스토리지 소프트웨어 11.2.2.4를 실행하고 있는지 확인해야 합니다.
CellCLI> **list flashlog attributes name,size,status**
KRXAcel01_FLASHLOG 512M normal
CellCLI> **list flashlog detail**
name: KRXAcel01_FLASHLOG
cellDisk: FD_05_KRXAcel01,FD_08_KRXAcel01,FD_02_KRXAcel01,FD_09_KRXAcel01,FD_00_KRXAcel01,FD_13_KRXAcel01,FD_06_KRXAcel01,FD_07_KRXAcel01,FD_14_KRXAcel01,FD_10_KRXAcel01,FD_15_KRXAcel01,FD_04_KRXAcel01,FD_03_KRXAcel01,FD_01_KRXAcel01,FD_12_KRXAcel01,FD_11_KRXAcel01
creationTime: 2013-03-29T10:30:44+09:00
degradedCelldisks:
effectiveSize: 512M
efficiency: 100.0
id: edbd8f43-10f4-42b5-a517-a9a1367108b0
size: 512M
status: **normal**
CellCLI>
이 기능은 플래시 SSD가 redo log 작업에 대해 이론적으로 쓰기 I/O의 이점을 가진다는 전제에 기반을 두지 않습니다. 대신, redo log 작성을 grid disk와 플래시 SSD 두 채널을 통해 실행하고, 둘 중 어느 하나가 작성을 완료할 때 redo log 작성이 완료되도록 하여 "스무딩" 효과를 제공하는 것을 목표로 합니다.
스마트 플래시 로깅이 활성화되어 있으면, 평균 로그 파일 동기화 대기 시간이 15% 이상 줄어들며, 이 차이는 통계적으로 유의미합니다. 또한, 상위 1%의 대기 시간에 대한 99번째 백분위수도 중요하게 줄어들었습니다.
스마트 플래시 로깅은 매우 높은 이상치 redo log 작성의 영향을 줄이는 데 도움이 됩니다. 이 기능을 통해 높은 이상치 redo log 대기 시간이 크게 줄어들어, 이로 인해 발생하는 문제를 완화할 수 있습니다.
리소스 관리 계획을 사용하여 Exadata 스마트 플래시 로깅의 동작을 제어할 수 있습니다. 이를 통해 개별 데이터베이스에 대해 Exadata 스마트 플래시 로깅을 켜거나 끌 수 있습니다. 예를 들어, 다음 명령은 데이터베이스 GUY에 대해 Exadata 스마트 플래시 로깅을 끄고, 다른 모든 데이터베이스에 대해 켜는 것입니다:
ALTER IORMPLAN dbplan=((name=’GUY’,flashLog=false),
(name=other,flashlog=on))’
다음의 CellCLI 명령을 사용하여 Exadata 스마트 플래시 로깅의 동작을 모니터링할 수 있습니다:
CellCLI> list metriccurrent where objectType=’FLASHLOG’;
FL_ACTUAL_OUTLIERS FLASHLOG 1 IO requests
FL_BY_KEEP FLASHLOG 0
FL_DISK_FIRST FLASHLOG 253,540,190 IO requests
...... ......
FL_FLASH_FIRST FLASHLOG 11,881,503 IO requests
...... ......
FL_PREVENTED_OUTLIERS FLASHLOG 275,125 IO requests
이 명령이 생성하는 가장 흥미로운 CellCLI 지표는 다음과 같습니다:
스마트 플래시 로깅을 테스트하는 예를 들어보겠습니다. 20개의 동시 프로세스를 실행하며, 각각 200,000회의 업데이트와 커밋을 수행하는 총 4백만회의 redo log 동기화 작업을 실행한다고 가정하겠습니다. 이제 리소스 계획을 사용하여 스마트 플래시 로깅을 비활성화하고 테스트를 반복합니다. 우리는 R 통계 패키지를 사용하여 분석을 위해 DBMS_MONITOR 추적 파일에 모든 redo log 동기화 대기를 캡처합니다.
스마트 플래시 로깅 비활성화시 주요 CellCLI 지표는 다음과 같습니다:
FL_DISK_FIRST 32,669,310 IO requests
FL_FLASH_FIRST 7,318,741 IO requests
FL_PREVENTED_OUTLIERS 774,146 IO requests
스마트 플래시 로깅이 활성화된 경우 지표는 다음과 같습니다:
FL_DISK_FIRST 33,201,462 IO requests
FL_FLASH_FIRST 7,337,931 IO requests
FL_PREVENTED_OUTLIERS 774,146 IO requests
이 특정 셀의 경우, 플래시 디스크가 FL_FLASH_FIRST와 FL_DISK_FIRST의 비율에 따라 시간의 3.8%만 "이겼습니다". 그리고 아무런 이상치도 방지하지 못했습니다. (이상치는 500 밀리초 이상 걸리는 redo log 동기화입니다.) 그래서 표면적으로는 별로 달성한 것이 없어 보일 수 있습니다.
그러나 redo log 동기화 시간의 통계 분석은 다소 다른 해석을 제공합니다. 표 15.1은 두 테스트에 대한 주요 통계를 요약합니다.
| Redo Log 동기화 시간 (마이크로초) | |||||
|---|---|---|---|---|---|
| 스마트 플래시 로깅 | 최소 | 중간 | 평균 | 99% | 최대 |
| 켜짐 | 1.0 | 650 | 723 | 1656 | 75,740 |
| 꺼짐 | 1.0 | 627 | 878 | 4662 | 291,800 |
스마트 플래시 로깅을 활성화하면 로그 파일 동기화 대기 시간의 평균이 15% 이상 줄어들며, 이 차이는 통계적으로 유의미합니다. 또한, 상위 1% 대기 시간의 99번째 백분위수도 중요하게 줄었습니다. 최상위 1%의 대기 시간에 대한 최소 대기 시간이 약 4.6초에서 1.6초로 줄었습니다.
플래시 SSD가 redo 쓰기 I/O에 대한 이상적인 저장 매체는 아니지만, Exadata 스마트 플래시 로깅은 매우 높은 이상치 redo log 작성의 영향을 줄입니다.
Exadata Smart Flash Logging은 redo log 작성 시간을 최적화하기 위한 기능입니다. 이 기능은 디스크와 Flash SSD에 동시에 redo log를 작성하고, 둘 중 하나가 작성을 완료하면 redo log 작성 작업을 완료하게 합니다. 이를 통해 redo log 동기화 대기 시간을 줄이고, 특히 높은 대기 시간을 가진 redo log 작성의 영향을 줄일 수 있습니다. 이 기능은 Exadata Storage Software 11.2.2.4에서 도입되었으며, 기본적으로 활성화되어 있습니다.
😄 노션 ai 에게 위의 내용들을 가지고 db엔지니어로 면접을 볼 때 물어볼 수 있는 질문 3가지만 알려줘
- 엑사 데이터에 대한 당신의 이해를 바탕으로, 스마트 플래시 로깅 기능의 주요 이점과 동작 원리를 설명해주실 수 있나요?
"Smart Flash Cache"와 "Smart Flash Logging"의 차이점이 무엇인지 설명해주실 수 있나요?
플래시 컴프레션 기능의 활성화/비활성화가 성능과 저장 공간에 미치는 영향에 대해 설명해주실 수 있나요?

클러스터가 안올라왔을 때 수동으로 클러스터를 시작 시키는 명령어 입니다.
1번 노드와 2번 노드에서 각각 수행합니다.
$ **crsctl start crs**
CRS-4123: Oracle High Availability Services has been started.
$ **crsctl start cluster –all**
$ **crsctl start cluster -n KRXA01 KRXA02**
클러스터의 모든 노드에서 Oracle Clusterware를 중지하려면 노드에서 다음 명령을 실행합니다. 명령에서 중단되는 것은 Oracle Clusterware 의해 관리되는 리소스 Oracle ASM 인스턴스 및 모든 Oracle Clusterware 프로세스(OHASD 및 종속 프로세스 제외)입니다.
$ **crsctl stop cluster –all** ( or $ crsctl stop cluster -n KRXA01 KRXA02 )
CRS-2673: Attempting to stop 'ora.crsd' on 'KRXA01'
CRS-2673: Attempting to stop 'ora.crsd' on 'KRXA02'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'KRXA01'
CRS-2673: Attempting to stop 'ora.DBFS_DG.dg' on 'KRXA01'
CRS-2673: Attempting to stop 'ora.KRXA.db' on 'KRXA01'
--중략--
CRS-2677: Stop of 'ora.ctssd' on 'KRXA02' succeeded
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'KRXA01' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'KRXA01'
CRS-2677: Stop of 'ora.cssd' on 'KRXA01' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'KRXA01'
CRS-2677: Stop of 'ora.diskmon' on 'KRXA01' succeeded
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'KRXA02' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'KRXA02'
CRS-2677: Stop of 'ora.cssd' on 'KRXA02' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'KRXA02'
CRS-2677: Stop of 'ora.diskmon' on 'KRXA02' succeeded
$ **crsctl stop crs**
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'KRXA01'
CRS-2673: Attempting to stop 'ora.crsd' on 'KRXA01'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'KRXA01'
CRS-2673: Attempting to stop 'ora.DBFS_DG.dg' on 'KRXA01'
CRS-2673: Attempting to stop 'ora.KRXAa.db' on 'KRXA01'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'KRXA01'
CRS-2673: Attempting to stop 'ora.oc4j' on 'KRXA01'
CRS-2673: Attempting to stop 'ora.cvu' on 'KRXA01'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'KRXA01'
CRS-2677: Stop of 'ora.cvu' on 'KRXA01' succeeded
--중략--
CRS-2673: Attempting to stop 'ora.gipcd' on 'KRXA01'
CRS-2673: Attempting to stop 'ora.diskmon' on 'KRXA01'
CRS-2677: Stop of 'ora.diskmon' on 'KRXA01' succeeded
CRS-2677: Stop of 'ora.gipcd' on 'KRXA01' succeeded
CRS-2673: Attempting to stop 'ora.gpnpd' on 'KRXA01'
CRS-2677: Stop of 'ora.gpnpd' on 'KRXA01' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'KRXA01' has completed
CRS-4133: Oracle High Availability Services has been stopped.
$ **srvctl start asm -n 노드명**
$ **srvctl start nodeapps -n 노드명**
$ **srvctl start instance –d <db_unique_name> -i <인스턴스명>**
$ srvctl stop instance –d <db_unique_name> -i <인스턴스명>
$ srvctl stop asm -n 노드명
$ srvctl stop nodeapps -n 노드명
RAC 의 응용프로그램을 내릴때 순서: instance—>ASM —> Nodeapp
root@KRXA01:/root# **crsctl config crs**
CRS-4622: Oracle High Availability Services autostart is enabled.
root@KRXA01:/root# **crsctl enable crs**
CRS-4622: Oracle High Availability Services autostart is enabled.
root@KRXA01:/root# **crsctl disable crs**
CRS-4621: Oracle High Availability Services autostart is disabled.
$ crsctl check cluster –all
**************************************************************
KRXA01:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
KRXA02:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
노드별 clusterware stack 상태 확인
$ crsctl check cluster -n KRXA01
**************************************************************
KRXA01:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
CRS 리소스 상태 확인
$ crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATAC1.dg
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.DBFS_DG.dg
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.LISTENER.lsnr
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.RECOC1.dg
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.asm
ONLINE ONLINE krxa01 Started
ONLINE ONLINE krxa02 Started
ora.gsd
OFFLINE OFFLINE krxa01
OFFLINE OFFLINE krxa02
ora.net1.network
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.ons
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.registry.acfs
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE krxa01
ora.cvu
1 ONLINE ONLINE krxa01
ora.krxa.db
1 ONLINE ONLINE krxa01 Open
2 ONLINE ONLINE krxa02 Open
ora.krxa03.vip
1 ONLINE ONLINE krxa01
ora.krxa04.vip
1 ONLINE ONLINE krxa02
ora.oc4j
1 ONLINE ONLINE krxa01
ora.scan1.vip
1 ONLINE ONLINE krxa01
--------------------------------------------------------------------------------
root@KRXA01:/root# **cat /etc/oracle/ocr.loc**
ocrconfig_loc=+DBFS_DG
local_only=FALSE
root@KRXA01:/root# ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 409568
Used space (kbytes) : 1448
Available space (kbytes) : 408120
ID : 181960156
Device/File Name : +DBFS_DG
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check bypassed due to non-privileged user
root@KRXA01:/root# crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE a2c98e3ecea64fd7bf42433cf372ad0f (o/192.168.10.7/DBFS_DG_CD_02_KRXAcel03) [DBFS_DG]
2. ONLINE 382df8acda974f57bf246f804f4daf07 (o/192.168.10.6/DBFS_DG_CD_02_KRXAcel02) [DBFS_DG]
3. ONLINE aa9b916f77e14fe6bf5bc0b91f71fc7e (o/192.168.10.5/DBFS_DG_CD_02_KRXAcel01) [DBFS_DG]
Located 3 voting disk(s).
$ **srvctl status scan_listener**
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node KRXA01
srvctl 명령어를 이용한 노드별 LISTENER 설정 확인
$ **srvctl config scan_listener**
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
Registration invited nodes: # 12c feature
Registration invited subnets: # 12c feature
데이터베이스 서버 상의 어플리케이션 상태 점검
VIP , Network 상태는 enabled 상태인지 확인하며, GSD와 ONS 데몬 프로세스는 Optional 상태로 disabled 상태가 서비스에 영향을 주지는 않는다.
[krxa1:/home/oracle] **srvctl status nodeapps**
VIP KRXA01-vip is enabled
VIP KRXA01-vip is running on node: KRXA01
VIP KRXA02-vip is enabled
VIP KRXA02-vip is running on node: KRXA02
Network is enabled
Network is running on node: KRXA01
Network is running on node: KRXA02
GSD is disabled
GSD is not running on node: KRXA01
GSD is not running on node: KRXA02
ONS is enabled
ONS daemon is running on node: KRXA01
ONS daemon is running on node: KRXA02
데이터베이스 서버 상의 어플리케이션 설정 확인
대상 Host에 SSH로 접속 후 클라이언트 콘솔 상에서 다음과 같이 실행 합니다.
§ 노드상의 어플리케이션들의 설정 확인
[KRXA1]oracle@KRXA01:/home/oracle> **srvctl config nodeapps -a -s**
Network 1 exists
Subnet IPv4: 10.10.10.0/255.255.255.0/bondeth0, static
Subnet IPv6:
VIP exists: network number 1, hosting node krxa01
VIP Name: krxa01-vip.kr.oracle.com
VIP IPv4 Address: 10.10.10.96
VIP IPv6 Address:
VIP exists: network number 1, hosting node krxa02
VIP Name: krxa02-vip.kr.oracle.com
VIP IPv4 Address: 10.10.10.98
VIP IPv6 Address:
ONS exists: Local port 6100, remote port 6200, EM port 2016
대상 Host에 SSH로 접속 후 클라이언트 콘솔 상에서 다음과 같이 실행합니다.
§ 데이터베이스 설정 점검
§ 명령어: srvctl config database –d[DB명]
[krxa1:/home/oracle] **srvctl config database -d XXXX**
Database unique name: KRXA
Database name: KRXA
Oracle home: /u01/app/oracle/product/11.2.0.4/dbhome_1
Oracle user: oracle
Spfile: +DATA_KRXA/KRXA/spfileKRXA.ora
Password file: +DATA_KRXA/KRXA/orapwkrxa
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
**Management policy: AUTOMATIC**
Server pools: KRXA
Database instances: KRXA1,KRXA2
Disk Groups: DATA_KRXA,RECO_KRXA
Mount point paths:
Services:
**Type: RAC**
Start concurrency:
Stop concurrency:
Database is administrator managed
Oracle 11g R2 RAC는 통합된 로그 디렉토리 구조를 사용하며 이 구조에 대한 Oracle Clusterware 구성 로그 파일이 별도로 저장됩니다. 이 통합된 구조는 진단 정보 수집을 단순화하고 데이터 수집 및 문제 분석을 용이하게 합니다.
대상 Host에 SSH로 접속 후 클라이언트 콘솔 상에서 다음과 같이 실행합니다.
§ Clusterware의 HOME 디렉토리인 $GRID_HOME 위치 확인
[krxa1:/home/oracle] **env | grep grid**
GRID_HOME=/u01/app/11.2.0.4/grid
CRS 데몬 crsd 로그 파일
$GRID_HOME/log/KRXA01/crsd/
설명: CRS 로그는, CRS 자원들에 대한 트레이스를 포함하며, CRS에 의해 식별된 가입(joining), 탈퇴(leaving), 재구동(restarting), 재배치(relocating)와 관련된 정보들이 기록됩니다.
CSS 데몬 cssd 로그 파일
$GRID_HOME/log/KRXA01/cssd/
설명: css 로그는, 재구성(reconfiguration)이나, 성공하지 못한 체크인 (missed checkin), 클라이언트의 css listener로 부터 발생한 연결(connect) 및 연결해제 (disconnect)와 관련된 모든 액션을 기록합니다.
EVM 데몬 evmd 로그 파일
$GRID_HOME/log/krxa1/evmd/
설명: evmd는 evmlogger를 fork하는데 이 프로세스는 log file에 event를 기록하는 역할을 합니다.
Oracle Cluster Registry (OCR)의 로그 파일 위치
$GRID_HOME/log/krxa1/client/
Oracle RAC 고가용성 구성 요소의 일부인 각 프로그램에는 해당 프로그램에 독점적으로 할당되는 서브 디렉토리가 있습니다. 하위 디렉터리 이름은 프로그램 이름과 같습니다.
전원 버튼 조작 순서
Exadata에 장착된 네트웍 스위치 전원 on
Disk가 장착된 Storage Server 전원 on
DB Server 전원 on
[KRXAa1]oracle@KRXA01:/home/oracle> crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATAC1.dg
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.DBFS_DG.dg
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.LISTENER.lsnr
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.RECOC1.dg
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.asm
ONLINE ONLINE krxa01 Started
ONLINE ONLINE krxa02 Started
ora.gsd
OFFLINE OFFLINE krxa01
OFFLINE OFFLINE krxa02
ora.net1.network
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.ons
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
ora.registry.acfs
ONLINE ONLINE krxa01
ONLINE ONLINE krxa02
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE krxa01
ora.cvu
1 ONLINE ONLINE krxa01
ora.krxa.db
1 ONLINE ONLINE krxa01 Open
2 ONLINE ONLINE krxa02 Open
ora.krxa03.vip
1 ONLINE ONLINE krxa01
ora.krxa04.vip
1 ONLINE ONLINE krxa02
ora.oc4j
1 ONLINE ONLINE krxa01
ora.scan1.vip
1 ONLINE ONLINE krxa01
--------------------------------------------------------------------------------
srvctl stop database –d XXXX
# crsctl stop crs
# shutdown –hy 0