11gr2 oracle database asm idp · 2014-10-23 · advanced oracle document … asm idp oracle 11gr2...

19
Advanced Oracle Document Advanced Oracle Document 11gR2 Oracle Database ASM IDP Author: Hyun-Ho, Jung Site: http://www.commit.co.kr Email: [email protected] [email protected] Creation Date: 2011 - 08 - 12

Upload: others

Post on 06-Jun-2020

63 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

Advanced Oracle Document

11gR2 Oracle Database

ASM IDP

Author: Hyun-Ho, Jung

Site: http://www.commit.co.kr

Email: [email protected]

[email protected]

Creation Date: 2011 - 08 - 12

Page 2: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

ASM IDP Document

Server Information

Scenario&Environment

1) 11gR2 NF 인 ASM IDP 기능에 대해서 기술된 문서이다.

2) Grid와 S/W는 11gR2(11.2.0.2) 버전으로 설치 되어있는 상태에서 진행된다.

3) ASM IDP의 사용법과 HOT 영역과 Cold 영역의 속도차이를 알아본다.

Items Description

Test Date 2011 / 08 / 12

Machine DELL R910

CPU Intel(R) Xeon(R) CPU X7550 @ 2.00GHzX 8

Main Memory 32GB

O/S version OEL 5.4

Host Name test

ORACLE_SID orcl

Oracle version 11.2.0.2

Page 3: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

ASM IDP

Oracle 11gR2 의 NF 중 하나는 IDP 이다.

ASM IDP(Intelligent Data Placement) 이며 , 우리말로 하면 지능적 데이터 배포의 의미로 보면 맞을 것 같다.

이전 버전에서는 ASM은 하나의 ASM 디스크를 단일객체(Disk Group) 으로 처리하여 Stripe 기법을 기반으로

ASM 디스크 상에서 ASM 파일(AU)의 위치를 최적화(균등하게 분할) 하려고 시도했다. 그러나

Disk의 Spin(디스크 중심부) 로 부터 떨어져 있는 외곽 Track의 물리적 디스크 영역은 내부 Track 에 비하여

높은 처리량을 보여주었으며, 그래서 ASM IDP 라는 기능으로 여러 DISK 상에서 ASM Stripe 된 파일 뿐만

아니라 일반 ASM 파일들이 아래 그림과 같이 지정된 물리적 디스크 영역(외각 영역 혹은 내부 영역)

에 지정하여 배포되는 것을 확인 할 수 있다.

위 그림에서 빨간색 태두리 로 되어있는(ASM with IDP) 를 보게 되면 옆의 ASM witout IDP 와 달리

외곽 영역은 빨간색 블록이, 내부영역에는 파란색 블록이 위치 되어있는 것이 주요한 관점이다.

11gR2 ASM은 선호영역(HOT 또는 COLD) 을 기반으로 파일에 익스텐트를 할당한다.

물리적 디스크의 특성에 대해서 오라클은 알 수 없기 때문에 IDP는 스패닝(spanning) 디스크 아키텍처를 목표로

할 뿐 , 스토리지 어레이(Storage Array)의 특성은 고려하지 않는다.

Page 4: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

HOT 영역과 COLD 영역의 두 개의 디스크 영역은 새로운 디스크 그룹을 생성하거나 기존 디스크 그룹에 디스크 추가

할 때마다 지능적으로 식별되며, 이 설정을 사용하면 자주 사용되는 데이터는 높은 데이폭을 갖는

바깥쪽 트랙에 위치되도록 설정하여, 데이터에 대한 Access/Seek Time 을 감소 시킬 수 있다.

참고사항

Disk의 영역은 동일한 성능 특성을 갖는 연속된 Track 의 집합이며, 바깥쪽 Track 은 안쪽 Track 보다

많은 Track 을 포함 하게 된다. 그렇기 때문에 바깥쪽에 트랙에 존재 하는 Sector 의 개수가 더 많아 지게 된다.

Page 5: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

ASM IDP

1. TEST Disk Group 생성

현재 테스트 환경은 11gR2(11.2.0.2) 이며, 11gR2 부터 ASM 을 사용하기 위해서는

Grid Infrastructure 가 반드시 필요 하기 때문에 구성자체는 Oracle Restart 와

동일하다

아래와 같이 제품이 설치 되어 있으며,

11gR2(11.2.0.2) Grid Infrastructure

11gR2(11.2.02) Oracle Database

현재 system ,sysaux, redo, control file 등 기본 데이터 파일은

SYSTEM_DG 라는 DISK GROUP 존재 한다.

물리 DISK는 아래와 같이 SAS 4개 DISK 가 존재 하며

Page 6: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

