Oracle Asm 관리 | Oracle Asm 관리 10 개의 정답

당신은 주제를 찾고 있습니까 “oracle asm 관리 – Oracle ASM 관리“? 다음 카테고리의 웹사이트 https://you.tfvp.org 에서 귀하의 모든 질문에 답변해 드립니다: https://you.tfvp.org/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 DBA Genesis 이(가) 작성한 기사에는 조회수 108,628회 및 좋아요 776개 개의 좋아요가 있습니다.

ASM 관리RAC 환경
  1. sqlplus 명령어 접속 shell> id. …
  2. 디스크 그룹 확인 2.1 ASMCMD 명령어 …
  3. 디스크 정보 확인( v$asm_disk 뷰) …
  4. 디스크 그룹에 디스크 추가 …
  5. ASM 을 사용하는 클라이언트(인스턴스) 모니터링( v$asm_client 뷰) …
  6. ASM 관련 뷰

oracle asm 관리 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 Oracle ASM 관리 – oracle asm 관리 주제에 대한 세부정보를 참조하세요

As in other file systems, an ASM directory is a container for files, and an ASM directory can be part of a tree structure of other directories. The fully qualified filename represents a hierarchy of directories in which the plus sign (+) represent the root directory. In each disk group, ASM automatically creates a directory hierarchy that corresponds to the structure of the fully qualified filenames in the disk group. The directories in this hierarchy are known as system-generated directories.

#OracleGird #ASMStorage #OracleASMCommands

0:00 Intro
0:13 ASM Introduction
5:08 Oracle Cluster Ware
9:15 ASM Diskgroup
15:05 ASM Disks
25:00 Oracle ASM Instance
34:34 Oracle ASM instance on RAC
39:13 Oracle ASM Instance Failure
45:46 ASM Mirroring and Failure groups
50:00 Failure Groups
1:06:46 How to administer the ASM?

Your comments encourage us to produce quality content, please take a second and say ‘Hi’ in the comments and let me and my team know what you thought of the video … p.s. It would mean the world to me if you hit the subscribe button 😉

Link to full course: https://dbagenesis.com/p/oracle-rac-beginners
Link to all DBA courses: https://dbagenesis.com/courses
Link to real-time projects: https://dbagenesis.com/p/projects
Link to support articles: https://support.dbagenesis.com

DBA Genesis provides all you need to build and manage effective Oracle technology learning. We designed DBA Genesis as a simple to use yet powerful online Oracle learning system for students. Each of our courses is taught by an expert instructor, and every course is available with a challenging project to push you out of your comfort zone!!

DBA Genesis is currently the fastest \u0026 the most engaging learning platforms for DBAs across the globe. Take your database administration skills to next level by enrolling into your first course.

Facebook: https://www.facebook.com/dbagenesis/
Instagram: https://www.instagram.com/dbagenesis/
Twitter: https://twitter.com/DbaGenesis
Website: https://dbagenesis.com/
Contact us: https://dbagenesis.com/p/contact

Start your DBA Journey Today !!

oracle asm 관리 주제에 대한 자세한 내용은 여기를 참조하세요.

오라클 – 네이버 블로그

오라클 . 4절. ASM 의 관리. 이절에서는 생성된 ASM 인스턴스와 DiskGroup 을 관리하기 위한 명령어 들과 관리 방법에 …

+ 여기에 보기

Source: m.blog.naver.com

Date Published: 8/18/2022

View: 5364

ASM 관리 – DB네 생선가게

오라클 백업/복구. ASM 관리. H생선 >゜)))彡 2013. 2. 24 …

+ 여기에 더 보기

Source: hayleyfish.tistory.com

Date Published: 4/7/2022

View: 6388

Oracle ASM 인스턴스 및 디스크 그룹 만들기

Oracle ASM 디스크 그룹은 Oracle ASM 인스턴스가 단위로 관리하는 데이터 파일을 저장하는 디스크 장치 모음입니다. Oracle ASM 인스턴스는 디스크 그룹을 마운트하여 …

+ 여기에 더 보기

Source: docs.oracle.com

Date Published: 4/21/2022

View: 8481

Oracle ASM 이 스토리지를 관리하는 데이터 구조 – DBA의 정석

ORACLE ASM이 스토리지를 관리하는 데이터 구조 list. Disk Group. ASM Disk group은 논리적인 단위로써 관리되는 디스크 집합체이며, ASM에서 고려되는 최상의 데이터 …

+ 더 읽기

Source: haisins.epac.to

Date Published: 3/18/2021

View: 721

백업 & 복구 38 – ASM : 기본 관리법 – disk 추가삭제 / disk group …

[1] ASM관리하기 1. ASM disk 내용 확인. +ASM> set line 200 col disk_group for a10 col label for a10 col state for a10

+ 여기에 보기

Source: dinggur.tistory.com

Date Published: 8/28/2022

View: 1151

[Oracle DBA]ASM Instance 관리 – 승삼이의 작업공간

17:16. ASM Instance 관리. ASM. 스토리지관리도구와 스토리지의 통합 … Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production.

+ 여기에 더 보기

Source: seungsami.tistory.com

Date Published: 4/12/2021

View: 824

자동 스토리지 관리(ASM) 초보자 가이드 – GeekPeach.net

Oracle ASM 명령줄 유틸리티(ASMCMD)는 다음을 관리하는 데 … Oracle ASM 인스턴스; 디스크 그룹 …

+ 여기에 자세히 보기

Source: geekpeach.net

Date Published: 7/16/2022

View: 5870

Oracle ASM – 내맘대로긍정

「ASM」. 정의. → 오라클 파일을 통합적으로 관리하는 것. 어렵게 얘기하면 Volumn Manager와 File System이 오라클 데이터베이스 서버로 구성된 것.

+ 여기에 보기

Source: positivemh.tistory.com

Date Published: 2/3/2022

View: 9326

Oracle ASM – RastaLion’s IT Blog

그리고 RAC 구성처럼 ASM 인스턴스가 관리하는 디스크는 모든 노드에서 인식 가능하도록 구성해야 합니다. 데이터베이스 인스턴스는 오직 동일 노드에 …

+ 더 읽기

Source: rastalion.me

Date Published: 1/6/2022

View: 6292

주제와 관련된 이미지 oracle asm 관리

주제와 관련된 더 많은 사진을 참조하십시오 Oracle ASM 관리. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

Oracle ASM 관리
Oracle ASM 관리

주제에 대한 기사 평가 oracle asm 관리

  • Author: DBA Genesis
  • Views: 조회수 108,628회
  • Likes: 좋아요 776개
  • Date Published: 2016. 2. 11.
  • Video Url link: https://www.youtube.com/watch?v=trXwidbjBEE

ASM 관리 – RAC 환경

[root@rac1 ~]# oracleasm createdisk ASM9 /dev/sdo => 파티션이 되어있지 않을 경우 오류가 발생

Device “/dev/sdo” is not a partition

[root@rac1 ~]# fdisk /dev/sdo => 디스크 파티션 생성

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 0xdc5a747f.

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): Enter

First sector (2048-10485759, default 2048): Enter

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):

Using default value 10485759

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

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@rac1 ~]# oracleasm createdisk ASM9 /dev/sdo1 => ASMLib 사용을 위한 디바이스 할당

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# [root@rac2 disks]# oracleasm scandisks => Node2 에서 변경된 ASMLib Disk 스캔

Reloading disk partitions: done

Cleaning any stale ASM disks…

Scanning system for ASM disks…

Instantiating disk “ASM9”

[root@rac2 disks]# [root@rac1 ~]# oracleasm deletedisk ASM9 => OS에 디바이스 반환(ASMLib 에서 제거)

Clearing disk header: done

Dropping disk: done

[root@rac1 ~]#

오라클

오라클

4절. ASM 의 관리

이절에서는 생성된 ASM 인스턴스와 DiskGroup 을 관리하기 위한 명령어 들과 관리 방법에 대해 보고 더불어 관리를 위한 다양한 VIEW 들에 대해 학습해 보도록 합시다.

1. DiskGroup 의 변경과 관리

1) DiskGroup 의 변경

① disk 의 추가

% Alter diskgroup ecamp_disk1 add disk ‘/dev/rdsk/c4t20d7s4’

rebalance power 11;

디스크 그룹에 디스크를 추가하는 sql문 입니다. 명령문 끝에 REBALACNE 속도를 조절하는 옵션을 볼 수 있습니다. 앞서 학습한 바와 같이 디스크를 추가하거나 삭제 할때 REBALANCE 이벤트가 발생 하는데요, 마찬가지로 디스크를 추가할때 속도를 해당 오퍼레이션에 한해 조절 할 수 있습니다.

옵션을 사용하지 않으면 파라메터에 설정된 ASM_POWER_LIMIT 를 기본 값으로 사용합니다. 만약 시스템의 부하가 많고 운영시간 중에 디스크의 추가나 삭제가 이루어져야 한단면. rebalance power 옵션을 사용하여 사용자가 조절한다면 시스템에 긍정적인 효과를 볼수 있습니다.

② disk 의 삭제

SQL> Alter diskgroup ecamp_disk1 drop disk ‘/dev/rdsk/c4t20d7s4’

rebalance power 11 ;

마찬가지로 REBALANCE 속도를 조절할 수 있습니다. 단. sql문을 수행하면 백그라운드로 삭제 작업이 수행됩니다.

만약 삭제 후 삭제 취소를 하고 싶다면 다음과 같은 sql문을 작성하여 실행 하시면 됩니다.

SQL> Alter diskgroup ecamp_disk1 undrop disks;

단, 주의 할점은 백그라운드로 수행되던 삭제 작업이 종료 되었다면, 수행 할수 없으며,

현재 수행 중이라면 삭제 작업을 취소 할 수 있습니다.

③ DiskGroup의 Mount 와 Unmount

기본적으로 ASM 인스턴스의 시작시에 자동으로 디스크 그룹이 마운트 되게 되어 있지만,

다음과 같은 sql문을 통해 사용자가 메뉴얼 하게 조정 할 수 있습니다.

SQL> alter diskgroup alll dismount; — 디스크그룹을 언마운트 합니다.

SQL> alter diskgroup ecamp_disk1 mount; — 디스크 그룹을 마운트 합니다.

위 sql 문에서 보듯이 all 또는 해당 DiskGroup 명을 명시 할 수 있습니다.

④ DiskGroup 의 정합성 체크

SQL> alter diskgroup ecamp_disk1 check all

디스크 그룹의 정합성을 체크합니다. 단, 정합성 체크를 위해서는 디스크 그룹이 마운트 상태 이어야 합니다.

부가적으로 발생하는 에러 로그 들은 Alert.log 에 생성됩니다.

2. ASM 의 디렉토리 생성및 관리

ASM 디스크 그룹에 생성하게 되면 기본적으로 디스크 그룹의 이름이 최상위 root 디렉토리가 됩니다. ASM 내에 사용자가 디렉토리를 추가적으로 생성하여 리두로그, 아카이브로그, 콘트롤 파일 들을 기록 할 수 있습니다.

① ASM 의 디렉토리 생성

우리가 생성한 디스크 그룹은 ecamp_disk1, ecamp_disk2 입니다.

따라서 다음과 같이 디렉토리를 생성 할 수 있습니다.

SQL> alter diksgroup ecamp_disk1

add directory ‘+ecamp_disk1/mydir’ ;

위의 sql문에서 ‘+’ 기호는 디렉토리 라는 의미로 사용되어 집니다.

‘+’ 기호가 들어가면 ASM의 내부 디렉토리로 해석하게 됩니다.

② ASM 디렉토리의 RENAME

설정 된 디렉토리 명을 바구기 위해서는 다음과 같은 sql문을 실행 하시면 됩니다.

SQL> alter diskgroup ecamp_disk1 rename directory

‘+ecamp_disk1/mydir’ to ‘+ecamp_disk1/renamed_dir’

③ ASM 디렉토리의 삭제

디렉토리를 삭제 할대는 다음과 같은 명령문을 실행하면 됩니다.

SQL> alter diskgroup ecamp_disk1 drop directory

‘+ecamp_disk1/renamed_dir’ FORCE to

‘+ecamp_disk1/renamed_dir’

FORCE 옵션은 디렉토리내의 파일이 있을경우 파일까지 모두 삭제 할때 사용합니다.

일반적으로 FORCE 옵션을 사용하여 삭제 합니다.

3. ASM 에서의 파일 템플릿과 파일 생성

오라클 10g 에서는 파일을 다룰때 파일이 ASM 디스크 에서 어떻게 기록되며, 기록될 때 스트라이핑이나 미러링의 속성을 어떠한 형태로 가지게 될까를 템플릿 이라는 새로운 개념을 도입하여 설정합니다. 템플릿은 시스템에 제공 되는 템플릿과 , 사용자 정의 템플릿 두가지가 있습니다.

우선 오라클에서 지원되는 파일의 종류를 살펴 보도록 하겠습니다.

File Type 지원여부 템플릿명 콘트롤 파일 yes CONTROLFILE 데이타 파일 yes DATAFILE 리두로그 파일 yes ONLINELOG 아카이브로그 파일 yes ARCHIVELOG 트레이스 파일 no N/A Temporary files yes TEMPFILE Datafile backup pieces yes BACKUPSET Datafile incremental backup pieces yes BACKUPSET Archive log backup piece yes BACKUPSET Datafile copy yes DATAFILE Persistent initialization parameter file(SPFILE) yes PARAMETERFILE Disaster recovery configurations yes DATAGUARDCONFIG Flashback logs yes FLASHBACK Change tracking file yes CHANGETRACKING Data Pump dumpset yes DUMPSET Automatically generated control file backup yes AUTOBACKUP

오라클에서는 트레이스 파일을 제외한 모든 파일 템플릿을 제공합니다. 그럼 이러한 파일들이 앞서 학습한 NOMAL REDUNDANCY, HIGH REDUNDANCY, EXTERNAL REDUNDANCY 의 환경에서 어떻게 기록 되는 지 살펴 보도록 하겠습니다.

