OS환경 : Oracle Linux 7.6 (64bit)
DB 환경 : Oracle Database 19.8.0.0
방법 : 오라클 19c Oracle Database In-Memory BASE_LEVEL 기능
Oracle DB 19.8 버전부터 In-Memory BASE_LEVEL 기능을 사용할 수 있게됨
Oracle In-Memory 란?
이 백서 또는 http://www.koreaoug.org/c12/935 참조
Oracle In-Memory Base Level 란?
이 기능을 사용하면 Oracle Database In-Memory 옵션을 구매하지 않고도
Oracle Database In-Memory 기능을 실험 할 수 있음
In-Memory 기능에 대한 설명은 오라클 블로그 게시물을 참조하면됨
Oracle Database In-Memory 기본 수준 기능
In-Memory 기능은 몇 가지 제한 사항이 존재함
- INMEMORY_SIZE 값은 CDB (물론 비 CDB도)에 대해 16GB를 초과 할 수 없음
- Oracle RAC 환경이있는 경우 각 인스턴스에 대해 16GB 로 설정할 수 있음
- 모든 개체에 대해 설정되고 열이 자동으로 투명하게 QUERY LOW로 설정되므로 압축 수준에 영향을 주지 않음
- COMPATIBLE 이 Oracle 12.1.0 이상이어야함
(그 이하일 경우 IN-MEMORY 테이블을 조회하려고 할 때 ORA-922 에러발생함)
- 세부사항은 아래의 자세한 라이선스 정보를 참조
라이센스 확인
Oracle Database 19c License Guide 에서 database In-Memory Base Level 을 검색
사용 방법
db 버전 확인(19.8 이상이어야함)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
SQL> set lines 200 pages 1000
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
BANNER_FULL
-------------------------------------------------------------------------------------------
BANNER_LEGACY CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.8.0.0.0
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production 0
|
inmemory 파라미터 설정
서버 메모리가 4g 여서 sga를 2g로 inmemory를 1g 로 할당함
1
2
3
4
5
|
SQL>
alter system set sga_target=2g scope=spfile;
alter system set inmemory_force=base_level scope=spfile;
alter system set inmemory_size=1g scope=spfile;
startup force
|
테스트용 유저 생성
1
2
3
4
5
6
7
|
SQL> create user imsi identified by imsi account unlock quota unlimited on users;
User created.
SQL> grant resource, connect, dba to imsi;
Grant succeeded.
|
샘플 테이블 생성
1
2
3
4
5
6
7
8
9
10
|
SQL> conn imsi/imsi
Connected.
SQL> create table table1 as select * from dba_objects;
Table created.
SQL> create table table2 as select * from dba_objects;
Table created.
|
table1 테이블 inmemory 속성으로 변경
1
2
3
|
SQL> alter table table1 inmemory priority high;
Table altered.
|
해당 테이블이 메모리에 올라가있는지 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
SQL>
set lines 200 pages 1000
col owner for a20
col table_name for a20
select owner, table_name,
inmemory,
inmemory_priority,
inmemory_distribute,
inmemory_compression,
inmemory_duplicate
from dba_tables
where owner like 'IMSI'
order by table_name;
OWNER TABLE_NAME INMEMORY INMEMORY INMEMORY_DISTRI INMEMORY_COMPRESS INMEMORY_DUPL
-------------------- -------------------- -------- -------- --------------- ----------------- -------------
IMSI TABLE1 ENABLED HIGH AUTO FOR QUERY LOW NO DUPLICATE
IMSI TABLE2 DISABLED
|
해당 테이블 inmemory 할당 세그먼트 확인
1
2
3
4
5
6
7
8
|
SQL>
col owner for a20
col segment_name for a20
select owner, segment_name,inmemory_size,bytes_not_populated from v$im_segments;
OWNER SEGMENT_NAME INMEMORY_SIZE BYTES_NOT_POPULATED
-------------------- -------------------- ------------- -------------------
IMSI TABLE1 1310720 0
|
https://blogs.oracle.com/in-memory/oracle-database-in-memory-base-level-feature
https://blogs.oracle.com/in-memory/base-level-198-ru
https://positivemh.tistory.com/551
https://positivemh.tistory.com/540
'ORACLE > Admin' 카테고리의 다른 글
오라클 19c /etc/hosts 권한 부족시 발생하는 문제 (0) | 2020.09.18 |
---|---|
오라클 19c 리스너 상태 READY와 UNKNOWN 차이 (0) | 2020.09.15 |
crsctl start crs wait 옵션 (0) | 2020.08.23 |
오라클 11g R2 ADRCI 를 이용한 IPS(Incident Packaging Service) 가이드 (0) | 2020.08.16 |
오라클 11g DB 재기동시 sql_id 는 남아있을까? (v$sql) (0) | 2020.08.13 |