0번(첫 번째) Disk 는 /dev/sda 와 매칭 된다.

아래와 같이 /dev/sdb 는 2번째 디스크 , /dev/sdc 는 3번째 디스크

/dev/sdd 는 4번째 디스크가 되게 된다.

/dev/sdb1 을 이용하여 SYSTEM_DG 라는 DISK GROUP 을 생성하여

orcl 이란 SID 로 인스턴스를 생성 하였으며, 3번째 디스크와 4번째 디스크를

이용하여 TEST 이름으로 DISK GROUP 을 만들어서 테스트 할 것이다.

grid 유저로 Grid Infrastructure 가 설치 되어 있다면 grid 유저로

oracle 유저로 모두 설치 되었다면, oracle 유저로 asmca 를 실행한다.

Page 7: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

Create 를 눌러서 새로운 DISKGROUP 을 만들 것이다.

TEST 라는 DISKGROUP 이름으로 rawdevice 인 /dev/raw/raw2,3 를

이용하여 생성한다. Redundancy 는 반드시 Normal 이상으로 지정 해야 한다.

External 지정 시 template 생성시 에러가 발생한다.

ORA-15067: command or option incompatible with diskgroup redundancy

Page 8: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

아래 부분에 Show Advanced Options 를 누르면 추가적인 옵션을 설정 할 수 있다.

다음 Chapter 에서 소개 할 COMPATIBLE.ASM / COMPATIBLE.RDBMS 속성을

해당 메뉴 에서 설정 할 수 있으나 생성 후 커맨드를 통해 속성을 변경 하겠다.

2. Template 생성 & Tablespace 생성

IDP를 사용하려면 DISKGROUP 속성 중 COMPATIBLE.ASM 과

COMPATIBLE.RDBMS 의 속성이 반드시 11.2 이상으로 설정되어 있어야 한다.

default 값은 아래 쿼리로 조회가 능하며 조회 결과는 아래와 같다.

set lines 300

col name for a20

col ASM_COMPATIBILITY for a20

col DATABASE_COMPATIBILITY for a20

select name, COMPATIBILITY "ASM_COMPATIBILITY",DATABASE_COMPATIBILITY

from v$asm_diskgroup;

Page 9: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

COMPATIBLE.RDBMS 의 버전이 11.2 이하 이기 때문에 COMPATIBLE 변경이

필요 하다.

export $ORACLE_SID=+ASM 환경 변수 변경 후 asm 인스턴스 내로 접속한다.

파라미터를 변경하지 않았다면 접속은 아래와 같이 sysasm 을 이용한다.

$ sqlplus / as sysasm

아래 커맨드로 TEST의 속성을 변경한다.

Alter diskgroup TEST set attribute 'compatible.asm'='11.2';

Alter diskgroup TEST set attribute 'compatible.rdbms'='11.2';

test_hot 라는 HOT/HOTMIRROR 영역용 template 을 생성한다.

alter diskgroup TEST add template test_hot

attributes (hot mirrorhot);

지정 가능한 속성은 첫번째 인자 : HOT / COLD

두번째 인자 : MIRRORHOT / MIRRORCOLD

첫번째 HOT 과 COLD 는 주 extent를 위치 시킬 DISK의 영역을 지정하는데

사용하며,

두번째 MIRRORHOT 과 MIRRORCOLD 는 Redundancy 가 Normal 이기 때문에

mirror(두 번째) extent 의 위치를 지정 하는 것이다.

Page 10: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

test_cold 라는 COLD/MIIRORCOLD 영역용 template 을 생성한다.

alter diskgroup TEST add template test_cold

attributes (cold mirrorcold);

hot 이름의 테이블 스페이스를 생성하고 HOT영역에 위치 시킨다.

create tablespace hot datafile '+TEST(test_hot)' size 30G;

cold 이름의 테이블 스페이스를 생성하고 COLD영역에 위치 시킨다.

create tablespace cold datafile '+TEST(test_cold)' size 30G;

3. TEST TABLE & INDEX CREATION

테이블 생성은 많은 블록을 갖도록 생성 할 것이며,

clustering factor 가 좋지 않은 인덱스를 2개 생성 할 것 이다.

■ HOT 영역에 IDP_HOT_TEST1, IDP_HOT_TEST2 2 개 테이블 생성

IDP_HOT_TEST1

create table idp_hot_test1

Page 11: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

pctfree 95 pctused 5

tablespace hot

as select object_id, object_name, status from dba_objects

order by dbms_random.value;

동일 한 데이터를 1번더 insert 한다.

insert into idp_hot_test1

select * from idp_hot_test1

order by dbms_random.value;

IDP_HOT_TEST2