Template Nmae Striping Mirroring, Nomal Redundancy Mirroring, High Redundancy Mirroring, Erternal Redundancy ARCHIVELOG COARSE MIRROR HIGH UNPROTECTED TEMPFILE COARSE MIRROR HIGH UNPROTECTED BACKUPSET COARSE MIRROR HIGH UNPROTECTED PARAMETERFILE COARSE MIRROR HIGH UNPROTECTED DATAGUARDCONFIG COARSE MIRROR HIGH UNPROTECTED FLASHBACK FINE MIRROR HIGH UNPROTECTED CHANGETRACKING COARSE MIRROR HIGH UNPROTECTED DUMPSET COARSE MIRROR HIGH UNPROTECTED XTRANSPORT COARSE MIRROR HIGH UNPROTECTED AUTOBACKUP COARSE MIRROR HIGH UNPROTECTED DATAFILE COARSE MIRROR HIGH UNPROTECTED CONTROLFILE FINE HIGH HIGH UNPROTECTED ONLINELOG FINE MIRROR HIGH UNPROTECTED

표에서 보듯 Striping AU(Allocation Unit) 의 크기가 FLASHBACK, CONTROLFILE, ONLINELOG 일 경우 항상 FINE GRAINDED 하게 설정됩니다. 디펄트로 제공되는 템플릿 이되에 사용자가 직접 mirroring 이나 string 정도를 설정 하고 싶을 때에는 다음과 같이 직접 템플릿을 작성하여 디스크 그룹에 추가해 주면 됩니다.

SQL> alter diskgroup ecamp_disk1 add template my_temp

attributes mirror fine

ATTRIBUTES(속성)을 지정하지 않는다면 디스크 그룹이 NOMAL 일경우 MIRROR 가 디폴트 값이며,, HIGH일 경우는 HIGH 가 디폴트 입니다. 디스크 그룹이 EXTERNAL 일경우에는 UNPROTECTED 값이 자동으로 설정 됩니다.

4. ASM 을 사용한 TABLESPACE생성

우리가 ecamp_disk1 DiskGroup 을 상에 테이블 스페이스를 생성하고자 한다면 , 다음과 같은 sql문을 작성하여 실행 할 수 있습니다.

SQL> create tablespace sample DATAFILE ‘ecamp_disk1(datafile)’;

그림과 같이 테이터 파일을 생성하게 되면 일련된 이이터 파일은 디스크 그룹내의 여러개의 디스크로 균일하게 쪼개어져 저장됨으로써 디스크 I/O 집중을 막을수 있습니다.

Create tablespace sample datafile ‘+ecamp_disk1(datafile)’ 에서 + 기호는 디렉토리라는 뜻이며 ‘()’ 안의 내용은 생성된 파일의 속성을 템플릿을 이용하여 지정 하였습니다.

datafile 이라는 템플릿을 사용하였으므로 Redundancy 정도에 따라 템플릿 정보에 의해 다르게 기록 될것입니다.

이러한 방법으로 테이블 스페이스 뿐만 아니라 아카이브 로그 , 리두로그 등을 ASM 을 이용하여 저장할 수 있습니다.

5. ASM 을 사용한 Redolog생성

init 파라메터 파일에 다음과 같이 값을 설정합니다.

DB_CREATE_ONLINE_LOG_DEST1= ‘+ecamp_disk1’

DB_CREATE_ONLINE_LOG_DEST2= ‘+ecamp_disk2’

설정우 sqlplus 로 접속하여

SQL> alter database add logfile;

6. ASM 모니터링 하기

1) ASMCMD (ASM Command Line Interface) 를 이용한 ASM 모니터링

ASM에서는 sqlplus 를 이용해서 ASM 내에 생성 되는 파일이나 디렉토리를 볼수 있을 뿐만아니라 ASMCMD 라는 Command Line Interface 를 제공하여 sqlplus 보다 더욱 간편하게 파일이나 디텍토리를 조회 할 수 있습니다.

sql문과 마찬가지로 ASMCMD 를 사용하기 위해서는 환결변수의 변경이 필요합니다. 환경 변수 를 변경하고 asmcmd 를 실행하면 Command Line Mode 로 접속 할 수 있습니다.

% export ORACLE_SID=+ASM

% asmcmd

ASMCMD> help

help 명령어는 ASMCMD 의 명령어 사용방법을 알려줍니다.

유닉스 명령어와 유사하여 help 페이지를 토대로 누구나 실습할 수 있습니다.

다음과 같이 ASM 내의 디렉토리로 들어간다음 파일 목록들을 볼 수 가 있습니다.

ASMCMD> cd +ecamp_disk1

ASMCMD> ls -al

Type Redund Striped Time Sys Name

Y ORAASM/

ASMCMD> cd ORAASM

ASMCMD> ls

1_2_589873405.dbf

ARCHIVELOG/

CONTROLFILE/

DATAFILE/

ONLINELOG/

PARAMETERFILE/

TEMPFILE/

spfileoraasm.ora

ASMCMD> du

Used_MB Mirror_used_MB

1287 2585

ASMCMD>_

위의 예제에서 보듯이 ‘cd’ 명령어를 통해 디렉토리에 접근 할 수 있으며 ‘ls’ 명령을 통해 파일 리스트를 확인 할 수 있습니다.

또한 du 명령어를 통해 용량을 확인 할 수 있습니다.

2) ASM 관련 VIEW 를 이용한 모니터링

VIEW 설명 V$ASM_DISKGROUP 디스크 그룹에 관계된 정보를 저장함. V$ASM_DISK 디스크 에 관계된 정보를 저장함 V$ASM_FILE ASM 상에 생성된 파일데 대한 정보를 보여줍니다. V$ASM_TEMPLATE ASM 상의 모든디스크 그룹에 설정된 템플릿정보를 보여줍니다. V$ASM_ALIAS ASM 디스크 그룹의 별칭 정보를 보여줍니다. V$ASM_OPERATION ASM 인스턴스상에서 실행되는 작업들의 현황을 보여줍니다. V$ASM_CLIENT ASM 을 사용하는 DB 인스턴스를 보여줍니다.

① ASM 에 접속된 DB 인스턴스 상태 확인하기

ASM 인스턴스에 접속된 DB 인스턴스의 정보와 연결상태 등을 조회 할 수 있습니다.

SQL> select instance_name,db_name,status from v$asm_client

INSTANCE_NAME DB_NAME STATUS

oraasm oraasm CONNECTED

② 디스크 그룹 정보 확인

디스크 그룹에 대한 정보를 알수 있습니다.

SQL> select name,state,type,total_mb,free_mb from v$asm_diskgroup

NAME STATE TYPE TOTAL_MB FREE_MB

ecamp_disk1 MOUNTED NORMAL 3904 1218

ecamp_disk2 MOUNTED NORMAL 1952 1850

③ 디스크 정보 확인

디스크에 대한 정보를 확인할 수 있습니다.

SQL> select name,path,group_number from v$asm_disk

NAME PATH GROUP_NUMBER

ECAMP_DISK2_001 /dev/raw/raw6 2

ECAMP_DISK2_000 /dev/raw/raw6 2

ECAMP_DISK1_000 /dev/raw/raw6 1

ECAMP_DISK1_001 /dev/raw/raw6 1

ECAMP_DISK1_002 /dev/raw/raw6 1

ECAMP_DISK1_003 /dev/raw/raw6 1

ASM 1편- ASM의 개념 (바로가기)

ASM 2편- ASM 프로세스 구조 (바로가기)

ASM 3편- ASM설치 및 디스크 그룹생성 (바로가기)

ASM 4편- ASM관리 및 모니터링 (바로가기)

ASM 관리

ASM 관리

ASM 관련 VIEW 들

VIEW 설명 V$ASM_DISKGROUP 디스크 그룹에 관련된 정보 V$ASM_DISK 디스크에 대한 정보 V$ASM_FILE ASM 내부에 생성된 파일에 대한 정보 V$ASM_TEMPLATE ASM 내 모든 디스크 그룹에 설정된 템플릿 정보 V$ASM_ALIAS ASM 디스크 그룹의 ALIAS 정보 V$ASM_OPERATION ASM 인스턴스상에서 실행되는 작업들 현황 정보 V$ASM_CLIENT ASM을 사용하는 DB 인스턴스 현황

Database Instance에서 현재 연결되어있는 ASM Disk Group 정보 확인

SELECT a.name “disk_group”, d.name “Label”, a.state FROM v$asm_disk d, v$asm_diskgroup a WHERE d.group_number = a.group_number ORDER BY 2 ;

[예제]

더보기

접기

접기

ASM Instance에서도 조회 가능

SELECT group_number, name, type, state FROM v$asm_diskgroup ;

ASM Instance에서 각 디스크 그룹별 세부 상세 정보 조회

SELECT group_number, disk_number, name, mount_status, path, total_mb FROM v$asm_disk ;

ASM Instance에서 각 디스크 그룹별 파일 내역 조회

SELECT group_number, file_number, round((bytes/1024/1024),1) MB, redundancy, type FROM v$asm_file ;

[예제]

더보기

접기

접기

ASM Instance 현재 상태 조회

SELECT b.name as group_name, a.name as disk_name, a.header_status, a.state, a.free_mb FROM v$asm_disk a, v$asm_diskgroup b WHERE a.group_number = b.group_number ;

※ Redundancy? ※

만약의 경우를 위해 미러링 하는 정도를 의미

Disk Group에서 그중 하나 이상의 디스크가 장애날 경우

전체 Disk Group내의 데이터를 모두 손실할 수 있기 때문에 안정성을 위해 redundancy를 설정할 수 있다.

ASM Instance 생성시 디스크 그룹을 선택할 때 생성

Normal

– 2-way mirroring, 2배의 디스크가 필요 (실제 데이터가 저장되는 공간이 100G면, 100G 디스크 2개가 필요)

High

– 3-way mirroring, 3배의 디스크 필요

External

– ASM mirroring 기능 사용하지 않음, Hardware RAID 기능으로 디스크를 보호하고 있을 경우에만 사용하길 권장

ASM Disk group에 disk 추가 및 삭제

추가한 디스크 ASM disk로 등록

*ASM disk로 등록할 디스크들은 포맷하면 안됨!!!

# /etc/init.d/oracleasm createdisk 디스크이름 경로

eg)

# /etc/init.d/oracleasm createdisk asm2 /dev/asm2/asm3

# /etc/init.d/oracleasm createdisk asm3 /dev/asm2/asm4

ASM disk중에서 사용하지 않는 것 조회 (아직 연결되지 않은 디스크 조회)

SELECT group_number, mount_status, path, total_mb FROM v$asm_disk WHERE mount_status=’CLOSED’ ;

Disk group에 새로운 Disk 추가

ALTER DISKGROUP DATA ADD DISK ‘PATH대문자이름’ rebalance power n ;

eg)

> alter diskgroup data add disk ‘ORCL:ASM3’ rebalance power 10 ;

[실습]

더보기

접기

접기

Disk group에 Disk 삭제

ALTER DISKGROUP DATA DROP DISK 디스크이름 ;

eg)

> alter diskgroup data drop disk asm3 ;

※ 해당 디스크 안에 데이터가 들어있으면 tablespace 지운 후 drop disk 가능

drop disk하면 나머지 디스크들에 맞게 다시 reblance 작업을 시작함

조회 방법은

SELECT * FROM v$asm_operation ;

특정 디스크 그룹 내역 확인

SELECT name, header_status, state, free_mb FROM v$asm_disk WHERE group_number=n ;

[실습]

더보기

접기

접기

Disk Group 추가 및 삭제

현재 디스크 그룹 내역 확인

SELECT group_number, name, state FROM v$asm_diskgroup ;

디스크 그룹 추가

CREATE DISKGROUP 그룹이름 redundancy옵션 REDUNDANCY ‘path이름’ ;

eg) create diskgroup new_asm external redundancy disk ‘ORCL:ASM3’ ;

디스크 그룹 삭제

DROP DISKGROUP 그룹이름 ;

해당 디스크 그룹에 데이터 파일이 있을 경우 삭제 안됨

해당 데이터 파일 전부 지우고 삭제가능, 아니면 including contents 옵션 사용 해서 데이터 파일까지 함께 지우기

하지만 마운트 되어있는 디스크 그룹은 지워지지 않으니까 DISMOUNT 시키고 작업

강제로 DISMOUNT는 뒤에 옵션 FORCE 를 붙여서 가능

디스크그룹 mount/unmount

ALTER DISKGROUP 그룹이름 MOUNT ; ALTER DISKGROUP 그룹이름 DISMOUNT ;

[실습]

더보기

접기

접기

Disk Group 유지 보수를 하기 위해서 restrict 옵션이 있음

ALTER DISKGROUP 그룹이름 MOUNT RESTRICT ;

이 옵션으로 Disk Group 마운트 할 경우 일반 사용자는 접속할 수 없어 유지 관리 성능을 향상 시킬 수 있음

유지 보수작업이 끝나면 dismount 한 후 mount 시키기

Tablespace / Datafile 관리

(database instance에서 작업해야함)

Tablespace 생성

SELECT tablespace_name, bytes/1024/1024 MB, file_name FROM dba_data_files ;

–> 이렇게 datafile 경로 지정안하면 db_create_file_dest 파라미터에 저장된 경로로 datafile 생성됨

db_create_file_dest 확인하려면 show parameter db_create_file_dest

Data file 추가

ALTER TABLESPACE T/S명 ADD DATAFILE SIZE * ;

eg)

> alter tablespace ts_new add datafile size 5M ;

Tablespace, Data file 정보 조회는

SELECT tablespace_name, bytes/1024/1024 MB, file_name FROM dba_data_files ;

[실습]

더보기

접기

접기

offline 되는 데이터 파일 이동

해당 테이블스페이스 offline -> RMAN으로 데이터파일 복사 -> rename -> 테이블스페이스 online

eg)

> alter tablespace ts_new offline ;

RMAN> copy datafile ‘+DATA/testdb/datafile/ts_new.266.808244713’ to ‘+FRA’ ;

> alter database rename file ‘+DATA/testdb/datafile/ts_new.266.808244713’

to ‘+FRA/testdb/datafile/ts_new.260.808245773’ ;

> alter tablespace ts_new online ;

[실습]

더보기

접기

접기

offline 안되는 데이터 파일 이동

