'DB'에 해당되는 글 81건

  1. 2014.12.10 Shared Pool/ Library Cache와 OWI
  2. 2014.12.09 owi 락
  3. 2014.12.09 scan ip 1
  4. 2014.12.08 데이터 모델링
  5. 2014.12.04 모델링 기초지식
  6. 2014.12.03 redolog file 상태확인
  7. 2014.12.01 그래프 작성
  8. 2014.11.26 rac 백업
  9. 2014.11.24 Oracle RAC 용어 정리
  10. 2014.11.15 fff
2014. 12. 10. 18:33

Shared Pool / Library Cache 와 OWI


Shared Pool과 Heap

Shared Pool은 SGA 영역 중 Variable 영역[각주:1]에 속함

- Library Cache

- Row Cache(=Data Dictionary Cache)

Shared Pool이 어떤 메모리 영역으로 나누어지는 확인 -> V$SGASTAT 뷰 조회


SYS>ed

Wrote file afiedt.buf


  1* select count(*) from v$sgastat where pool='shared pool'

SYS>/


  COUNT(*)

----------

       872           -> 총 872  개의 메모리 영역으로 나누어짐

                            각 메모리 영역의 크기는 동적으로 변하게 됨


Shared Pool의 구성요소

Permanent Area : process, session, segmented array(enqueue, transaction,...), 프로세스 목록, 세션 목록, Enqueue 목록 등의 자원들은 Shared Pool 영구 영역(Permanent Area)에 할당되며 인스턴스와 그 수명을 같이 함

Library Cache : SQL문을 수행하는데 필요한 모든 객체(SQL,테이블, 뷰, 프로시저 등)에 대한 정보를 관리함

Row Cache(Dictionary Cache) : 오라클이 사용하는 딕셔너리 정보를 관여함

Reserved Area : 예약영역, 동적인 메모리 할당을 위해 오라클 여분의 예약 영역을 할당해줌



Shared Pool은 힙(heap)라고 불리는 메모리 관리기법을 이용해 관리

- 힙은 순서대로 저장하지 않고 빈자리가 있으면 막 넣기 때문에 별도의 리스트(Heap Manager)가 필요함



shared pool heap 구조도





Shared pool heap 으로 부터 메모리를 할당받고자 하는 모든 프로세스는 반드시 shared pool latch 를 획득 해야함

하드 파싱이 발생하는 경우

- 프로세스는 새로운 SQL문을 저장할 공간을 Shared pool에서 할당 받아야 하고, 반드시 Shared pool latch 를 획득 해야함

Shared pool latch는 기본적으로 전체 인스턴스에 하나만 존재하며, 필요한 메모리(청크)를 할당받는 전체 과정동안 보유해야 함

- 동시에 많은 프로세스가 Shared pool 메모리를 사용하는 경우 latch를 획득하는 과정에서 경합이 발생하게 됨

   이 때, latch:shared pool 이벤트를 대기함 



  1. Shared Pool + Java Pool + Large Pool + Streams Pool 등으로 구성 [본문으로]

'DB' 카테고리의 다른 글

owi 락  (0) 2014.12.09
데이터 모델링  (0) 2014.12.08
모델링 기초지식  (0) 2014.12.04
Posted by 성장하는yw
2014. 12. 9. 18:20

Lock 의 분류

- Enqueue Lock

- 일반 Lock : Row catch lock, Library cache lock/pin, DML lock, Buffer lock, Sort lock로 구분


Enqueue Lock

Enqueue 구조로 관리되는 락을 말함


어떤 종류의 Enqueue Lock이 존재 하는지 확인하려면?

10g 부터 대부분의 Enqueue Lock 에 대해 개별 대기이벤트가 등록되므로 

V$EVENT_NAME 뷰를 조회하면 어떤 종류의 Enqueue Lock이 존재하는지 알 수 있음





'DB' 카테고리의 다른 글

Shared Pool/ Library Cache와 OWI  (0) 2014.12.10
데이터 모델링  (0) 2014.12.08
모델링 기초지식  (0) 2014.12.04
Posted by 성장하는yw
2014. 12. 9. 17:31

Oracel 11g R2 

Grid Infrastructure Single Client Access Name(SCAN)