create table idp_hot_test2

pctfree 95 pctused 5

tablespace hot

as select object_id, object_type,timestamp from dba_objects

order by dbms_random.value;

■ COLD 영역에 CTAS 로 IDP_COLD_TEST1, IDP_COLD_TEST2

2 개 테이블 생성

IDP_COLD_TEST1

create table idp_cold_test1

pctfree 95 pctused 5

Page 12: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

tablespace cold

as select * from idp_hot_test1;

IDP_COLD_TEST2

create table idp_cold_test2

pctfree 95 pctused 5

tablespace cold

as select * from idp_hot_test2;

dba_tables 를 조회하면

select table_name,pct_free, pct_used from dba_tables

where table_name like 'IDP%';

위와 같이 ASSM 을 사용하기 때문에 PCT_USED는 사용할 수 없지만

PCT_FREE가 95 임을 확인 할 수 있으며, 한 블록에 들어가 있는 row 수는 상당히

적을 것이고 많은 블록이 사용되게 된다.

인덱스는 IDP_HOT_TEST1 과 IDP_COLD_TEST1 에 만 생성 할 것이다.

create index idp_hot_test1_id_idx on idp_hot_test1(object_id)

tablespace hot;

Page 13: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

create index idp_cold_test1_id_idx on idp_cold_test1(object_id)

tablespace cold;

생성된 index의 clustering factor 를 보면 아래와 같이 아주 좋지 않게 생성 되어

있는 것을 확인 할 수 있다. object_id 가 여러 블록 , 넓은 범위로 흩어져 있다는

것을 알 수 있다.

select index_name, table_owner, table_name, clustering_factor

from dba_indexes

where index_name like 'IDP%';

마지막으로 통계정보를 갱신한다.

EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname=>'SYS',tabname=>'idp_hot_test1');

EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname=>'SYS',tabname=>'idp_hot_test2');

EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname=>'SYS',tabname=>'idp_cold_test1');

EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname=>'SYS',tabname=>'idp_cold_test2');

4. Query Test

동일한 쿼리를 10회 수행하며, set timing on 설정을 하여 나온 시간으로

측정 하며, 쿼리수행 전 shared_pool 과 buffer_cache 를 flush 수행할 것이다.

쿼리는 아래와 같다.

Page 14: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

HOT 영역 TEST 쿼리

select /*+ use_nl(a b) reading(a b) */ * from

idp_hot_test1 a, idp_hot_test2 b

where a.object_id = b.object_id ;

COLD 영역 TEST 쿼리

select /*+ use_nl(a b) reading(a b) */ * from

idp_cold_test1 a, idp_cold_test2 b

where a.object_id = b.object_id ;

HINT 없이 사용하게 되면 HASH로 풀리게 됨으로 nested loop 로 실행되게 하고자

use_nl 를 사용하였다.

실행 계획은 아래와 같다.

<HOT 테이블>

Page 15: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

<COLD 테이블>

2개의 쿼리의 실행계획 및 Operation 단계마다 읽게 되는 Rows 등이 동일 하다.

set timing on 을 설정 후 실제 결과는 아래와 같다.

HOT영역의 쿼리를 선 수행 후, COLD 영역의 쿼리를 수행하였다.

시간기준

초 회 차 HOT COLD

1 26.37 26.43

2 18.14 21.17

3 29.54 28.11

4 21.45 26.68

5 26.33 28.64

6 24.01 27.82

7 27.99 34.66

8 21.42 24.91

9 26.08 24.21

10 24.25 25.47

합 245.58 268.1

1회평균 24.558 26.81

1회 평균

시간차 2.252

Page 16: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

테스트의 의미는 IDP 라는 기능이 구현이 되는 것을 확인해보고자 하는 것 이며,

테스트에서의 데이터 건수가 많지 않음에도 2초의 시간차이를 보이는데,

좀더 많은 데이터 건수, 쿼리 및 테이블 형태, 조인형태에 따라 HOT영역의

테이블을 Access 하는 쿼리의 수행 속도와, COLD 영역 테이블을 Access 하는

쿼리의 수행속도차이는 더 클 것 이라 고 생각 한다.

5. ASM IDP 배포 정보 확인

배포가 완료된 후 HOT영역과 COLD 영역에 대해서 정보조회가 가능하며,

IDP에 대한 정보는 아래 뷰에서 확인 가능하다.

V$ASM_DISKGROUP

HOT_USED_MB : HOT 영역에서 사용된MB

COLD_USED_MB : COLD 영역에서 사용된 MB

V$ASM_FILE

PRIMARY_REGION : 주 EXTENT 할당을 위해 사용된 영역