DB 종료 -> DB MOUNT -> RMAN으로 복사 -> rename -> DB OPEN

eg)

> shutdown immediate ;

> startup mount ;

RMAN> copy datafile ‘+DATA/testdb/datafile/system.260.808019543’ to ‘+FRA’ ;

> alter database rename file ‘+DATA/testdb/datafile/system.260.808019543’

to ‘+FRA/testdb/datafile/system.262.808248611’ ;

> alter database open ;

[실습]

더보기

접기

접기

RMAN에서 작업형 명령어로 작업 가능

RMAN> run {

2> shutdown immediate ;

3> startup mount ;

4> copy datafile ‘+FRA/testdb/datafile/system.262.808248611’ to ‘+DATA’ ;

5> }

RMAN> run {

2> sql “alter database rename file ”+FRA/testdb/datafile/system.262.808248611”

3> to ”+DATA/testdb/datafile/system.266.808250305”” ;

4> alter database open ;

5> }

[실습]

더보기

접기

접기

asmcmd로 ASM 관리

asmcmd는 ASM 관리 방법 중 한가지로 유닉스 명령어와 유사한 명령어들로 구성되어 있음

$ asmcmd

ASMCMD> help << 자세한 옵션, 명령어들을 알 수 있음 몇가지만 알아보자면 $ asmcmd -p -> prompt에 현재 위치를 보여줌

> cd -> 디렉토리 변경

> du -> 사용 용량 확인

> find -> 특정 파일 찾기

> ls -> 디렉토리나 파일 목록 보기

> lsdg -> disk group 정보 보여주기

그 밖에도

mkdir, pwd rm

11g ASM부터 지원하는 명령어

cp: OS ASM, ASM ASM 간 파일 복사 기능

lsdsk: ASM 디스크 헤더를 읽어서 요약 정보를 보여줌

remap: ASM disk 장애 났을 경우 다른 디스크로 remapping 시키고 기존 장애 디스크를 unusable로 변경

Oracle Real Application Clusters용 Oracle® Solaris Cluster 데이터 서비스 설명서

Oracle ASM 인스턴스 및 디스크 그룹 만들기

Oracle ASM 설치는 Oracle ASM 인스턴스 설치와 만들기 및 필요한 Oracle ASM 디스크 그룹 구성으로 구성됩니다. Oracle ASM 디스크 그룹은 Oracle ASM 인스턴스가 단위로 관리하는 데이터 파일을 저장하는 디스크 장치 모음입니다. Oracle ASM 인스턴스는 디스크 그룹을 마운트하여 데이터베이스 인스턴스에서 Oracle ASM 파일을 사용할 수 있도록 합니다.

Oracle ASM 이 스토리지를 관리하는 데이터 구조 – DBA의 정석

ORACLE ASM이 스토리지를 관리하는 데이터 구조 list

Disk Group

ASM Disk group은 논리적인 단위로써 관리되는 디스크 집합체이며, ASM에서 고려되는 최상의 데이터 구조이다. 개별 Disk group은 자신의 파일 Directory와 Disk Directory 그리고 다른 Meta data를 포함하고 있다(Directory 개념은 해당 목차에서 다루도록 하겠다).

디스크의 크기에 비례하는 숫자의 Extent가 개별 Disk에 할당 됨으로써, Application에 의해 발생되는 I/O load는 하나의 Disk group에 속해있는 모든 Disk에 골고루 분산된다. 이러한 기능으로 Disk group의 디스크 공간이 없는 상태는, 바로 모든 Disk가 데이터로 꽉 차있다는 것을 의미한다.

이렇게 균등하게 I/O load가 분산되어 처리되기 때문에, 특정 Disk group구성 시 사용되는 Disk들은 크기가 비슷하고, 동등한 수준의 성능을 나타내는 것으로 지정해야 원하는 수준의 결과를 달성할 수 있다. 즉, 가장 좋은 성능을 나타내는 Disk 들을 모아 특정 Disk group을 생성하고, 이 Disk group에 Application에서 가장 중요한 데이터들을 저장하는 방법을 모색할 수 있는 것이다.

현재, ASM Disk group은 동시에 63개의 Disk group을 mount 할 수 있다.

Failure Group

Failure group은 스토리지 리소스를 공유하는 Disk group의 일부분이다. 여기서 말하는 ‘리소스’는 장애 발생 시 함께 영향을 받게 되는 Disk들이 서로 공유하고 있는 리소스를 일컫는다. 예를 들어, 어느 Disk들은 SCSI 컨트롤러 1번에 연결되어 있고, 나머지 Disk들은 SCSI 컨트롤러 2에 연결되어 있다면, 전자의 Disk들은 Failure group 1이 되는 것이고, 나머지 Disk 들은 Failure group 2에 속하게 되는 것이다. 즉, 운명을 같이하는 Disk 들의 집합체가 Failure group을 형성하는 것이다. 결과적으로, 하나의 Disk group은 여러 개의 Failure group으로 구성될 수 있다.

Failure group을 어떻게 지정하는 가는 고객이 원하는 안정성의 수준이 무엇인가에 따라 상당히 다를 수 있기 때문에, 사용자가 수동으로 지정/활용하는 것이 일반적이라 하겠다. 만약 Disk group 생성 시 Failure group을 지정하지 않는 다면, ASM은 개별 Disk에 대한 Failure group을 자신의 Disk로 지정한다.

Disk group을 생성할 때마다, DBA들은 그 Disk group의 redundancy를 고려해야 한다. 즉, 데이터의 복사본을 어떻게 유지할 것인가를 판단해야 한다(Data mirroring과 관계 있다). 이는 아래와 같이 세 개로 분류하여 지정된다.

■ EXTERNAL REDUNDANCY

ASM은 생성되는 Disk group에 대해 어떠한 redundancy를 고려하지 않겠다는 것을 의미한다. 이런 경우, 해당 Disk group에 대한 redundancy를 위해 Hardware solution을 사용하던지, 아니면 Disk 장애를 그대로 받아 들여야 한다.

■ NORMAL REDUNDANCY : 2-way mirroring

하나의 failure group에 장애가 발생하더라도 데이터 손실을 예방할 수 있는 방법이다. 이렇게 지정하기 위해서는 적어도 2개의 failure group을 지정할 수 있어야 한다.

■ HIGH REDUNDANCY : 3-way mirroring

가장 높은 수준의 데이터 보호 방법이다. 두 개의 failure group에 장애가 발생하더라도 데이터 손실이 발생하지 않는다. 적어도 3개의 failure group을 지정해야 한다.

ASM Disk

하나의 Disk group은 ASM Disk의 집합체로 구성되는 것이다. 즉, Disk group에 스토리지가 추가 되거나 삭제될 때 ASM Disk 단위로 처리된다. 또한, 데이터베이스 인스턴스에서 Direct I/O가 가능한 물리적인 disk이어야만 한다.

ASM Disk는 서로 다른 노드에서도 동일하게 인식되는 추상적인 이름을 갖고있다. 즉, OS에서 disk를 접근하기 위해 사용하는 이름과는 다르다. 이렇게 다른 이름을 유지하는 이유는 다른 노드들이 동일한 Disk에 대해서 상이한 OS 이름을 갖게 될 경우가 있기 때문이다. ASM Disk 이름은 Disk가 추가될 때 관리자가 지정할 수도 있고, 지정하지 않으면 자동적으로 지정된다. ASM 인스턴스가 Disk group을 mount 할 때, 정확한 ASM Disk를 찾기 위해 관련 OS 이름들이 검색된다. 그리하여 개별 OS 이름과 ASM Disk header 정보의 매핑작업이 이뤄지고 어떤 ASM Disk가 사용될 것인지를 결정하는 것이다. 위 매핑정보는 데이터베이스 인스턴스의 메모리에 저장/관리된다. OS 이름은 사전 경고 없이 변경될 가능성이 있기 때문에, ASM Disk에 저장되지 않는 특성을 갖는다.

ASM은 동시에 10,000개의 disk를 지원할 수 있다.

select a.name “Group_Name”,a.total_mb,a.free_mb,b.name “Disk_Name”,b.failgroup from v$asm_diskgroup a, v$asm_disk b

where a.group_number = b.group_number / Group_Name TOTAL_MB FREE_MB Disk_Name FAILGROUP ————————————————————————————————————–

FIRST 4016 2044 FIRST_0002 THIRD FIRST 4016 2044 FIRST_0003 THIRD

FIRST 4016 2044 FIRST_0000 SECOND

FIRST 4016 2044 FIRST_0001 SECOND

SECOND 2008 1956 SECOND_0000 SECOND_0000

SECOND 2008 1956 SECOND_0001 SECOND_0001 THIRD 2008 1956 THIRD_0000 THIRD_0000

THIRD 2008 1956 THIRD_0001 THIRD_0001

ASM Files

개념

ASM File은 ASM Disk group에 저장되는 Oracle 데이터파일이다. 파일이 생성될 때, Mirroring을 어떻게 할 것인지, Striping은 어떻게 할 것인가에 대한 정보가 함께 적용된다.

ASM File은 OS에 의해 확인될 수 없으며, RMAN이나 다른 Oracle 지원 툴에 의해 확인 가능하다. OMF(Oracle Managed File)와 유사하다. OMF 처럼 더 이상 필요치 않는 파일들은 자동적으로 제거된다. 생성/삭제/읽기/쓰기/크기 변경이 가능하고, 하나의 ASM File은 하나의 Disk group에 분산 저장된다. Disk group을 이루는 개별 파일들이 모든 disk에 분산 저장되기 때문에 하나의 disk에 대한 백업은 유용하지 않다. 때문에, ASM File에 대한 백업은 RMAN을 통해서 만이 가능하다. 그러나 PL/SQL 인터페이스를 통해서 ASM File의 내용을 읽어 내는 것은 가능하다.

특성

■ Load balancing

Disk group에 있는 모든 Disk에 걸쳐서 데이터가 분산 저장되는 이유로 파일접근 형태가 균형을 이루게 된다. 이러한 특성의 장점을 극대화 하기 위해서는 동일한 성능을 나타내는 disk들로 Disk group을 구성해야 한다.

ASM은 Disk group을 구성하는 모든 disk에 걸쳐서 하나의 AU(Allocation Unit) 단위로 파일들을 분산시킨다. 이것을 COARSE striping 이라고 한다. 이에 반해, 개별 AU 단위를 더 작은 크기로 잘라 분산 시키는 것을 FINE striping 이라고 일컫는다. FINE striping은 일반적인 크기의 I/O operation을 더욱더 작은 여러 개의 I/O operation으로 나누어 병렬로 처리하는 것이다.

■ Mirroring

RAID-1과 같은 형태처럼, ASM도 다중의 데이터 복사본을 유지함으로써, 중요 데이터를 보호할 수 있다. 그러나, RAID-1과 다르게 파일단위로 처리된다. RAID-1은 멤버들이 획일적인 알고리즘을 따르게 된다.

생성 예

ASM File의 개별 정보와 DBA_DATA_FILES에서 출력된 정보를 비교해 보기 바란다.

SELECT FILE_NUMBER,BLOCK_SIZE,BLOCKS,BYTES,SPACE,TYPE,REDUNDANCY,STRIPED

FROM V$ASM_FILE;

F_NUMBER BLOCK_SIZE BLOCKS BYTES SPACE TYPE REDUNDANCY STRIPED

————————————————————————————————————————————–

256 8192 56321 461381632 927989760 DATAFILE MIRROR COARSE

257 8192 25601 209723392 424673280 DATAFILE MIRROR COARSE

258 8192 6401 52436992 106954752 DATAFILE MIRROR COARSE

259 8192 641 5251072 12582912 DATAFILE MIRROR COARSE

260 8192 283 2318336 16777216 CONTROLFILE MIRROR FINE

261 512 20481 10486272 33554432 ONLINELOG MIRROR FINE

262 512 20481 10486272 33554432 ONLINELOG MIRROR FINE

263 512 20481 10486272 33554432 ONLINELOG MIRROR FINE

264 8192 2945 24125440 50331648 TEMPFILE MIRROR COARSE

265 8192 19201 157294592 319815680 DATAFILE MIRROR COARSE

266 512 5 2560 2097152 PARAMETERF MIRROR COARSE

FILE_NAME M

—————————————————————————

+FIRST/cook/datafile/system.256.1 440

+FIRST/cook/datafile/sysaux.257.1 200

+FIRST/cook/datafile/undotbs1.258.1 50

+FIRST/cook/datafile/users.259.1 5

+FIRST/cook/example01.dbf 150

+FIRST/cook/controlfile/current.260.1

+FIRST/cook/onlinelog/group_1.261.1 10

+FIRST/cook/onlinelog/group_2.262.1 10

+FIRST/cook/onlinelog/group_3.263.1 10

+FIRST/cook/tempfile/temp.264.1 23

ASM File type

ASM Disk group 내에 저장될 수 있는 파일형태는 아래와 같다.

■ Control File

■ Datafile

■ Online Redo Log

■ Archive Log

■ Temporary data file

■ RMAN backup piece

■ Datafile Copy

■ SPFILE

■ Disaster Recovery Configuration

■ Flashback Log

■ Change Tracking Bitmap

■ DataPump Dumpset

그러나, Oracle 실행모듈과 ASCII 파일, alert log / trace 파일들은 ASM Disk에 저장될 수 없다.

ASM File template

ASM File template은 데이터파일 생성 시 파일에 적용될 성질(redundancy,striping)을 다양하게 분류하여 목록화한 형태를 말한다. Template이 없다면, 파일 생성 시 마다 개별 성질들을 지정해야 할 것이다. 성질부여 작업을 간편하게 수행하기 위한 도구라고 생각하면 무리가 없겠다.

특정 Template은 하나의 Disk group과 연결관계를 갖는다. 서로 다른 Disk group은, 다른 성질을 갖고 있으면서 이름이 동일한 Template을 가질 수 있다.

새로운 Disk group이 생성될 때, ASM은 그 Disk group과 관계된 Default template을 생성한다. 이 Default template은 다양한 Oracle 데이터파일 type에 대한 기본적인 성질들을 포함하게 되는 것이다. Default template의 성질내용은 DBA에 의해 변경 가능할 뿐만 아니라, DBA는 새로운 template을 만들 수 있다. Default template은 삭제될 수 없다.