SCAN(Single Client Access Name) 

클라이언트에서 서버로 접속할 때 여러 개의 RAC노드가 있어도 하나의 Access name 을 가지도록 하는 기능

이 기능은 새로운 노드가 추가되거나 삭제되는 경우에도 적용됨



상세한 설명은 이 링크로 들어가서 볼 것!!

정리 잘 되어 있음

http://energ.tistory.com/entry/11gR2-Grid-Infrastructure-Single-Client-Access-Name-SCAN-%EC%9D%B4%EA%B1%B4-%EB%98%90-%EB%AD%90%EC%95%BC

'DB > oralce' 카테고리의 다른 글

redo log 기록원리 블로그 쓰는 중 .....  (0) 2014.12.15
oracle 저장 구조  (0) 2014.12.11
rac 백업  (0) 2014.11.26
Oracle RAC 용어 정리  (0) 2014.11.24
fff  (0) 2014.11.15
Posted by 성장하는yw
2014. 12. 8. 18:49

데이터 모델링

개념데이터 모델링 -> 논리데이터 모델링 -> 물리데이터 모델링

3가지 과정으로 분류




개념데이터 모델링


고객의 추상적인 개념이나 요구사항을 분석해 객관화하는 과정,

고객의 요구사항을 정리 후 ERD(Entity Relationship Diagram) 결과물을 만듬

 

논리데이터 모델링 


분석된 데이터를 객관적으로 요구사항들을 검증을 하는 단계,

데이터 정규화 작업 진행


물리데이터 모델링


실제 데이터베이스 제품에 맞도록 구현하는 과정

반정규화 과정을 진행하기도 함 (실제 구현 단계에서 불필요한 데이블이 있다면 다시 합하는 과정)


http://support.microsoft.com/kb/283878/ko




'DB' 카테고리의 다른 글

Shared Pool/ Library Cache와 OWI  (0) 2014.12.10
owi 락  (0) 2014.12.09
모델링 기초지식  (0) 2014.12.04
Posted by 성장하는yw
2014. 12. 4. 16:41

1) 모델링

현업 또는 고객이 요구하는 추상적인 요구사항을 찾아내서 분석 및 검증한 후 

적절한 기호를 사용해서 객관적으로 표현하고 물리적으로 구형하는 전체 과정을 의미함


2) 모델링의 종류

1. 프로세스 모델링

- 모델링 진행시 어떤 업무가 있으며 그 업무 흐름을 중심으로 설계를 하는 것

>장점

업무 분석만 잘 되면 다른 방법에 비해 비교적 쉽고, 편하게 모델링을 할 수 있음

>단점

해당 업무가 변경되거나 없어지면 모델링의 결과도 문제가 될 수 있음 (예) 데이터가 없어짐

다른 업무에서 나온 데이터나 과정이 중복될 수도 있음


2. 데이터 모델링 (가장 많이 사용)

- 업무보다는 데이터를 중심으로 모델링을 진행하는 방법


>장점

업무가 변경되어도 모델링의 결과에는 크게 영향을 주지 않음

요즘 대부분 모델링을 중점적으로 많이 함 


>단점

프로세스 모델링 보다는 조금 더 어려움



3. 상관 관계 모델링

- 위 두 가지를 섞어서 하는 모델링

프로세스와 데이터를 검증하기 위해 CRUD  Matrix 방법을 통해 검증함




'DB' 카테고리의 다른 글

Shared Pool/ Library Cache와 OWI  (0) 2014.12.10
owi 락  (0) 2014.12.09
데이터 모델링  (0) 2014.12.08
Posted by 성장하는yw
2014. 12. 3. 15:02

터미널 창에서 보기 편하게 하기 위해서 아래와 같이 설정

명령어 한 줄 씩 입력 후 엔터


set line 200 

col group# for 999

col mb for 999

col member for a45

col seq# for 999

col status for a8

col arc for a5


쿼리문


select a.group#, a.member, b.bytes/1024/1024/ MB, b.sequence# "SEQ#",

b.staatus, b.archived "ARC"

from v$logfile a, v$log b

where a.group#=b.group#

order by 1,2;



매번 입력하기 싫으면 vi.log로 위 내용 모두 붙여넣기 한 후


