본문 바로가기
Oracle/설치

운영중인 싱글 DB에 Raw Device 추가하기

by 취미툰 2020. 1. 12.
반응형

안녕하세요.

제가 테스트를 할때 구성했던 File System의 Single DB에 Raw Device 형식의 Datafile을 추가해야 할 일이 있어서 처음부터 Raw Device를 구축하는 것이 아니라, 한 디스크만 추가하여 데이터파일 하나만 Raw Device형식으로 사용하는 방법을 포스팅하겠습니다.

 

사용 VM Oracle Virtual Box

DB Oracle 12cR2

 

기존에 DB가 설치된 서버라고 가정 후 진행하는 것이기 때문에 DB 설치에 대해서는 설명하지 않겠습니다.

 

1.서버 다운 후 디스크 추가

마우스 오른쪽 - 설정 클릭

저장소 클릭

SCSI 컨트롤러 추가하기 클릭

새 하드디스크 추가 아이콘 클릭

새 디스크 만들기 클릭

이름과 크기 지정 후 만들기 클릭

만든 후 SCSI 포트 확인 후 확인 클릭. 하나만 추가할 경우 SCSI 포트 1번이 맞습니다.

 

2.서버 기동 후 디스크 파티셔 추가

root 유저로 수행

 

파티션을 나눌 디스크를 확인합니다.

# fdisk -l

 

Disk /dev/sda: 85.9 GB, 85899345920 bytes, 167772160 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000b4c14

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *        2048      411647      204800   83  Linux

/dev/sda2          411648    16992255     8290304   82  Linux swap / Solaris

/dev/sda3        16992256   167772159    75389952   83  Linux

 

Disk /dev/sdb: 3221 MB, 3221225472 bytes, 6291456 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

 

파티션을 생성합니다.

# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.23.2).

 

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

 

Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0xbe3c13bc.

 

Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-6291455, default 2048): [enter]

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-6291455, default 6291455): [enter]

Using default value 6291455

Partition 1 of type Linux and of size 3 GiB is set

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

 

파티션 binding

/dev/raw/raw1이라는 이름으로 binding 해줍니다.

# /bin/raw /dev/raw/raw1 /dev/sdb1

/dev/raw/raw1:  bound to major 8, minor 17

# ls -al /dev/raw/*

crw-rw----. 1 root disk 162, 1 Nov 28 10:34 /dev/raw/raw1

crw-rw----. 1 root disk 162, 0 Nov 28 10:28 /dev/raw/rawctl

 

▶ Oracle유저가 사용할 수 있게 권한 변경

# chown oracle /dev/raw/raw1

# ls -al /dev/raw/raw1

crw-------. 1 oracle disk 162, 1 Nov 28 10:34 /dev/raw/raw1

 

3.실제 DB에서 Raw Device형식으로 테이블스페이스 생성

sql> create tablespace rawtest

  2  datafile '/dev/raw/raw1'

  3  size 2G;

 

Tablespace created.

 

sql> select name from v$datafile;

 

NAME

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

생략

/dev/raw/raw1

14 rows selected.

 

sql> create user rawtest identified by rawtest default tablespace rawtest;

 

User created.

 

sql> grant connect,resource to rawtest;

 

Grant succeeded.

 

sql> create table rawtest as

select l.*, o.*

from

(select dbms_random.string('l',10) as name from dual) o,

(select level as lvl

from dual connect by level <= 1000000) l ;

 

Table created.

 

sql> create index rawtest_lvl on rawtest(lvl);

 

Index created.

 

T/S가 잘 만들어지며 실제 테이블과 인덱스도 잘 생성되는것을 확인할 수 있습니다.

 

반응형

댓글