ASM File 생성 후에, 그 파일에 대한 성질을 변경하기 위해서는 RMAN을 통해 새로운 성질을 갖고 있는 파일로 복사해야 한다. 이것이 파일의 성질을 변경할 수 있는 유일한 방법이다.

아래 내용은 System Default template의 예를 보여준다.

group_num entry_num REDUND STRIPE S NAME

———- ———- —— —— – ——————-

1 0 MIRROR COARSE Y PARAMETERFILE

1 1 MIRROR COARSE Y DUMPSET

1 2 MIRROR FINE Y CONTROLFILE

1 3 MIRROR COARSE Y ARCHIVELOG

1 4 MIRROR FINE Y ONLINELOG

1 5 MIRROR COARSE Y DATAFILE

1 6 MIRROR COARSE Y TEMPFILE

1 7 MIRROR COARSE Y BACKUPSET

1 8 MIRROR COARSE Y AUTOBACKUP

1 9 MIRROR COARSE Y XTRANSPORT

1 10 MIRROR COARSE Y CHANGETRACKING

1 11 MIRROR FINE Y FLASHBACK

1 12 MIRROR COARSE Y DATAGUARDCONFIG

2 0 UNPROT COARSE Y PARAMETERFILE

2 3 UNPROT COARSE Y ARCHIVELOG

2 5 UNPROT COARSE Y DATAFILE

2 7 UNPROT COARSE Y BACKUPSET

2 12 UNPROT COARSE Y DATAGUARDCONFIG

2 11 UNPROT FINE Y FLASHBACK

2 10 UNPROT COARSE Y CHANGETRACKING

2 9 UNPROT COARSE Y XTRANSPORT

2 8 UNPROT COARSE Y AUTOBACKUP

2 6 UNPROT COARSE Y TEMPFILE

2 4 UNPROT FINE Y ONLINELOG

2 2 UNPROT FINE Y CONTROLFILE

2 1 UNPROT COARSE Y DUMPSET

3 0 UNPROT COARSE Y PARAMETERFILE

3 1 UNPROT COARSE Y DUMPSET

3 2 UNPROT FINE Y CONTROLFILE

3 3 UNPROT COARSE Y ARCHIVELOG

3 4 UNPROT FINE Y ONLINELOG

3 5 UNPROT COARSE Y DATAFILE

3 6 UNPROT COARSE Y TEMPFILE

3 7 UNPROT COARSE Y BACKUPSET

3 8 UNPROT COARSE Y AUTOBACKUP

3 9 UNPROT COARSE Y XTRANSPORT

3 10 UNPROT COARSE Y CHANGETRACKING

3 11 UNPROT FINE Y FLASHBACK

3 12 UNPROT COARSE Y DATAGUARDCONFIG

39 rows selected.

Template을 정의하거나 변경할 때, COARSE/Fine-Grained striping 성질도 함께 지정한다.

ASM Meta data에 대한 redundancy/striping 성질은 ASM에 의해 사전 정의되기 때문에, 이 값들은 template 을 통해서 변경이 불가능 하다.

ASM File name

ASM filename은 아래와 같은 다양한 형태로 존재할 수 있다.

■ Fully Qualified ASM Filenames

존재하고 있는 ASM File을 참조하기 위한 형태이다. 이는 Disk group 이름, 데이터베이스 이름, 파일 type, type에 따른 tag 정보, 파일 number, 그리고 incarnation number를 가지고 ASM File을 표현한다. 이 형태는 ASM File이 생성될 때 자동적으로 지정된다. ‘Alias’를 사용하여 ASM File이 생성된다고 하더라도 이러한 형태의 filename도 함께 지정된다.

ASM은 파일생성 시 이 파일형태를 사용하기 때문에, DBA는 파일생성 문장에서 이 형태를 사용할 수 없다.

형태 : +///..

: Disk group 이름

: 파일이 속해 있는 데이터베이스 이름

: 오라클 파일 type

: 데이터파일에 대한 테이블스페이스와 같은 특수 정보

. : 유일성 보장을 위한 File과 Incarnation 정보

예제 : +dgroupA/db1/controlfile/CF.257.8675309

■ Numeric ASM Filenames

존재하고 있는 ASM File을 참조하기 위한 형태이다. 이는 Disk group 이름, 파일 number, 그리고 incarnation number로 구성된다. ASM은 파일 생성 시 파일/Incarnation number를 내부적으로 사용하기 때문에, 이 형태는 파일 생성 시 사용될 수 없다.

이 형태는 Fully qualified name 형태에서 유추되며, 사용자에게 공개되지 않는다. 다만, 존재하는 파일을 참조하기 위한 API를 통해 사용 가능하다.

예제 : +dgroupA.257.8675309

■ Alias ASM Filenames

이 형태는 기존의 ASM File을 참조할 뿐만 아니라 새로운 ASM File을 생성할 때에도 사용될 수 있다. 파일과 Incarnation 숫자를 지정하지 않고, 단지 Disk group 이름과 사용자가 임의로 지정하는 문자열로 이뤄진다. 즉, DBA가 자신이 구별하기 쉽도록 파일 참조정보를 지정할 수 있는 것이다.

Alias Filename은 ‘/’ 문자를 가지는 Directory 구조를 사용한다. 이름을 이루는 각 항목들은 UTF-8 format을 따르며 48 byte 이상이 될 수 없다. 또한, 모든 항목이 포함하는 문자열은 256 byte를 넘을 수 없다. 문자열 사이에 space 문자를 넣을 수 있으나, 대소문자를 구별한다는 것을 유념해야 한다.

예제1 : +dgroupA/myfiles/control_file1

예제2 : +dgroupA/A rather LoNg and WeiRd name/for a file

ASM File은 파일 생성 시 Fully qualified name 형태를 따른다. DBA는 이때 alias를 사용하여 파일을 생성할 수도 있고, 추후 ‘ALTER DISKGROUP ADD ALIAS’ 명령어로 파일을 만들 수 있다.

■ Alias ASM Filenames with template

오직 ASM File을 생성할 때에만 사용되는 형태이다. 이는 Disk group 이름, alias 이름, 그리고 파일에 대한 Template 이름으로 구성된다. 파일 생성시 이러한 형태가 지정되고, alias가 존재하는 파일을 가리킨다면 Template은 무시된다.

예제 : +dgroupA/config1(spfile)

■ Incomplete ASM Filenames

파일 생성시에만 사용되는 형태이다. Disk group 이름만으로 구성한다. 이를 위해, ASM은 해당 파일의 type이 정의되어 있는 Default template을 사용한다.

예제 : +dgroupA

■ Incomplete ASM Filenames with template

파일 생성시에만 사용되는 형태이다. Disk group 이름과 Template 이름으로 조합된다. Template은 파일에 적용되어질 여러 가지 성질을 결정하게 된다.

예제 : +dgroupA(datafile)

이상의 ASM Filename 6개의 형태는 아래와 같은 범주로 나눠볼 수 있다.

그림. ASM Filenames

Allocation Unit(AU)

AU는 Disk group 내에서 저장영역을 할당하고자 할 때 사용하는 기본적인 단위/개념이다. ASM Disk내에서 가용한 공간은 AU 크기의 배수가 되는 것이다. ASM Disk의 header에는 이러한 AU에 대한 정보를 포함하고 있는 테이블이 존재한다.

_ASM_AUSIZE에 의해 변경하지 않는 이상, 기본적으로 AU는 1MB 이다. 이 크기는 하나의 ASM File이 여러 Disk에 골고루 분산되어 저장될 수 있을 정도로 작은 크기일 뿐만 아니라, 하나의 I/O operation에 의해 처리되는 하나의 AU가 좋은 처리량을 보장할 수 있을 정도로 충분히 큰 크기로 생각되는 것이 일반적이다(Oracle SAME 방법론 참조). 또한, AU을 접근하는 시간은 AU가 시작되는 곳을 찾아가는 seek time 보다, Disk의 전송속도에 지대한 영향을 받는다. Disk group에 대한 Rebalancing 작업은 이 AU 단위로 처리된다.

ASM Rebalancing

Disk가 추가/삭제 또는 크기조정이 일어날 때, Disk group은 모든 Storage에 대한 load를 균등히 하기 위해 rebalancing 작업을 수행한다. Rebalancing은 I/O load에 대한 통계정보에 근거하여 수행되지 않는다. 다만, Disk group에 포함되는 Disk의 크기를 기준으로 해당 작업을 수행하는 것이다. 이 작업은 Storage의 구성정보가 변경될 때 자동적으로 수행되며, DBA에 의해 수동으로 발생될 수 있다(사실 수동 작업은 필요 없다).

disk 추가삭제 / disk group 추가삭제 / asmcmd

※ 참고

– 프롬프트로 현재 접속 인스턴스 구분하기

SQL> set sqlprompt “_connect_identifier> ”

+ASM>

기본

ASM인스턴스로 접속하기

$ export ORACLE_SID=+ASM $ sqlplus / as sysdba

[1] ASM관리하기

1. ASM disk 내용 확인

+ASM>

set line 200

col disk_group for a10

col label for a10

col state for a10

select a.name as disk_group, d.name “Label”, a.state

from v$asm_disk d, v$asm_diskgroup a

where d.group_number=a.group_number

order by 2;

2. ASM 인스턴스에 현재 연결되어 있는 disk group 확인하기.

+ASM>

set line 200

col group_number for 99

col name for a10

col type for a10

col state for a10

select group_number, name, type, state from v$asm_diskgroup;

3. 각 디스크 그룹별 세부 상세 정보 보기

+ASM>

col group_number for 999

col disk_number for 999

col name for a10

col mount_status for a10

col path for a15

select group_number, disk_number, name, mount_status, path, total_mb from v$asm_disk;

4. 각 디스크 그룹 별 파일 내역

+ASM>

set line 200

set pagesize 50

col group_number for 99

col file_number for 999

col type for a15

select group_number, file_number, round((bytes/1024/1024),1) MB, redundancy, type from v$asm_file;

[2] 디스크 추가 & 삭제하기

1. 디스크 추가

◎ 작업순서

1) 리눅스 종료후 5G 디스크 추가

2) fdisk linux LVM으로 파티셔닝

3) pvcreate

4) vgcreate

5) lvcreate

6) oracleasm createdisk 수행

7) asm 명령으로 디스크 추가

1) 리눅스 종료후 5G 디스크 추가

2) fdisk linux LVM으로 파티셔닝

# fdisk -l

Disk /dev/sdd: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdd doesn’t contain a valid partition table

# fdisk /dev/sdd

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel. Changes will remain in memory only,

until you decide to write them. After that, of course, the previous

content won’t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-652, default 1): (엔터)

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-652, default 652): (엔터)

Using default value 652

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): 8e

Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

3) pvcreate

4) vgcreate

5) lvcreate

# pvcreate /dev/sdd1

Physical volume “/dev/sdd1” successfully created

# vgcreate asm2 /dev/sdd1

Volume group “asm2” successfully created

# lvcreate -L 2G -n asm3 asm2

Logical volume “asm3” created

# lvcreate -L 2.5G -n asm4 asm2

Logical volume “asm4” created

6) oracleasm createdisk 수행

# /etc/init.d/oracleasm createdisk asm2 /dev/asm2/asm3

Marking disk “asm2” as an ASM disk: [ OK ]

# /etc/init.d/oracleasm createdisk asm3 /dev/asm2/asm4

Marking disk “asm3” as an ASM disk: [ OK ]

7) asm 명령으로 디스크 추가

$ export ORACLE_SID=+ASM

$ sqlplus / as sysdba;

SQL> set sqlprompt “_connect_identifier> ”

① asm disk중 사용 안하는 것 조회

+ASM>

set line 200

col path for a15

select group_number, mount_status, path, total_mb

from v$asm_disk where mount_status=’CLOSED’;

GROUP_NUMBER MOUNT_STATUS PATH TOTAL_MB

———— ————– ————— ———-

0 CLOSED ORCL:ASM3 2560

0 CLOSED ORCL:ASM2 2048

② ORCL:ASM2 추가

+ASM> alter diskgroup data add disk ‘ORCL:ASM2’ rebalance power 5;

③ asm disk 상태 조회

+ASM>

select group_number, disk_number, name, mount_status, path, total_mb

from v$asm_disk;

GROUP_NUMBER DISK_NUMBER NAME MOUNT_STATUS PATH TOTAL_MB

———— ———– ———————————————————— ————– ————— ———-

0 1 CLOSED ORCL:ASM3 2560

1 0 ASM1 CACHED ORCL:ASM1 7161

2 0 FRA1 CACHED ORCL:FRA1 3074

1 1 ASM2 CACHED ORCL:ASM2 2048

④ ORCL:ASM3 추가하기

+ASM> alter diskgroup data add disk ‘ORCL:ASM3’ rebalance power 10;

⑤ asm disk 상태 조회

+ASM>

select group_number, disk_number, name, mount_status, path, total_mb

from v$asm_disk;

GROUP_NUMBER DISK_NUMBER NAME MOUNT_STATUS PATH TOTAL_MB

———— ———– ———————————————————— ————– ————— ———-

1 0 ASM1 CACHED ORCL:ASM1 7161

2 0 FRA1 CACHED ORCL:FRA1 3074

1 1 ASM2 CACHED ORCL:ASM2 2048

1 2 ASM3 CACHED ORCL:ASM3 2560

2. 디스크 삭제하기

1) 현재 상태 조회

+ASM>

set line 200

col group_name for a10

col disk_name for a10

select b.name as group_name, a.name as disk_name, a.header_status, a.state, a.free_mb

from v$asm_disk a, v$asm_diskgroup b

where a.group_number=b.group_number;

GROUP_NAME DISK_NAME HEADER_STATUS STATE FREE_MB

———- ———- ———————— —————- ———-

DATA ASM1 MEMBER NORMAL 6626

FRA FRA1 MEMBER NORMAL 2847

DATA ASM2 MEMBER NORMAL 1892

DATA ASM3 MEMBER NORMAL 2366

2) 디스크 삭제

+ASM> alter diskgroup data drop disk asm3;

3) 상태 확인하기