set line 200 

col group# for 999

col mb for 999

col member for a45

col seq# for 999

col status for a8

col arc for a5


select a.group#, a.member, b.bytes/1024/1024/ MB, b.sequence# "SEQ#",

b.staatus, b.archived "ARC"

from v$logfile a, v$log b

where a.group#=b.group#

order by 1,2  


:wq!



실행방법


SYS> @log 


혹은


SYS>@경로/log.sql 


'DB > sql' 카테고리의 다른 글

sql*plus autotrace 기능 활성화  (0) 2014.12.24
튜닝에 필요한 파일들  (0) 2014.12.22
인덱스 2  (0) 2014.12.19
인덱스 1  (0) 2014.12.19
현재 가진 계정이 소유하고 있는 테이블 목록  (0) 2014.12.17
Posted by 성장하는yw
2014. 12. 1. 14:39

<그래프를 그리는 방법>


1. R에서 제공하는 기본 패키지 사용


  *  plot 함수 - 고수준 작도함수 : 그림

                 - 저수준 작도함수 : 주석, 글자


2. ggplot2 라는 패키지 사용


plot() 함수

 

문법


  plot( y 축  데이터 ,  옵션) 


  plot( x 축  데이터 , y  축  데이터 ,  옵션 ) 


그리는 방식 : 약간의 차이가 있으나 주로 데카르트 방법으로 많이 사용


  데카르트 방식 : plot(x,y) 


  수식기반  방식 : plot(y~x) 


옵션






기본값으로 그래프 만들기


기본값은 y축의 값


y<-c(1,2,3,4,5)

plot(x)


c(여러개인자들)

c(1,2,3,4,5) 여러개의 값을 한꺼번에 넣으려면 이렇게 입력해줘야 함





> y<-c(1,1,1)

> plot(y)



x, y 축의 값을 다 지정해서 출력

> x<-1:3

> y<-4:6

> plot(x,y)



x, y축 한계값 조정하기

> x<-1:3

> y<-4:6

> plot(x,y,xlim=c(1,5), ylim=c(1,10))




x 축과  y 축 제목  , 그래프 제목 지정해 출력

x<-1:3

y<-4:6

plot(x,y,xlim=c(1,5) ,ylim=c(1,10),

xlab="x 축 값", ylab="Y 축 값", main="PLOT TEST")




응용



그래프 배치 조정(mfrow)


한 화면에 여러개의 그래프를 동시에 배치하는 경우