MIRROR_REGION : 미러(MIRROR) EXTENT 할당을 위해 사용 된 영역

V$ASM_TEMPLATE

PRIMARY_REGION : 주 EXTENT 할당을 위해 사용된 영역

MIRROR_REGION : 미러 EXTENT 할당을 위해 사용된 영역

V$ASM_DISK_IOSTAT 는 HOT 과 COLD 영역의 대한 I/O 통계를 나타낸다.

Page 17: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

아래는 TEST DISKGROUP 의 HOT과 COLD영역 사용 현황이다

SELECT TOTAL_MB, FREE_MB, HOT_USED_MB, COLD_USED_MB

FROM V$ASM_DISKGROUP

where name='TEST';

아래쿼리를 이용하면 현재 TEST DISKGROUP 에 있는 TEMPLATE 이름과

어느 선호 영역으로(HOT or COLD) 지정되어 있는지 확인 할 수 있다.

set lines 300

col DISKGROUP for a30

col "TEMPLAE NAME" for a30

select dg.name as diskgroup, t.name as "TEMPLATE NAME", t.stripe, t.redundancy,

t.primary_region, t.mirror_region

from v$asm_diskgroup dg, v$asm_template t

where dg.group_number = t.group_number and dg.name='TEST'

order by t.name;

Page 18: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

6. ASM IDP 의 업무적인 사용의 예 와 영역이동

ASM은 DISK의 선호영역(HOT,COLD) 속성에 대해서 자동으로 결정하지는 않는다.

이 말은 DBA나 엔지니어가 해당 테이블스페이스, 혹은 파일의 사용용도나 활동성에

따라 이러한 속성들을 결정하고, 변경 해줘야 한다는 것이다.

RMAN 백업셋 파일을 ASM영역 내에 위치 시킨다고 할 때 백업은 피크 시간이 아닌

시간에 백업이 진행되기 때문에 해당 시간에 HOT 영역에 위치 시키면 지연시간을

줄 일 수도 있게 된다.

혹은 특정 시간에 사용량이 많은 테이블스페이스에 대해서도 HOT 영역으로

변경 하여 작업 후 다시 COLD영역으로 변경 하여 사용하는 할 수도 있을 것이다.

모든 테이블스페이스나 파일을 HOT영역에는 위치 시킬 수가 없는 것이 사실이며,

업무에 따라서 적절히 배치를 하여 사용하면 좀더 좋은 효과를 볼 수 있을 것이라

생각된다

가령 TEST.258.758975835 파일을 cold에서 HOT 영역으로 속성을 변경할 때는

아래와 같이 명령어를 통하여 가능한데

alter diskgroup TEST modify file '+test/orcl/datafile/TEST.258.758975835'

attributes (hot mirrorhot);

위의 명령을 내린다고 해서 기존의 EXTENT가 COLD영역에서 HOT 영역으로

이동하는 것은 아니며, 새로운 EXTENT 부터 지정된 HOT 영역에 할당되게 된다.

Page 19: 11gR2 Oracle Database ASM IDP · 2014-10-23 · Advanced Oracle Document … ASM IDP Oracle 11gR2 의 NF 중 하나는 IDP 이다. ASM IDP(Intelligent Data Placement) 이며 , 우리말로

Advanced Oracle Document …

수동으로 REBALANCE 를 하게 되면 기존의 EXTENT 도 HOT영역으로 이동하게

된다.

ASM 인스턴스에 SYSASM 권한으로 접속 후 아래와 같이 rebalance 를 할 수 있다.

alter diskgroup test rebalance power 9;

power 의 인자 값은 rebalance 시 숫자가 높을수록 많은 CPU의 자원을 많이

활용하여 빠른 rebalance 를 하겠다라는 의미이며,

1의 경우 9와 반대로 Rebalance시간은 오래 걸리더라도 자원 소모를 적게

하겠다라는 의미의 인자 값이다.

7. Epilogue

ASM 영역의 선호 속성을 지정 할 수 있다 라는 것과 지정함에 따라 성능이 개선되는

부분을 확인 하였다. 쿼리나 데이터 분포도, join 의 형태에 따라 HOT과 COLD

영역의 수행속도 차이는 더욱 날듯하다.

다만 아쉬운 부분은 Redundancy 를 Normal(Mirror) 로 설정해야 하기 때문에 오는

공간 가용성이 1/2 로 줄어든다는 것이다.

Storage 에서 이미 Raid 1 이나 5로 구성되어 보내온 LUN 볼륨을

ASM에서 다시 Redundancy 를 Normal 로 설정함에 따라 용량이 줄어 드는 부분이

있기 때문에 이 부분이 가장 아쉬운 부분이라고 할 수 있겠다.