+ASM>

set line 200

col group_name for a10

col disk_name for a10

select b.name as group_name, a.name as disk_name, a.header_status, a.state, a.free_mb

from v$asm_disk a, v$asm_diskgroup b

where a.group_number=b.group_number;

GROUP_NAME DISK_NAME HEADER_STATUS STATE FREE_MB

———- ———- ———————— —————- ———-

DATA ASM1 MEMBER NORMAL 6477

FRA FRA1 MEMBER NORMAL 2847

DATA ASM2 MEMBER NORMAL 1849

3. Disk Group 추가 / 삭제

1) 디스크 그룹 내역 조회

+ASM> select group_number, name, state from v$asm_diskgroup;

GROUP_NUMBER NAME STATE

———— ———————————————————— ———————-

1 DATA MOUNTED

2 FRA MOUNTED

2) 디스크 그룹 추가 (이름 : new_asm)

+ASM>

col path for a10

select name, path, state

from v$asm_disk;

NAME PATH STATE

———————————————————— ———- —————-

ORCL:ASM3 NORMAL

ASM1 ORCL:ASM1 NORMAL

FRA1 ORCL:FRA1 NORMAL

ASM2 ORCL:ASM2 NORMAL

+ASM>

create diskgroup new_asm external redundancy

disk ‘ORCL:ASM3’;

Diskgroup created.

3) 디스크 그룹 내역 조회

+ASM> select group_number, name, state from v$asm_diskgroup;

GROUP_NUMBER NAME STATE

———— ———————————————————— ———————-

1 DATA MOUNTED

2 FRA MOUNTED

3 NEW_ASM MOUNTED

+ASM>

col path for a10

select name, path, state

from v$asm_disk;

NAME PATH STATE

———————————————————— ———- —————-

ASM1 ORCL:ASM1 NORMAL

FRA1 ORCL:FRA1 NORMAL

ASM2 ORCL:ASM2 NORMAL

ASM3 ORCL:ASM3 NORMAL

[3] asmcmd 로 asm 관리하기

Asmc

md : 유닉스의 명령어와 유사한 명령어들로 구성되어 있는 asm 관리 방법

$ export ORACLE_SID=+ASM

$ asmcmd

ASMCMD> help

asmcmd [-p] [command]

The environment variables ORACLE_HOME and ORACLE_SID determine the

instance to which the program connects, and ASMCMD establishes a

bequeath connection to it, in the same manner as a SQLPLUS / AS

SYSDBA. The user must be a member of the SYSDBA group.

Specifying the -p option allows the current directory to be displayed

in the command prompt, like so:

ASMCMD [+DATAFILE/ORCL/CONTROLFILE] >

[command] specifies one of the following commands, along with its

parameters.

Type “help [command]” to get help on a specific ASMCMD command.

commands:

——–

cd

du ← 사용 용량 확인

find ← 특정 파일 찾기

help

ls

lsct

lsdg ← disk group 정보 보여주기

mkalias

mkdir

pwd

rm

rmalias

※ 그외 11g 부터 지원하는 명령

cp ← OS와 ASM간 파일 복사 기능. ASM과 ASM간 파일 복사도 가능.

lsdsk ← ASM 디스크 헤더를 읽어서 요약 정보를 보여줌.

remap ← ASM Disk가 장애 났을 때 다른 디스크로 remapping 해주고 기존 장애 디스크를 unusable 로 변경하는 명령어.

ASMCMD> ls

DATA/

FRA/

NEW_ASM/

ASMCMD> cd /data

ASMCMD> ls

TESTDB/

ASMCMD> cd testdb

ASMCMD> ls

CONTROLFILE/

DATAFILE/

ONLINELOG/

PARAMETERFILE/

TEMPFILE/

spfiletestdb.ora

ASMCMD> cd controlfile

ASMCMD> pwd

+data/testdb/controlfile

ASMCMD> ls

Current.256.776365293

ASMCMD> lsdg ← disk group 정보 보여주기

State Type Rebal Unbal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name

MOUNTED EXTERN N N 512 4096 1048576 9209 8326 0 8326 0 DATA/

MOUNTED EXTERN N N 512 4096 1048576 3074 2847 0 2847 0 FRA/

MOUNTED EXTERN N N 512 4096 1048576 2560 2510 0 2510 0 NEW_ASM/

공유하기 글 요소

이것저것 해보기

[Oracle DBA]ASM Instance 관리

데이터베이스 Instance와 ASM사이의 상호작용

데이터베이스 Instance와 ASM사이의 상호작용

— 여기서 asmb는 DB instance와 ASM 사이의 상호작용 역할을 해준다.

위의 것들은 반드시 알아두자

리밸런스 작업을 수행하는 하나 이상의 Slave Process

검색 중에 모든 장치를 열고 리밸런스 작접 조정

리밸런스 작업 중 읽기 및 쓰기 블록에 사용

병렬작업에 사용

Meta Data 정보에 사용

디스크 그룹과 데이터베이스는 N : N의 관계이다

RAID는 논리적 볼륨 단위로 striping하지만, ASM은 file level에서 AU(Allocation Unit)단위로 (default : 1M) 할당하므로 Oracle DB I/O에 적합

I/O에 적합한 스트라이핑 진행

RAID와는 달리 자신의 사이즈에 스트라이핑하는 것이 아닌, 데이터 파일 단위의 스트라이핑을 진행한다.(단위는 Au: Allocation Unit)

그 안에 4개의 공간이 존재한다면(각각2G) 데이터파일(100M)을 생성할때, 25M 씩 여러 디스크에 걸쳐서 만들어진다 : Striping

mirroring을 하면 데이터를 다중화, 데이터를 복구하기 용이

striping을 하면 I/O 성능이 개선

소프트웨어적으로 RAID를 구성

SAME(Striping and Mirroring Everything) : 기능을 제공하는 stoage 관리 도구

스토리지관리도구와 스토리지의 통합

ASM 시스템 권한

SYSDBA와 SYSOPER의 차이는 DBA는 CREATE를 할수 있고, RECOVER을 할때 불완전 복구를 진행 할 수 있다.

비 파괴적인 ALTER DISKGROUP 명령어와 함께 ASM Instance를 시작 및 정지할 수 있는 제한된 권한

ASM에 저장된 데이터에 대한 액세스 권한 및 현재 릴리스의 SYSASM

모든 관리 권한

DB Instance와 ASM Instance의 관계 (startup, shutdown 순서)

DISK GROUP이 MOUNT하기 위해서는 ASM Instance를 기동해야한다.

======현재 orcl DB는 기동중이다.======

SQL> !ps -ef|grep orcl

oracle 5356 1 0 09:35 ? 00:00:01 ora_pmon_orcl

oracle 5358 1 1 09:35 ? 00:02:20 ora_vktm_orcl

oracle 5362 1 0 09:35 ? 00:00:01 ora_gen0_orcl

oracle 5364 1 0 09:35 ? 00:00:01 ora_diag_orcl

oracle 5366 1 0 09:35 ? 00:00:01 ora_dbrm_orcl

oracle 5368 1 0 09:35 ? 00:00:01 ora_psp0_orcl

oracle 5370 1 0 09:35 ? 00:00:03 ora_dia0_orcl

oracle 5372 1 0 09:35 ? 00:00:01 ora_mman_orcl

oracle 5374 1 0 09:35 ? 00:00:01 ora_dbw0_orcl

oracle 5376 1 0 09:35 ? 00:00:01 ora_lgwr_orcl

oracle 5378 1 0 09:35 ? 00:00:02 ora_ckpt_orcl

oracle 5380 1 0 09:35 ? 00:00:00 ora_smon_orcl

oracle 5382 1 0 09:35 ? 00:00:00 ora_reco_orcl

oracle 5384 1 0 09:35 ? 00:00:01 ora_rbal_orcl

oracle 5386 1 0 09:35 ? 00:00:00 ora_asmb_orcl

oracle 5388 1 0 09:35 ? 00:00:02 ora_mmon_orcl

oracle 5390 1 0 09:35 ? 00:00:04 ora_mmnl_orcl

oracle 5392 1 0 09:35 ? 00:00:02 oracle+ASM_asmb_orcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

oracle 5394 1 0 09:35 ? 00:00:00 ora_d000_orcl

oracle 5396 1 0 09:35 ? 00:00:00 ora_s000_orcl

oracle 5398 1 0 09:35 ? 00:00:02 ora_mark_orcl

oracle 5462 1 0 09:35 ? 00:00:00 ora_qmnc_orcl

oracle 5477 1 0 09:35 ? 00:00:01 ora_cjq0_orcl

oracle 5499 1 0 09:35 ? 00:00:00 ora_q000_orcl

oracle 5501 1 0 09:35 ? 00:00:00 ora_q001_orcl

oracle 5863 1 0 09:40 ? 00:00:01 ora_smco_orcl

oracle 8529 1 0 12:00 ? 00:00:00 ora_w000_orcl

oracle 8652 7602 0 12:09 pts/1 00:00:00 /bin/bash -c ps -ef|grep orcl

oracle 8654 8652 0 12:09 pts/1 00:00:00 grep orcl

SQL> select instance_name from v$instance;

INSTANCE_NAME

—————-

+ASM

SYS@ASM> shutdown immediate

ORA-15097: cannot SHUTDOWN ASM instance with connected client

— DB Instance가 켜져있기 때문에 불가

SYS@ASM> shutdown abort

ASM instance shutdown

SYS@ASM> !ps -ef|grep orcl

oracle 8748 7602 0 12:13 pts/1 00:00:00 /bin/bash -c ps -ef|grep orcl

oracle 8750 8748 0 12:13 pts/1 00:00:00 grep orcl

— DB Instance가 강제 종료된 것을 볼 수 있다.

[+ASM:~]$ . oraenv

ORACLE_SID = [+ASM] ? orcl

The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle

[orcl:~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Tue Mar 26 12:15:19 2019

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to an idle instance.

SYS@orcl> startup

ORA-01078: failure in processing system parameters

ORA-01565: error in identifying file ‘+DATA/orcl/spfileorcl.ora’

ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora

ORA-15077: could not locate ASM instance serving a required diskgroup

— ASM Instance가 꺼져있기 때문에 DB Instance가 실행되지 않는다.

SYS@ASM> !ps -ef|grep lgwr

oracle 5114 1 0 09:34 ? 00:00:02 ora_lgwr_orcl2

oracle 8869 1 0 12:16 ? 00:00:00 asm_lgwr_+ASM

oracle 9185 1 0 12:16 ? 00:00:00 ora_lgwr_orcl

oracle 10293 8807 0 13:36 pts/1 00:00:00 /bin/bash -c ps -ef|grep lgwr

oracle 10295 10293 0 13:36 pts/1 00:00:00 grep lgwr

SYS@orcl> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SYS@ASM> shutdown immediate

ASM diskgroups dismounted

ASM instance shutdown

SYS@orcl> startup

ORA-01078: failure in processing system parameters

ORA-01565: error in identifying file ‘+DATA/orcl/spfileorcl.ora’

ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora

ORA-15077: could not locate ASM instance serving a required diskgroup

— ASM이 꺼져있으므로 DB가 시작되지 않음

SYS@+ASM> startup

ASM instance started

Total System Global Area 284565504 bytes

Fixed Size 1336036 bytes

Variable Size 258063644 bytes

ASM Cache 25165824 bytes

ASM diskgroups mounted

SYS@orcl> startup

ORACLE instance started.

Total System Global Area 577511424 bytes

Fixed Size 1338000 bytes

Variable Size 390071664 bytes

Database Buffers 180355072 bytes

Redo Buffers 5746688 bytes

Database mounted.

Database opened.

SYS@+ASM> show parameter instance

NAME TYPE VALUE

———————————— ———– ——————————

cluster_database_instances integer 1

instance_name string +ASM

instance_number integer 1

instance_type string asm

SYS@+ASM> show parameter asm

NAME TYPE VALUE

———————————— ———– ——————————

asm_diskgroups string DATA, FRA

asm_diskstring string

asm_power_limit integer 1

asm_preferred_read_failure_groups string

SYS@orcl> show parameter instance

NAME TYPE VALUE

———————————— ———– ——————————

active_instance_count integer

cluster_database_instances integer 1

instance_groups string

instance_name string orcl

instance_number integer 0

instance_type string RDBMS

open_links_per_instance integer 4

parallel_instance_group string

parallel_server_instances integer 1

SYS@orcl> show parameter asm

NAME TYPE VALUE

———————————— ———– ——————————

asm_diskgroups string

asm_diskstring string

asm_power_limit integer 1

asm_preferred_read_failure_groups string

자동 스토리지 관리(ASM) 초보자 가이드

기초

ASM(Automatic Storage Management)은 Oracle 데이터베이스 파일에 대한 파일 시스템과 볼륨 관리자의 수직 통합을 제공합니다. ASM은 Oracle RAC(Real Application Clusters) 지원을 위해 단일 SMP(Symmetric Multiprocessing) 시스템 또는 클러스터의 여러 노드에 대한 관리를 제공할 수 있습니다.

Oracle ASM 클러스터 파일 시스템(ACFS)은 실행 파일, 보고서, BFILE, 비디오, 오디오, 텍스트, 이미지와 같은 Oracle Database 외부의 애플리케이션 파일을 지원하도록 ASM 기능을 확장하는 확장 가능한 다중 플랫폼 파일 시스템 및 스토리지 관리 기술입니다. , 기타 범용 응용 프로그램 파일 데이터.

ASM은 사용 가능한 모든 리소스에 입출력(I/O) 로드를 분산하여 수동 I/O 튜닝의 필요성을 제거하면서 성능을 최적화합니다. ASM은 데이터베이스 관리자(DBA)가 스토리지 할당을 조정하기 위해 데이터베이스를 종료하지 않고도 데이터베이스 크기를 늘릴 수 있도록 하여 동적 데이터베이스 환경을 관리하는 데 도움이 됩니다.

ASM은 내결함성을 제공하기 위해 중복 데이터 복사본을 유지하거나 공급업체에서 제공하는 스토리지 메커니즘을 기반으로 구축할 수 있습니다. 데이터 관리는 사람이 아닌 데이터 클래스에 대해 원하는 신뢰성 및 성능 특성을 선택하여 수행됩니다.

파일 단위로 상호 작용합니다. ASM 기능은 수동 저장을 자동화하여 DBA의 시간을 절약하고 관리자가 더 많은 데이터베이스를 효율적으로 관리할 수 있도록 합니다.

ASM 인스턴스

ASM 또는 데이터베이스가 시작될 때마다 시스템 전역 영역(SGA)이라는 공유 메모리 영역이 할당되고 Oracle ASM 또는 데이터베이스 백그라운드 프로세스가 시작됩니다. 백그라운드 프로세스와 SGA의 조합을 Oracle ASM 인스턴스 또는 Oracle Database 인스턴스라고 합니다. 인스턴스는 실행 중인 ASM 환경의 CPU 및 RAM 구성 요소를 나타냅니다. ASM 인스턴스의 SGA는 데이터베이스 인스턴스의 SGA와 메모리 할당 및 사용이 다릅니다. ASM 인스턴스의 SGA는 다음과 같이 네 가지 기본 영역으로 나뉩니다.

Shared Pool : 메타데이터 정보에 사용

: 메타데이터 정보에 사용 Large Pool : 병렬 연산에 사용

: 병렬 연산에 사용 ASM Cache : 재조정 작업 중 블록 읽기 및 쓰기에 사용

: 재조정 작업 중 블록 읽기 및 쓰기에 사용 Free Memory: 할당되지 않은 메모리 사용 가능

ASM 인스턴스에 권장되는 최소 메모리 양은 256MB입니다. 자동 메모리 관리는 ASM 인스턴스에서 기본적으로 활성화되며 개별 SGA 메모리 구성 요소의 크기를 동적으로 조정합니다. ASM 인스턴스에 필요한 메모리 양은 관리되는 디스크 공간의 양에 따라 다릅니다. b ASM은 ASM을 기준으로 합니다. ASM 인스턴스의 두 번째 부분은 백그라운드 프로세스입니다. ASM 인스턴스에는 많은 백그라운드 프로세스가 있을 수 있습니다. 모든 것이 항상 존재하는 것은 아닙니다.

필수 백그라운드 프로세스와 선택적 백그라운드 프로세스가 있습니다. 이러한 프로세스 중 일부에는 다음이 포함될 수 있습니다.

ARCn : 아카이버 프로세스

: 아카이버 프로세스 CKPT : 체크포인트 프로세스

: 체크포인트 프로세스 DBWn : 데이터베이스 작성기 프로세스

: 데이터베이스 작성기 프로세스 DIAG : 진단 프로세스

: 진단 프로세스 Jnnn : 작업 큐 프로세스

: 작업 큐 프로세스 LGWR : 로그 작성기 프로세스

: 로그 작성기 프로세스 PMON : 프로세스 모니터 프로세스

: 프로세스 모니터 프로세스 PSP0 : 프로세스 생성자 프로세스

: 프로세스 생성자 프로세스 QMNn : 큐 모니터가 처리하는

: 큐 모니터가 처리하는 RECO : 복구 프로세스

: 복구 프로세스 SMON : 시스템 모니터 프로세스

: 시스템 모니터 프로세스 VKTM : 시간 프로세스의 가상 키퍼

: 시간 프로세스의 가상 키퍼 MMAN : 메모리 매니저 프로세스

: 메모리 매니저 프로세스 LREG: 리스너 등록 절차

위의 프로세스 목록은 완전하지 않습니다. ASM 인스턴스의 경우 이러한 프로세스가 데이터베이스 인스턴스에서와 동일한 작업을 항상 수행하지는 않습니다. 예를 들어, 데이터베이스 인스턴스의 LGWR 프로세스는 SGA의 로그 버퍼 섹션에서 디스크의 온라인 다시 실행 로그로 변경 벡터를 복사하는 역할을 합니다. ASM 인스턴스는 SGA에 로그 버퍼를 포함하지 않으며 온라인 리두 로그를 사용하지도 않습니다. ASM 인스턴스의 LGWR 프로세스는 로깅 정보를 ASM 디스크 그룹에 복사합니다.

ASM이 클러스터된 경우 클러스터 관리와 관련된 추가 프로세스가 ASM 인스턴스에서 실행됩니다. 이러한 프로세스 중 일부는 다음과 같습니다.

LMON : 글로벌 enqueue 서비스 모니터 프로세스

: 글로벌 enqueue 서비스 모니터 프로세스 LMDn : 글로벌 enqueue 서비스 데몬

: 글로벌 enqueue 서비스 데몬 LMSn : 글로벌 캐시 서비스 프로세스

: 글로벌 캐시 서비스 프로세스 LCKn: 잠금 프로세스

ASM 구성 요소 – 기본 프로세스

ASM 인스턴스는 대부분의 기능에 전용 백그라운드 프로세스를 사용합니다. RBAL 프로세스는 Automatic Storage Management 인스턴스의 디스크 그룹에 대한 재조정 활동을 조정합니다. Automatic Storage Management 디스크에서 전역 열기를 수행합니다. ARBn 프로세스는 Automatic Storage Management 인스턴스에서 실제 재조정 데이터 범위 이동을 수행합니다. ARB0, ARB1 등으로 불리는 이들 중 많은 수가 한 번에 있을 수 있습니다. GMON 프로세스는 ASM 디스크 그룹에서 디스크 구성원을 유지합니다. MARK 프로세스는 오프라인 디스크에 대한 쓰기 누락 후 ASM 할당 단위를 오래된 것으로 표시합니다. Onnn 프로세스는 클라이언트/서버 연결의 서버 측을 나타냅니다. 이러한 프로세스는 인스턴스가 시작되는 순간 나타나고 그 후에 사라집니다. 메시지 교환을 위해 ASM 인스턴스에 대한 연결 풀을 형성하고 필요할 때만 나타납니다.

프로세스 설명 알발 검색의 일부로 모든 장치 파일을 열고 재조정 활동을 조정합니다. ARBn 재조정 활동을 수행하는 하나 이상의 슬레이브 프로세스 지몬 드롭 또는 오프라인과 같은 디스크 수준 활동을 관리하고 ASM 디스크 그룹 호환성을 향상시키는 일을 담당합니다. 표시 필요할 때 ASM 할당 단위를 오래된 것으로 표시 온 메시지 교환을 위해 ASM 인스턴스에 대한 연결 풀을 형성하는 하나 이상의 ASM 슬레이브 프로세스

데이터베이스 인스턴스와 ASM 간의 상호 작용

파일 생성 프로세스는 데이터베이스 인스턴스와 ASM 간에 발생하는 상호 작용을 보여줍니다. 파일 생성 프로세스는 다음과 같이 발생합니다.

데이터베이스에서 파일 생성을 요청합니다. 포그라운드 프로세스는 Continuing Operation Directory 항목을 생성하고 디스크 그룹 전체에 새 파일을 위한 공간을 할당합니다. ASMB 데이터베이스 프로세스는 새 파일에 대한 범위 맵을 수신합니다. 이제 파일이 열리고 데이터베이스 프로세스가 파일을 직접 초기화합니다. 초기화 후 데이터베이스 프로세스는 파일 생성이 커밋되도록 요청합니다. 이로 인해 ASM 포그라운드 프로세스가 COD 항목을 지우고 파일을 생성된 것으로 표시합니다. 파일 커밋을 승인하면 파일이 암시적으로 닫힙니다. 데이터베이스 인스턴스는 향후 I/O를 위해 파일을 다시 열어야 합니다.

이 예는 ASM 아키텍처에 대한 두 가지 중요한 점을 강조합니다.

– 데이터베이스 인스턴스와 ASM 인스턴스는 조정된 방식으로 함께 작동합니다. 데이터베이스 인스턴스는 ASM과 상호 작용하여 데이터베이스 파일을 ASM 범위에 매핑해야 합니다. 데이터베이스 인스턴스는 또한 ASM 범위를 잠그거나 이동할 수 있는 ASM 작업(예: 디스크 그룹 재조정)과 관련된 메시지의 지속적인 스트림을 수신합니다.

– 데이터베이스 I/O는 ASM 인스턴스를 통해 채널링되지 않습니다. 실제로 데이터베이스는 슬라이드의 4단계에서 설명한 것처럼 ASM 파일에 대해 직접 I/O 작업을 수행합니다.

Oracle ASM(오라클 자동 스토리지 관리) 도구

Oracle ASMCA(ASM Configuration Assistant)를 사용하여 Oracle ASM 인스턴스, 디스크 그룹, 볼륨 및 Oracle ACFS(Automatic Storage Management Cluster File System)를 설치 및 구성할 수 있습니다. Oracle ASM 명령줄 유틸리티(ASMCMD)는 다음을 관리하는 데 사용할 수 있는 명령줄 유틸리티입니다.

Oracle ASM

출처 :

「ASM」

정의

→ 오라클 파일을 통합적으로 관리하는 것.

어렵게 얘기하면 Volumn Manager와 File System이 오라클 데이터베이스 서버로 구성된 것.

이점

1 . 효율적인 디스크 자원 관리

→ 기존의 DB관리에서는 디스크 삭제,변경,추가시 테이블 스페이스 이동이나 테이블 재편성 작업이 많음

ASM에서는 추가시 디스크 그룹내의 디스크에 골고루 배분하고, 삭제시 남아 있는 디스크에 자동으로 옳긴다.

2 . 자원의 물리적 장애에 대한 관리 향상

→ Mirroring과 Striping

3 . 디스크 I/O의 효율적 분산

→ AU(Allocation Unit) 이라는 하나의 작은 단위로 데이터를 쪼개어 물리적으로 서로 다른 디스크에 번갈아 분산하

여 기록함으로써 디스크 Hot-Spot 현상을 방지.

ASM과 OS 파일시스템의 차이

1 . 데이터베이스 설치

순서 OS 파일시스템 ASM 1 필요한 디스크 자원의 용량산정 필요한 디스크 자원의 용량산정 2 폴륨메니저, 파일시스템 인스톨 및 설정 ASM 인스톨 3 I/O 분산을 위한 디스크 구성 설계 디스크 그룹 생성 4 Logical 볼륨 생성 데이터베이스 인스톨 5 파일시스템 생성 데이터베이스 생성 6 데이터베이스 인스톨 7 데이터베이스 생성

2 . 디스크 추가

순서 OS 파일시스템 ASM 1 디스크 추가 디스크 추가 2 볼룸매니저를 통한 볼륨그룹 생성 디스크 추가 SQL문 수행 3 파일시스템 생성 4 데이터를 추가된 공간으로 이동 5 데이터베이스 파일 리네임 6 I/O 튜닝

3 . 디스크 I/O 튜닝

순서 OS 파일시스템 ASM 1 디스크 I/O에 대한 일일 모니터링 N/A 2 Hot-Spot 발견 3 Hot-Spot 을 없애기 위한 계획 수립 4 계획된 공간으로 데이터 이동 5 데이터베이스 파일 리네임 6 Hot-Spot 현상이 없어졌는지 검증

구성요소

1 . 디스크 그룹

(1) Stripe 와 AU

→ 데이터를 기록할 때 AU를 설정하여 AU단위로 데이터를 쓰게 된다. 데이터를 쓸 때 서로다른 물리적 디스

크에 나누어 기록 함으로써 Stripe 기능을 지원한다.

→ AU 의 옵션

Coarse : 1 MB

Fine Grained : 128 KB

(2) Mirroring 과 Failure 그룹

→ Mirroring 을 설정하려고 하면 Failure Group을 설정하여 서로 다른 Failure 그룹 사이의 미러링을 구성

할 수 있다.

디스크 장애시 다른 컨트롤러에 미러링된 데이터를 읽을 수 있도록 설정 할 수 있다.

(3) Disk Group 내의 Rebalance

→ 일반적으로 새로운 디스크를 추가하게 되면 디스크 I/O 를 고려하여 데이터 파일과 테이블 스페이스를 재

분배 하는데 많은 시간을 할당 한다.

Rebalance는 디스크 I/O의 집중 현상을 감소 시켜준다.

Rebalance는 다음과 같은 상황에 발생한다.

1) 디스크 추가

2) 디스크 제거

3) 디스크 그룹 Mount, UMount, Check에서 Rebalance 이벤트 발생시

4) Alter Diskgroup 그룹명 Rebalance 속도(1~11까지)

2 . 디스크

(1) Logical Unit Number ( LUN )

(2) Network-Attached File

3 . ASM Instance

→ ASM 인스턴스는 디스크 그룹에 대한 정보를 수집하고 수집된 정보를 ASMB 프로세스를 통해 데이터베이스

인스턴스에 전달하는 역할

항상 존재하는 것이 아니라 DB 인스턴스가 요구 할 때만 존재함.

4 . ASM Process

(1) ASMB

→ ASM 인스턴스와 DB 인스턴스 사이에 정보를 교환하는 역할을 함

(2) RBAL

→ 디스크 그룹에 대한 Rebalance 를 감독 및 관리하는 역할을 함

(3) ARBn ( ARB1, ARB2, … )

→ 디스크 그룹에 대한 Rebalance 를 수행하는 역할을 함. RBAL의 관리하에 수행.

시작 및 종료

1 . ASM 인스턴스 시작

2 . Diskgroup Mount

3 . DB 인스턴스 시작

4 . DB 인스턴스 종료

5 . ASM 인스턴스 종료

→ Startup 옵션

옵션 설명 Force 이전 프로세스를 Abort로 Shutdown 하고 인스턴스 재시작 Mount, Open ASM 인스턴스 시작, 디스크 그룹 마운트 Nomount ASM 인스턴스 시작, 디스크 그룹 노마운트

→ Shutdown 옵션

옵션 설명 Normal DB와 상동 Immediate, Transactional Abort

생성

1 . dd 명령어를 이용해 Block Device 생성 ( root 계정 )

→ dd if = /dev/zero of = /u03/asm_disk/disk1 bs=1024k count=400;

dd if = /dev/zero of = /u03/asm_disk/disk2 bs=1024k count=400;

2 . losetup 명령어를 이용해 Block Device 를 독립된 Device 로 인식

→ losetup /dev/loop1 /u01/asm_disk/disk1;