par(mfrow=c(nr,nc) 

nr - 행의 개수

nc - 열의 개수


> par(mfrow=c(1,3))  

1행에 3개가 들어가도록 그래프를 배치하세요 (많이 사용)

> apple<-c(10,20,25,15,20)

> plot(apple,type="o")

> plot(apple,type="s")

> plot(apple,type="l")





여러 개의 그래프 중첩으로 그리기


par(new=T) 사용 혹은 고수준 작도함수의 인수 add=T를 지정하면 됨

그리고 lines 함수를 사용해 기존의 그래프 위에 추가 할 수 있음

lines 많이 사용



타입에 o는 직선 그래프임




범례 추가하기


문법

legend(x축 위치, y축 위치, cex=글자크기, col=색상, pch=크기, lty=선모양)


> y1<-c(1:5)

> y2<-c(2:6)

> y3<-c(3:7)

> plot(y1,type="s",col="red",ylim=c(1,10))

> lines(y2,type="o",col="green",ylim=c(1,10))

> lines(y3,type="s",col="blue",ylim=c(1,10))

> legend(4,9,c("Y1","Y2","Y3"),cex=0.9,

+ col=c("red","green","blue"),lty=1)




barplot() 

막대그래프 그리기


옵션들



Posted by 성장하는yw
2014. 11. 26. 10:55

[oracle@rac2 ~]$ crs_stat -t

Name           Type           Target    State     Host

------------------------------------------------------------

ora.rac.db     application    ONLINE    ONLINE    rac2

ora....vice.cs application    OFFLINE   OFFLINE

ora....ac1.srv application    OFFLINE   OFFLINE

ora....c1.inst application    ONLINE    ONLINE    rac1

ora....c2.inst application    ONLINE    ONLINE    rac2

ora....C1.lsnr application    ONLINE    ONLINE    rac1

ora.rac1.gsd   application    ONLINE    ONLINE    rac1

ora.rac1.ons   application    ONLINE    ONLINE    rac1

ora.rac1.vip   application    ONLINE    ONLINE    rac1

ora.rac2.gsd   application    ONLINE    ONLINE    rac2

ora.rac2.ons   application    ONLINE    ONLINE    rac2

ora.rac2.vip   application    ONLINE    ONLINE    rac2



위 두 개의 오프라인을 온라인으로 바꾸려면


[oracle@rac1 ~]$ crs_start -all

Attempting to start `ora.rac.olpt_service.cs` on member `rac1`

Attempting to start `ora.rac.olpt_service.rac1.srv` on member `rac1`

Start of `ora.rac.olpt_service.cs` on member `rac1` succeeded.

Start of `ora.rac.olpt_service.rac1.srv` on member `rac1` succeeded.

[oracle@rac1 ~]$ crs_stat -t

Name           Type           Target    State     Host

------------------------------------------------------------

ora.rac.db     application    ONLINE    ONLINE    rac2

ora....vice.cs application    ONLINE    ONLINE    rac1

ora....ac1.srv application    ONLINE    ONLINE    rac1

ora....c1.inst application    ONLINE    ONLINE    rac1

ora....c2.inst application    ONLINE    ONLINE    rac2

ora....C1.lsnr application    ONLINE    ONLINE    rac1

ora.rac1.gsd   application    ONLINE    ONLINE    rac1

ora.rac1.ons   application    ONLINE    ONLINE    rac1

ora.rac1.vip   application    ONLINE    ONLINE    rac1

ora.rac2.gsd   application    ONLINE    ONLINE    rac2

ora.rac2.ons   application    ONLINE    ONLINE    rac2

ora.rac2.vip   application    ONLINE    ONLINE    rac2


현재 orc 디스크를 확인하는 명령
[root@rac1 ~]# ocrcheck 
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :     306968
         Used space (kbytes)      :       3584
         Available space (kbytes) :     303384
         ID                       :  228682162
         Device/File Name         : /dev/raw/raw1
                                    Device/File integrity check succeeded

                                    Device/File not configured

         Cluster registry integrity check succeeded

자동 백업 내역 확인 명령
4시간 마다 / 매일 마다 / 매주 마다 자동적으로 실행됨
[root@rac1 ~]# ocrconfig -showbackup

rac1     2014/11/25 19:05:09     /home/oracle/product/10.2/crs/cdata/crs





rac1     2014/11/25 19:05:09     /home/oracle/product/10.2/crs/cdata/crs

rac1     2014/11/25 19:05:09     /home/oracle/product/10.2/crs/cdata/crs

실제 경로에 가면 백업된 파일을 확인 할 수 있음
가장 최신파일인 backup00.ocr 백업파일으로 복구에 사용함

[root@rac1 ~]# cd /home/oracle/product/10.2/crs/cdata/crs

[root@rac1 crs]# ls

backup00.ocr  day.ocr  week.ocr


dd명령어로 ocr disk 초기화 - 장애 발생시킴
[root@rac1 ~]# dd if=/dev/zero of=/dev/raw/raw1 bs=8k
dd: writing `/dev/raw/raw1': No space left on device
38401+0 records in
38400+0 records out
[root@rac1 ~]# dd if=/dev/zero of=/dev/raw/raw2 bs=8k
dd: writing `/dev/raw/raw2': No space left on device
38401+0 records in
38400+0 records out
[root@rac1 ~]# ocrcheck
Segmentation fault
[root@rac1 ~]# crsctl stop crs
Segmentation fault


백업된 OCR 파일을 이용 복원, 해결 확인
[root@rac1 ~]# ocrconfig -restore /home/oracle/product/10.2/crs/cdata/crs/backup00.ocr

[root@rac1 ~]# crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly



[oracle@rac1 ~]$ cluvfy comp ocr -n all


OCR 무결성 확인 중


OCR 무결성을 검사하는 중...


클러스터화되지 않은 구성이 없는지 검사하는 중...

모든 노드에 클러스터화되지 않은 로컬 전용 구성이 없습니다.


OCR 장치에 대한 고유성 검사를 성공했습니다.


OCR 버전을 검사하는 중...

올바른 OCR 버전 "2"이(가) 존재합니다.


OCR에 대한 데이터 무결성을 검사하는 중...

OCR에 대한 데이터 무결성 검사를 성공했습니다.


OCR 무결성 검사를 성공했습니다.


OCR 무결성 확인 작업을 성공했습니다.



[oracle@rac1 ~]$ crsctl start crs

Insufficient user privileges.

[oracle@rac1 ~]$ su -

Password:

[root@rac1 ~]# crsctl start crs

Attempting to start CRS stack

The CRS stack will be started shortly


'DB > oralce' 카테고리의 다른 글

oracle 저장 구조  (0) 2014.12.11
scan ip  (1) 2014.12.09
Oracle RAC 용어 정리  (0) 2014.11.24
fff  (0) 2014.11.15
rman(recovery manager)  (0) 2014.11.13
Posted by 성장하는yw
2014. 11. 24. 17:35

DBMS(Database Management Software)

다양한 데이터를 저장하고 사용자가 원할 경우, 조회, 수정 삭제 등의 작업을 해주는 프로그램


Single Server 구성

하나의 Database에 하나의 Instance 가 할당되는 구성

문제점 : Server에 장애가 발생하면 Storage에 저장된 데이터를 사용할 수 없음 



HA 구성

HA(High abailablity) = 고 가용성

서버 사용 가능 시간을 최대한으로 늘이는 것

24*7*365 = 24시간, 7일, 365일, 항상

무정지상태, 365일 중 DB가 꺼지는 시간이 짧을 수록 고 가용성이 좋다. 



문제점  

구성하는데 비용이 많이 듬 (두 개 모두 같은 사양)

스토리지를 2개 사용하기 때문에 데이터 동기화가 되지 않을 수 있음

장애시 해당 서버에 접속해 있던 연결들을 모두 종료 후 standby  서버가 가동됨, 그때 다시 접속이 되고,

Active 상태였던 서버에서 하던 모든 작업들은 전부 취소됨 


오라클에서의 Dataguard의 방식 : 

1대는 Active(운영 중 DB) / 1대는 Standby(문제가 생겼을 때 사용되는 대기DB)

Active에 서버 장애가 생길 경우, standby 서버가 제공되 서비스의 중단이 일어나지 않고 제공됨

 



Oracle Parallel Server(OPS) - 8i

하나의 데이터베이스에 여러 개의 인스턴스로 구성하는 방식




OPS의 경우에는 CTF나 TAF 라는 설정이 되어 있을 경우 기존 서버에 장애가 발생했을 경우 

해당 작업은 그대로 다른 서버로 이전 시킬 수 있음(단, 수행 중이던 작업 종류에 따라 다름)



문제점

RAC Ping 

두 개의 서버가 하나의 스토리지를 사용해서, 

instance1 서버에서 update 후 commit를 하면 

반드시 storage에 우선 저장 한 후 instance2로 가져와야 함. 

디스크, 즉 스토리지를 사용한 후 다른 서버가 읽어야 하기 때문에 시간이 오래 걸림





Real Application Cluster(RAC) - 9i

Cache Fusion(캐쉬 퓨전)

RAC ping 해결

서로 다른 instance에서 변경된 데이터를 디스크를 거치지 않고 바로 instance로 가져 올 수 있는 기능





'DB > oralce' 카테고리의 다른 글

scan ip  (1) 2014.12.09
rac 백업  (0) 2014.11.26
fff  (0) 2014.11.15
rman(recovery manager)  (0) 2014.11.13
flash back  (0) 2014.11.12
Posted by 성장하는yw
2014. 11. 15. 18:58


'DB > oralce' 카테고리의 다른 글

rac 백업  (0) 2014.11.26
Oracle RAC 용어 정리  (0) 2014.11.24
rman(recovery manager)  (0) 2014.11.13
flash back  (0) 2014.11.12
drop tablespace 장애 복구 - clone db 사용 정리할것..;;;  (0) 2014.11.11
Posted by 성장하는yw