본문 바로가기

데이터베이스(DA, AA, TA)/Oracle

(21)
[오라클] 트러블 슈팅 팁(1) 트러블의 종류 실제 환경에서 데이터베이스 트러블이 발생하면 원인을 찾아야 합니다. 그런데 어디서부터 어떻게 확인해야 할까요? 일단 데이터베이스와 관련한 트러블(오류) 종류를 크게 나누면 아래와 같습니다. 장애 패턴 패턴 개요 장애 예 사양 오류 애플리케이션 또는 데이터 문제로 발생하는, 데이터베이스 동작은 문제없는 사양의 오류 데이터 문제로 발생하는 오류, 예를 들어 테이블 필드 정의 자릿수보다 큰 숫자 데이터를 저장하려 하면 'ORA-12899: value too large for column'이 발생함. 내부 오류 등 예상 밖의 동작 예상하지 못한 사태로 데이터베이스에 어떤 문제가 발생한 경우의 내부 오류 등 ORA-600, ORA-7445(내부 오류) 또는 아카이브 로그 출력 대상이 DISKFULL..
[오라클] RAC 튜닝 방법(3) - DFS lock handle DFS lock handle DFS lock handle은 요청한 Global lock의 lock handle을 기다리고 있는 대기 이벤트입니다. 이 lock handle은 global lock과 동일합니다. lock handle을 획득하면 global lock을 소유한 상태로 lock conversion이나 lock release와 같은 여러 작업을 수행할 수 있습니다. global lock은 DLM(Distributed Lock Manager)에 의해 관리됩니다. DFS는 Distributed File System의 약자로, 오라클 제품 역사(History)와 관련 있는 용어로 생각됩니다. 오라클 10g의 RAC 기능이 완성되기 전까지 오라클은 상당한 기간동안 분산 데이터베이스를 구현해 왔으며, 최초..
[오라클] 클러스터 클래스 대기 이벤트(Placeholder/Fixed-up) Placeholder/Fixed-up 이벤트 구조오라클 10g의 클러스터 대기 이벤트들은 다음 2가지로 분류됩니다. 1) Placeholder 이벤트2) Fixed-up 이벤트 특징은 다음과 같습니다. 1) 클러스터 클래스의 대기 이벤트에서만 사용2) Oracle 10g에서 추가된 개념 * Palceholder 이벤트Placeholder 이벤트는 특정 프로세스가 글로벌 자원, 즉 데이터 블록을 획득하는 과정에서 대기하는 이벤트를 말합니다. 모니터링 방법: V$SESSION_WAIT 에서 관찰해야 합니다. 아직 Fixed-up 이벤트로 변경되기 전이면 V$SESSION_EVENT에서도 관찰할 수 있습니다. * Fixed-up 이벤트Fixed-up 이벤트는 특정 프로세스가 데이터 블록을 최종 획득한 시점에 ..
[오라클] Network 성능 튜닝 SQL*net more data from/to clientSQL*net과 관련된 모든 대기 이벤트는 System API Call에서 비롯됨을 이해해야 합니다. 가령, SQL*net과 관련된 대표적인 대기 이벤트인 SQL*net message to client는 Server Process가 OS에서 Network Send API 요청을 하고 응답이 오기를 기다린다는 것을 의미합니다. OS는 Server Process가 요청한 Data를 TCP Send Buffer에 넣는 것으로 일을 마치고 Server Process에게 응답을 보냅니다. 즉, SQL*net message to client 대기는 실제 Network 전송이 끝나기를 기다린다는 의미가 아니라 OS가 Send Buffer에 성공적으로 Data를..
[오라클] RAC 튜닝 방법(2) gc cr/current grant 2-way프리 블록에 대한 권한을 부여 받는 경우 오라클 10g에서는 gc current grant 2-way 이벤트를 대기한 것으로 관찰되지만, 오라클 9i에서 global cache open x 이벤트를 대기한 것으로 관찰됩니다. gc cr/current grant 2-way 이벤트는 gc cr/current request 이벤트에 대한 Fixed-up 이벤트로, 블록을 요청한 프로세스가 마스터 노드로부터 블록을 읽을 권한을 부여 받았음을(Grant) 의미합니다. gc cr/current request 이벤트가 gc cr/current grant 2-way 이벤트로 바뀌는(Fixed-up되는) 흐름은 다음과 같습니다. - 요청 노드의 유저 프로세스가 특정 데이터 블..