losetup /dev/loop2 /u01/asm_disk/disk2;

3 . raw 명령어를 이용해 물리적 Device 와 Block Device 를 연결

→ raw /dev/raw/raw1 /dev/loop1;

bound to major 7, minor 1 (실행메세지)

raw /dev/raw/raw2 /dev/loop2;

bound to major 7, minor 1 (실행메세지)

4 . DBCA 를 이용해 ASM 디스크 그룹과 인스턴스 생성

ASM 파라미터

1 . Instance_Type = ASM

2 . ASM_Power_Limit = 0 ~ 11

→ Rebalancing 속도 옵션, 속도가 높을수록 디스크 I/O 많이 소비

3 . ASM_Diskstring

4 . ASM_Diskgroups

디스크 그룹 생성

1 . 디스크 그룹 옵션

(1) Nomal Redundancy

→ Mirroring : 2 | 3 | Unprotect

(2) High Redundancy

→ Mirroring : 3

(3) External Redundancy

→ Mirroring : Unprotect

2 . 디스크 그룹 생성

(1) Create Diskgroup 그룹명1 Normal Redundancy

Failure Group Fail그룹명1 Disk ‘경로/디스크명’, ‘경로/디스크명’, …

Failure Group Fail그룹명2 Disk ‘경로/디스크명’, ‘경로/디스크명’, … ;

→ 디스크 그룹 1개 > Failure 그룹 2개 > Fail 그룹당 디스크 2개로 생성

(2) Create Diskgroup 그룹명2 Normal Redundancy

Failure Group Fail그룹명3 Disk ‘경로/디스크명’, ‘경로/디스크명’, …

Failure Group Fail그룹명4 Disk ‘경로/디스크명’, ‘경로/디스크명’, … ;

→ 디스크 그룹 1개 > Failure 그룹 2개 > Fail 그룹당 디스크 2개로 생성

※ Redundancy? ※

만약의 경우를 위해 미러링 하는 정도를 의미

Disk Group에서 그중 하나 이상의 디스크가 장애날 경우

전체 Disk Group내의 데이터를 모두 손실할 수 있기 때문에 안정성을 위해 redundancy를 설정할 수 있다.

ASM Instance 생성시 디스크 그룹을 선택할 때 생성

Normal

– 2-way mirroring, 2배의 디스크가 필요 (실제 데이터가 저장되는 공간이 100G면, 100G 디스크 2개가 필요)

High

– 3-way mirroring, 3배의 디스크 필요

External

– ASM mirroring 기능 사용하지 않음, Hardware RAID 기능으로 디스크를 보호하고 있을 경우에만 사용하길 권장

ASM 관리와 모니터링

1 . 디스크 그룹 변경과 관리

(1) 디스크 추가

→ Alter Diskgroup 그룹명 Add Disk ‘경로/디스크명’ [Rebalance power n];

(2) 디스크 삭제

→ Alter Diskgroup 그룹명 Drop Disk ‘경로/디스크명’ [Rebalance power n];

(3) 디스크 삭제 중일때 취소 작업 (삭제 종료시 취소 불가)

→ Alter Diskgroup 그룹명 Undrop Disks;

(4) 디스크 그룹 Mount와 Unmount

→ Alter Diskgroup [All | 그룹명] [Mount | Dismount];

(5) 디스크 그룹 정합성 체크 (Mount 상태에 실행)

→ Alter Diskgroup 그룹명 Check All;

2 . 디렉토리 생성 및 관리

(1) 디렉토리 생성 ( ‘+’ 기호는 ASM 내부 디렉토리라는 의미로 사용 )

→ Alter Diskgroup 그룹명 Add Directory ‘+그룹명/디렉토리명’;

(2) 디렉토리 Rename

→ Alter Diskgroup 그룹명 Rename Directory ‘+그룹명/디렉토리명’ To ‘+그룹명/디렉토리명’;

(3) 디렉토리 삭제

→ Alter Diskgroup 그룹명 Drop Directory ‘+그룹명/디렉토리명’ [Force To ‘+그룹명/디렉토리명’];

3 . 파일 템플릿과 파일 생성

→ 지원 형식

File Type 지원여부 템플릿명 컨트롤 파일 Yes Controlfile 데이타 파일 Yes Datafile 리두로그 파일 Yes Onlinelog 아카이브로그 파일 Yes Archivelog 트레이스 파일 No Temporary 파일 Yes Tempfile Datafile Backup Pieces Yes Backupset Datafile incremental Backup Pieces Yes Backupset Archive log Backup Pieces Yes Backupset Datafile Copy Yes Datafile Persistent initialization Parameter 파일(SPFILE) Yes Parameterfile Disaster Recovery configurations Yes Dataguardconfig Flashback logs Yes Flashback Change Tracking 파일 Yes Changetracking Data Pump dumpset Yes Dumpset Automatically Generated Control File Backup Yes Autobackup

→ 기록 방식

Template Name Striping Normal High External Archivelog Coarse Mirror High Unprotected Tempfile Coarse Mirror High Unprotected Backupset Coarse Mirror High Unprotected Parameterfile Coarse Mirror High Unprotected Dataguardconfig Coarse Mirror High Unprotected Flashback Fine Mirror High Unprotected Changetracking Coarse Mirror High Unprotected Dumpset Coarse Mirror High Unprotected Xtransport Coarse Mirror High Unprotected Autobackup Coarse Mirror High Unprotected Datafile Coarse Mirror High Unprotected Controlfile Fine High High Unprotected Onlinelog Fine Mirror High Unprotected

→ Alter Diskgroup 그룹명 Add Template 템플릿명 Attributes [Mirror Fine]

변경시 위와같이 해주어야 함.

4 . Tablespace 생성

→ Create Tablespace TS명 ‘디렉토리(템플릿명)’;

5 . Redolog 생성

(1) Init 파라미터 설정

→ DB_Create_Online_Log_Dest1 = ‘+경로’

DB_Create_Online_Log_Dest2 = ‘+경로’

(2) 설정 후

→ Alter Database Add Logfile;

6 . ASM 모니터링

(1) ASMCMD (ASM Command Line Interface)

→ 이동 : cd +경로

→ 리스트 : ls -al

→ 용량 : du

(2) View

View 설명 V$ASM_Diskgroup 디스크 그룹 정보 V$ASM_Disk 디스크 정보 V$ASM_File ASM 파일 정보 V$ASM_Template ASM 의 모든 디스크 그룹에 설정된 템플릿 정보 V$ASM_Alias ASM 디스크 그룹의 Alias 정보 V$ASM_Operation ASM 인스턴스 상에서 실행되는 작업 현황 V$ASM_Client ASM 을 사용하는 DB 인스턴스 정보

참고

1 . Raw Device 를 생성하는 이유

→ 테이블 스페이스가 파일시스템에 데이터를 저장하는 것이 일반적이라면 일부 DBMS는 Raw Device로 불리는

OS Device로 구성하여 운영체제 파일이스템의 오버헤드를 없애고 더 빠른 성능을 제공한다.

모든 환경(OLTP, DW 등..)에서 Raw Device가 좋은 성능을 제공하는 것은 아니므로 File system별로 퍼보먼스

를 체크하여 가장 사용 환경에 알맞는 File System을 선택하는 것이 중요함.

2 . dd ( 파티션 전체를 백업하고 복구하기 위한 Tool )

→ dd if=/dev/zero of=asm_disk1 bs=1024k count=500

* zero를 이용해 asm_disk1을 생성하며 이 파일에는 1,024 KB의 용량으로 5000번의 I/O 카운트를 수행한다.

위 명령을 실행하면 zero(실제 존재하지만 아무 내용도 없는 것) 장치를 이용하여 500 MB 크기의 아무것도

없는 파일로 생성하게 된다.

3 . Loop Device

→ losetup /dev/loop1 asm_disk1

* Loop Device는 /dev/loop0 ~ loop7 까지 생성되어 있다. 위에서 생성한 asm_disk1을 Block 단위로 I/O

가 가능하게 해주기 위해서는 Loop Device에 매핑을 해주어야 한다.

4 . Raw Device 생성

→ Raw /dev/raw/raw1 /dev/loop0

* Loop0 Device를 Raw1 에 Mount 한다.

asm_disk1은 Linux의 File System을 벗어나 Raw Device로 독립적인 I/O가 가능하게 된다.

Mount가 된 후 Raw Device에 대한 소유권을 조정해 줘야 일반 유저가 사용가능 하다.

참조: https://hayleyfish.tistory.com/114 [DB네 생선가게]

반응형

RastaLion’s IT Blog

ASM이란?

ASM은 데이터베이스 구성 시 기본이 되는 디스크를 효율적으로 관리하기 위하여 오라클 10g에서 새로 선보인 데이터베이스 서비스입니다. ASM은 하나의 SMP 장비뿐만 아니라 클러스터를 구성하는 모든 노드들에 대해서도 지원이 가능합니다. ASM이 관리하는 모든 디스크에 대한 업무 분산 작업을 자동적으로 처리해 줌으로써 특정 디스크에 로드가 집중되는 핫 스팟(hot spot)현상을 최소할 수 있으며 이로 인해 성능을 극대화할 수 있습니다. 또한, 데이터가 디스크에 균등한 크기로 저장 관리되어 fragmentation 현상이 발생하지 않습니다다. 그리고 ASM이 관리하는 영역에서 새로운 디스크가 추가되거나 삭제될 때마다, 기존 데이터들에 대해 재구성 작업이 자동적으로 일어납니다. 또, ASM은 특정 데이터에 대한 복사본을 자기 자신의 디스크에 유지할 수 있기 때문에 소프트웨어 미러링 효과를 볼 수 있습니다.

RAC 환경에서의 ASM 인스턴스

RAC 데이터베이스처럼 ASM 인스턴스들도 자체적으로 클러스터링을 할 수 있습니다. 이는 이미 셋업이 되어 있는 DLM 체계를 사용해서 가능한 것입니다. 일반적으로 클러스터를 이루는 하나의 노드에는 하나의 ASM 인스턴스가 뜨도록 구성합니다. 그리고 RAC 구성처럼 ASM 인스턴스가 관리하는 디스크는 모든 노드에서 인식 가능하도록 구성해야 합니다. 데이터베이스 인스턴스는 오직 동일 노드에 있는 ASM 인스턴스와 상호 통신하게 됩니다. 만약 동일 노드에 서로 다른 데이터베이스 인스턴스가 존재할 경우, 그들은 그 노드에 있는 하나의 ASM 인스턴스를 공유하게 되는 것입니다.

특정 디스크 그룹은 서로 다른 데이터베이스 파일을 저장할 수 있습니다. 이처럼 RAC 환경이 아닌 상태에서 서로 다른 데이터베이스가 동일한 디스크 그룹에 접근하는 것이 가능합니다. 또한, 하나의 데이터베이스는 동일한 ASM 인스턴스에 의해 관리되는 여러 개의 디스크 그룹에 그 데이터베이스 파일을 저장할 수도 있습니다.

Scalability

ASM imposes the following limits:

63 disk groups in a storage system

10,000 ASM disks in a storage system

4 petabyte maximum storage for each ASM disk

40 exabyte maximum storage for each storage system

1 million files for each disk group

Maximum files sizes as shown in the following table:

Disk Group Type Maximum File Size External redundancy 35 TB Normal redundancy 5.8 TB High redundancy 3.9 TB

ASM을 설치하기 위한 최소 설정

ASM에 사용할 디스크가 필요합니다.

커널 버전에 맞는 ASMLib 파일이 필요합니다.

Initialization Parameters for ASM Instances

수동으로 ASM을 구성을 위해 init파일을 작성을 합니다. 최소 다음의 내용을 작성해야 합니다.

Name Description INSTANCE_TYPE Type은 반드시 ASM으로 구성해야 합니다. Note: 반드시 포함되어야 하는 최소한의 옵션입니다.모든 변수에서 기본이 되는 값입니다. ASM_POWER_LIMIT 디스크의 기본이 되는 power해당되는 값입니다. Default: 1, Range: 0 – 11 See Also: “Tuning Rebalance Operations” ASM_DISKSTRING ASM_DISKSTRING 디스크의 순서를 생각 할 수 있습니다. Diskstring을 아래와 같이 기재하면 자동으로 인식하게 됩니다. /dev/rdsk/* /dev/rdsk/*s3,/dev/rdsk/*s4 위의 내용을 다음과 같이 간단히 할 수도 있습니다.: /dev/rdsk/*s[34] 기본 값은 NULL이고 필수사항이 아닙니다. 기재하지 않으면 기본값으로 설정됩니다. See Also: “Improving Disk Discovery Time” ASM_DISKGROUPS ASM instance 시작 시에 자동으로 Mount할 디스크 그룹의 목록을 기재하는 항목입니다. 기본 값은 NULL입니다. 만일 설정값에 아무 값도 없다면 no disk 상태로 마운트됩니다. 설정 값이 static이 아닌 dynamic으로 되어 있기 때문에 spfile에 기록해서 자동으로 ASM에 추가할 수도 있습니다. Note: Issuing the ALTER DISKGROUP…ALL MOUNT or ALTER DISKGROUP…ALL DISMOUNTcommand does not affect the value of this parameter.

ASM의 장점들

디스크 I/O의 효과적인 분산 – 스토리지를 추가하면 이전 스토리지안에 있던 자료들이 자동으로 rebalance되어서 자료들이 분산됩니다. VLDB지원(Very Large DB)

ASM의 Disk Group

ASM에서는 디스크를 여러개 묶어서 디스크 그룹으로 관리하는데, 1개의 그룹에는 최소 2개의 디스크가 있어야 합니다.

데이터가 들어올 때 AU라는 단위로 나누어서 각 디스크그룹별로 분산해서 저장하게 되는데,

AU(Allocation Unit)는

COARSE grained 방식 : 1MB단위로 기록되고, 주로 data, archivelog 파일에 사용 FINE grained 방식 : 128KB단위로 기록되고, 주로 redo, control, flashback log 파일에 사용

의 두가지 옵션을 가집니다.

(11g ASM부터는 AU의 종류가 1/2/4/8/16/32/64 MB로 다양하게 지원되어, DB운영계획에 따라 적절히 지정하여 성능개선을 할 수 있습니다.)

Rebalance

Filesystem을 사용하게 되면 디스크그룹 내에 새 디스크가 추가되거나 제거되면 성능개선을 하기 위해서는 DBA가 직접 기존 디스크의 내용을 분산하거나, 이동시켜야 합니다.

ASM을 이용하게 되면 이러한 rebalance작업은 자동으로 ASM에서 수행하게 되고, DB부하에 따라 rebalance에 얼마나 많은 CPU%를 배당할지도 지정할 수 있습니다.

SQL> alter diskgroup testdb_dg1 add disk ‘/dev/sdf1’ rebalance power 11;

(1~11 : 1이 rebalance되는 속도가 가장느리고, 11이 가장 빠름. 11로 갈수록 rebalance하는데 더 많은 CPU부하를 일으킵니다.)

ASM에서의 Restrict 옵션

관리자가 disk group 유지보수를 하기 위해 restrict 옵션을 제공하고, 이 옵션으로 디스크그룹을 mount할 경우 일반사용자는 접속할 수 없게되어, 유지관리성능을 더 향상시킬 수 있습니다.

SQL> alter diskgroup data mount restrict;

유지보수종료 후 –> alter diskgroup data dismount; –> alter diskgroup data mount;

ASM Instance : 디스크그룹에 대한 정보를 수집해서 Database Instance에 제공, ASMB가 교두보역할. ORACLE_SID=+ASM 으로 해당 인스턴스에 접속해서 mount, shutdown 할 수 있음

RBAL process : 디스크추가 및 삭제 시 디스크그룹에 대한 Rebalance담당, ASM Instance의 요청이 있을 경우 디스크를 열고 닫는 프로세스

ARBn : RBAL의 명령을 받아 실질적으로 작업을 수행하는 process

ASM parameter

instacne_type: ASM (default: rdbms)

db_unique_name: +asm

asm_power+limit: 1(low)~11(high) 설정 가능. ASM 데이터 리밸런싱 속도 조정 레벨 값 (기본값 1)

asm_diskgroups: ASM 인스턴스 시작시 구동되는 디스크 그룹

asm_diskstring: ASM에 사용된 디스크가 포함된 물리적 경로

asm_preferred_read_failure_groups:I/O 실패가 발생한 그룹을 명시.

ASM SGA 및 주요 parameters

: ASM Instance 를 통해서 입 출력이 되기 때문에 관련 파일과 파라미터들이 있습니다.

주요파라미터

db_cache_size: ASM Instance 가 사용할 cache 크기 결정. 오라클권장값 64M

shared_pool: ASM Instance를 관리하는 용도로 사용. 오라클권장값 128M

Large_pool: Extent Maps 을 저장하는 용도. 오라클권장값 64M

※ 참고 – $ORACLE_HOME/dbs/init+ASM.ora

내용

*.asm_diskgroups=’DATA’,’FRA’ +ASM.asm_diskgroups=’DATA’,’FRA’,’NEW_ASM’#Manual Mount *.background_dump_dest=’/home/oracle/admin/+ASM/bdump’ → alert log file 저장 경로 지정 *.core_dump_dest=’/home/oracle/admin/+ASM/cdump’ → core dump 를 저장할 경로 지정 *.instance_type=’asm’ *.large_pool_size=12M *.remote_login_passwordfile=’SHARED’ *.user_dump_dest=’/home/oracle/admin/+ASM/udump’

▶ 위 파라미터 외 다른 파라미터를 잘못 지정 할 경우 ORA_15021 에러 발생 – ASM Instance 가 구동 되지 않습니다.

col “Parameter Name” for a40 col “Instance Value” for a20 select a.ksppinm “Parameter Name”, c.ksppstvl “Instance Value” from x$ksppi a, x$ksppcv b, x$ksppsv c where a.indx = b.indx and a.indx = c.indx and ksppinm like ‘%asm%’ order by a.ksppinm;

Parameter Name Instance Value —————————————- ——————– _asm_acd_chunks 1 _asm_admin_with_sysdba FALSE _asm_allow_appliance_dropdisk_noforce FALSE _asm_allow_lvm_resilvering TRUE _asm_allow_only_raw_disks TRUE _asm_allow_system_alias_rename FALSE _asm_appliance_config_file _asm_ausize 1048576 _asm_automatic_rezone TRUE _asm_avoid_pst_scans TRUE _asm_blksize 4096 _asm_check_for_misbehaving_cf_clients FALSE _asm_compatibility 10.1 _asm_dba_batch 500000 _asm_dba_spcchk_thld 20000 _asm_dba_threshold 0 _asm_dbmsdg_nohdrchk FALSE _asm_diag_dead_clients FALSE _asm_direct_con_expire_time 120 _asm_disable_amdu_dump FALSE _asm_disable_async_msgs FALSE _asm_disable_multiple_instance_check FALSE _asm_disable_profilediscovery FALSE _asm_disable_smr_creation FALSE _asm_disable_ufg_dump FALSE _asm_disk_repair_time 14400 _asm_emulate_nfs_disk FALSE _asm_emulmax 10000 _asm_emultimeout 0 _asm_evenread 2 _asm_evenread_alpha 0 _asm_evenread_alpha2 0 _asm_evenread_faststart 0 _asm_fail_random_rx FALSE _asm_fd_cln_idle_sess_twait 10000000 _asm_fd_cln_on_fg TRUE _asm_fob_tac_frequency 9 _asm_force_quiesce FALSE _asm_global_dump_level 267 _asm_hbeatiowait 15 _asm_hbeatwaitquantum 2 _asm_imbalance_tolerance 3 _asm_instlock_quota 0 _asm_iostat_latch_count 31 _asm_kfdpevent 0 _asm_kfioevent 0 _asm_kill_unresponsive_clients TRUE _asm_libraries ufs _asm_log_scale_rebalance FALSE _asm_lsod_bucket_size 67 _asm_max_cod_strides 5 _asm_max_redo_buffer_size 2097152 _asm_maxio 1048576 _asm_partner_target_disk_part 8 _asm_partner_target_fg_rel 4 _asm_primary_load 1 _asm_primary_load_cycles TRUE _asm_random_zone FALSE _asm_rebalance_plan_size 120 _asm_rebalance_space_errors 4 _asm_repairquantum 60 _asm_reserve_slaves TRUE _asm_root_directory ASM _asm_runtime_capability_volume_support FALSE _asm_secondary_load 10000 _asm_secondary_load_cycles FALSE _asm_serialize_volume_rebalance FALSE _asm_shadow_cycle 3 _asm_skip_rename_check FALSE _asm_skip_resize_check FALSE _asm_storagemaysplit FALSE _asm_stripesize 131072 _asm_stripewidth 8 _asm_sync_rebalance FALSE _asm_usd_batch 64 _asm_wait_time 18 _asmlib_test 0 _asmsid asm _ges_diagnostics_asm_dump_level 11 _lm_asm_enq_hashing TRUE asm_diskgroups DATA, ACFS asm_diskstring /dev/asm* asm_power_limit 1 asm_preferred_read_failure_groups

ASM datafile name 변경

ASM에서 Datafile 이름은 랜덤숫자가 붙은 형식으로 끝나는데, 이것을 유저친화적 형식으로 알아보기 쉽게 바꾼다면, alias를 사용해야 합니다.

아래는 데이터 파일을 바로 생성하는 것이 아닌 기존 파일을 이용한 alias 생성방법입니다.

alter diskgroup disk_group_1 add alias ‘+DISK_GROUP_1/oratst1/datafile/my_system_dbf’ for ‘+DISK_GROUP_1/oratst1/datafile/system.1122.764387443’;

ASM datafile Copy

$ rman target / Recovery Manager: Release 10.2.0.5.0 – Production on Tue Feb 28 17:50:37 2012 Copyright (c) 1982, 2007, Oracle. All rights reserved. connected to target database: TESTDB (DBID=2559693415) RMAN> copy datafile ‘+DATA/testdb/datafile/ts_new.266.776453331’ to ‘+FRA’; Starting backup at 28-FEB-12 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=143 devtype=DISK channel ORA_DISK_1: starting datafile copy input datafile fno=00005 name=+DATA/testdb/datafile/ts_new.266.776453331 output filename=+FRA/testdb/datafile/ts_new.260.776454711 tag=TAG20120228T175149 recid=1 stamp=776454711 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03 Finished backup at 28-FEB-12 RMAN> copy datafile ‘+DATA/testdb/datafile/ts_new.267.776453579’ to ‘+FRA’; Starting backup at 28-FEB-12 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy input datafile fno=00006 name=+DATA/testdb/datafile/ts_new.267.776453579 output filename=+FRA/testdb/datafile/ts_new.261.776454737 tag=TAG20120228T175217 recid=2 stamp=776454738 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 Finished backup at 28-FEB-12

※ 참고 – 주의!!!!! RMAN에서 복사해주면 경로만 바뀌는게아니라 파일이름도 함께 바뀝니다.

SQL> alter database rename file ‘+DATA/testdb/datafile/ts_new.266.776453331’ 2 to ‘+FRA/testdb/datafile/ts_new.266.776453331’; alter database rename file ‘+DATA/testdb/datafile/ts_new.266.776453331’ * ERROR at line 1: ← 그런파일 없다고 에러난다. ORA-01511: error in renaming log/data files ORA-01141: error renaming data file 5 – new file ‘+FRA/testdb/datafile/ts_new.266.776453331’ not found ORA-01110: data file 5: ‘+DATA/testdb/datafile/ts_new.266.776453331’ ORA-17503: ksfdopn:2 Failed to open file +FRA/testdb/datafile/ts_new.266.776453331 ORA-15173: entry ‘ts_new.266.776453331’ does not exist in directory ‘datafile’

▶ 위의 copy과정을 보면 +FRA로 경로가 이동된 파일의 파일 이름도 달라 졌음을 확인할 수 있습니다.

ASM에서 pfile 수정

os filesystem 에다가 만든 pfile 을 수정하고 다시 asm 저장공간에 spfile로 만들려면

SQL> create spfile=’+DATA’ from pfile; SQL> exit $ asmcmd asmcmd> ls parameterfile spfile.260.672234945 spfile.267.776334921 <-- 요걸로 alias 만듬 asmcmd> rmalias spfileasmdb.ora asmcmd> mkalias +DATA/TESTDB/PARAMETERFILE/spfile.267.776334921 spfiletestdb.ora

ASM 에서 디스크 추가 제거

$ export ORACLE_SID=+ASM1 $ sqlplus / as sysasm;

1. ASM Disk중 사용 안 하는 것 조회

+ASM1> set line 200 col path for a15 select group_number, mount_status, path, total_mb from v$asm_disk where mount_status=’CLOSED’; ex) GROUP_NUMBER MOUNT_STATUS PATH TOTAL_MB ———— ————– ————— ———- 0 CLOSED ASM1 102400 0 CLOSED ASM2 102400 0 CLOSED ASM3 102400

2. ASM Disk 추가

+ASM> alter diskgroup data add disk ‘ORCL:ASM1’ rebalance power 5;

3. ASM Disk 상태 조회

+ASM> select group_number, disk_number, name, mount_status, path, total_mb from v$asm_disk; GROUP_NUMBER DISK_NUMBER NAME MOUNT_STAT PATH TOTAL_MB ———— ———– ———- ———- ————— ———- 0 4 CLOSED /dev/raw/raw6 54 0 5 CLOSED /dev/raw/raw5 486 0 6 CLOSED /dev/raw/raw4 486 0 7 CLOSED /dev/raw/raw3 486 0 8 CLOSED /dev/raw/raw2 486 0 9 CLOSED /dev/raw/raw1 486 1 0 DATA_0000 CACHED /dev/raw/raw10 126849 1 2 DATA_0002 CACHED /dev/raw/raw8 126849 1 3 DATA_0003 CACHED /dev/raw/raw9 126849 1 1 DATA_0001 CACHED /dev/raw/raw7 126849 1 1 ASM1 CACHED /dev/asm/asm1 102400

4. ASM2,3 추가 (반복)

5. ASM 디스크 상태조회

ASM Disk Group에 디스크 추가

+ASM> alter diskgroup DATA add disk ‘ASM1’ rebalance power 10; +ASM> alter diskgroup DATA add disk ‘ASM2’ rebalance power 10; +ASM> alter diskgroup DATA add disk ‘ASM3’ rebalance power 10;

ASM 디스크 삭제 (구 스토리지의 디스크 삭제 후 rebalance)

+ASM> alter diskgroup data drop disk DATA_0000; +ASM> alter diskgroup data drop disk DATA_0001; +ASM> alter diskgroup data drop disk DATA_0002; +ASM> alter diskgroup data drop disk DATA_0003;

명령실행후 diskgroup altered. 메시지가 보여지나 rebalancing 작업이 내부적으로 진행중이며 다음 v$asm_operation view를 통해 ACTIVE한 상태인지 확인할 수 있습니다.

+ASM> select name,header_status,state,free_mb from v$asm_disk; NAME HEADER_STATUS STATE FREE_MB —————- ———————— ——————– ———— DATA_0000 MEMBER NORMAL 126849 DATA_0001 MEMBER NORMAL 126849 DATA_0002 MEMBER NORMAL 126849 DATA_0003 MEMBER DROPPING 126849 → DROP 진행중

내부적 rebalancing 작업이 완료되면 수행중인 OPERATION 이 없어지며 v$asm_disk view에DISK DATA_0003이 없어진 것을 확인할 수 있습니다.

키워드에 대한 정보 oracle asm 관리

다음은 Bing에서 oracle asm 관리 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 Oracle ASM 관리

  • oracle asm
  • ASM
  • external redundancy
  • normal redundancy
  • high redundancy
  • asm instance
  • ASM Mirrorring
  • asmcmd
  • asmca
  • Oracle ASM administration
  • Oracle 11gR2 ASM
  • oracle automatic storage management
  • oracle asm redundancy
  • how to configure ASM step by step
  • asm parameters
  • oracle rac
  • create diskgroup asm
  • oracle real application cluster
  • oracle rac asm

Oracle #ASM #관리


YouTube에서 oracle asm 관리 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 Oracle ASM 관리 | oracle asm 관리, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment