[ORACLE] ASM 관련 쿼리

2024. 6. 11. 10:12· [DB] ORACLE
목차
  1. OS에 ASM Disk 등록 및 스캔 방법
  2. ASM Disk Group 생성(asmca x, 수동 생성)
  3. ASM Disk Group 삭제(asmca x, 수동 삭제)
  4. ASM Disk Group에 Disk 추가
  5. ASM Disk Group에서 Disk 삭제
  6. ASM Diskgroup에 data file 추가
반응형

ASM 관련 쿼리

ASM 접속 설정

# su - oracle
$ ps -ef | grep smon

$ export ORACLE_SID=+ASM
$ export ORACLE_HOME=$GRID_HOME
$ sqlplus / as sysasm

OS에 ASM Disk 등록 및 스캔 방법

Disk 포맷 방법

# fdisk -l
...
Disk /dev/sdh: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

-- n p 1 (엔터) (엔터) w
# fdisk /dev/sdh
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x441e4240.
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)
 
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
 
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, +cylinders or +size (1-652, default 652): (엔터)
Using default value 652
 
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.

ASM Disk 확인(OS)

# /etc/init.d/oracleasm listdisks

새로 추가한 Disk -> ASM Disk로 등록 및 스캔(OS)

# /etc/init.d/oracleasm createdisk <ASM에서 사용할 디스크 이름> /dev/sdh1

# /etc/init.d/oracleasm scandisks

새로 추가한 Disk 권한 부여(OS)
(/dev/oracleasm/ 경로 밑에 Disk 파일이 생성됩니다)

# chown -R oracle:oinstall /dev/oracleasm/

ASM Disk 상세 정보 보기(DB)

  • OS에서 scan된 모든 ASM Disk를 보여줍니다.
  • mount_state가 CLOSED 인 새로 추가된 Disk를 확인합니다.
col path for a30
col name for a14

select group_number, disk_number, name, mount_status, path, total_mb, free_mb
from v$asm_disk
order by 1,3;

ASM Disk Group 생성(asmca x, 수동 생성)

새로운 Disk Group을 생성하기 위해서는 OS에서 ASM에 등록 및 스캔된 Disk가 필요합니다.

ASM Disk Group 생성

CREATE DISKGROUP <디스크그룹 이름> EXTERNAL REDUNDANCY DISK '<v$asm_disk 뷰의 path 컬럼값>';

ASM 인스턴스에 현재 연결되어 있는 Disk Group 확인

  • 새로 추가된 Disk Group의 STATE가 MOUNTED 인지 확인합니다.
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;

ASM Disk 상세 정보 보기(DB)

  • OS에서 scan된 모든 ASM Disk를 보여줍니다.
  • 새로 추가된 Disk의 mount_state가 CACHED 인지 확인합니다.
col path for a30
col name for a14

select group_number, disk_number, name, mount_status, path, total_mb, free_mb
from v$asm_disk
order by 1,3;

ASM Disk Group 삭제(asmca x, 수동 삭제)

DROP DISKGROUP <디스크그룹 이름> INCLUDING CONTENTS;

ASM Disk Group에 Disk 추가

ASM 인스턴스에 현재 연결되어 있는 Disk Group 확인

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;

GROUP_NUMBER NAME	TYPE	   STATE
------------ ---------- ---------- ----------
	   1 CRS	NORMAL	   MOUNTED
	   2 DATA	EXTERN	   MOUNTED
	   3 FRA	EXTERN	   MOUNTED

ASM Disk 내용(DB)

SET LINE 200
COL DISK_GROUP FOR A10
COL LABEL FOR A10
COL STATE FOR A10
col path for a30
col name for a14

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;

DISK_GROUP LABEL      STATE
---------- ---------- ----------
CRS	   CRS_0000   MOUNTED
CRS	   CRS_0001   MOUNTED
CRS	   CRS_0002   MOUNTED
DATA	   DATA_0000  MOUNTED
FRA	   FRA_0000   MOUNTED

ASM Disk 상세 정보 보기(DB)
(OS에서 scan된 모든 ASM Disk를 보여줌)

col path for a30
col name for a14

select group_number, disk_number, name, mount_status, path, total_mb, free_mb
from v$asm_disk
order by 1,3;

GROUP_NUMBER DISK_NUMBER NAME		MOUNT_S PATH				 TOTAL_MB    FREE_MB
------------ ----------- -------------- ------- ------------------------------ ---------- ----------
	   1	       0 CRS_0000	CACHED	/dev/oracleasm/disks/CRS2	     1020	 904
	   1	       1 CRS_0001	CACHED	/dev/oracleasm/disks/CRS3	     1020	 904
	   1	       2 CRS_0002	CACHED	/dev/oracleasm/disks/CRS1	     1020	 908
	   2	       0 DATA_0000	CACHED	/dev/oracleasm/disks/DATA	    51196      45296
	   3	       0 FRA_0000	CACHED	/dev/oracleasm/disks/FRA	    20476      19740

ASM 기존 Disk Group에 새 Disk 추가

rebalance power 5의 의미는 디스크가 새로 생성될 시 리밸런싱의 속도를 정함. 0~1024 사이의 값을 가질 수 있으며, 0이면 rebalance를 비활성화하고 1024까지 갈 수록 리밸런스 속도가 빨라지지만 그만큼 I/O 오버헤드와 더 많은 프로세스가 작업을 하게되어 DB 서버의 성능 이슈가 발생할 수 있음.

ALTER DISKGROUP <디스크그룹 이름> ADD DISK '<v$asm_disk 뷰의 path 컬럼값>' REBALANCE POWER 5;

ASM rebalance power 값 확인

select * from v$asm_operation;

ASM Disk Group에서 Disk 삭제

ALTER DISKGROUP <디스크그룹 이름> DROP DISK '<v$asm_disk 뷰의 path 컬럼값>';

ASM Diskgroup에 data file 추가

ASM을 사용할 땐 data file 추가 시 생성 경로는 db_create_file_dest에 명시된 경로에 생성됩니다.
(경로는 +<data file 디스크 그룹 이름>입니다. 디스크 그룹 이름과 파라미터 값이 다를 경우 에러가 발생할 수 있습니다.)

show parameter db_create_file_dest

db_create_file_dest 파라미터 값 변경(재기동 불필요)

ALTER SYSTEM SET db_create_file_dest='+DATA';
예를 들어, `+DATA`이라면 해당 경로 아래에 ASM이 Data file을 자체적으로 관리합니다.

data file을 조회해보면 아래와 같이 `+DATA/....../<테이블스페이스이름>.<파일넘버>.<숫자>`로 생성되어 있는 것을 볼 수 있습니다.

```sql
select tablespace_name, file_name from dba_data_files;

Tablespace 생성

CREATE TABLESPACE <테이블스페이스 이름> DATAFILE SIZE 10M;

data file 추가

ALTER TABLESPACE <테이블스페이스 이름> ADD DATAFILE SIZE 10M;

참고

    • https://positivemh.tistory.com/733
    • https://positivemh.tistory.com/355
    • https://hyunki1019.tistory.com/27

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'[DB] ORACLE' 카테고리의 다른 글

[ORACLE] REORG, HWM, SHRINK, MOVE  (0) 2025.02.24
[ORACLE] 오라클 시스템 분석을 위한 Statspack 설치 및 사용  (1) 2024.11.19
[ORACLE] UNDO Tablespace Full 모니터링 및 조치  (1) 2024.01.08
[ORACLE] Oracle Database Backup Basic - 백업 개념2  (3) 2023.11.08
[ORACLE] Oracle Database Backup Basic - 백업 개념  (0) 2023.11.08
  1. OS에 ASM Disk 등록 및 스캔 방법
  2. ASM Disk Group 생성(asmca x, 수동 생성)
  3. ASM Disk Group 삭제(asmca x, 수동 삭제)
  4. ASM Disk Group에 Disk 추가
  5. ASM Disk Group에서 Disk 삭제
  6. ASM Diskgroup에 data file 추가
'[DB] ORACLE' 카테고리의 다른 글
  • [ORACLE] REORG, HWM, SHRINK, MOVE
  • [ORACLE] 오라클 시스템 분석을 위한 Statspack 설치 및 사용
  • [ORACLE] UNDO Tablespace Full 모니터링 및 조치
  • [ORACLE] Oracle Database Backup Basic - 백업 개념2
mewoni
mewoni
mewoni
Mewoni's DB World
mewoni
  • 전체 글 보기
    • DBA
    • [DB] ORACLE
    • [DB] POSTGRESQL
    • [DB] SQL SERVER
    • [DB] SAP HANA DB
    • [SERVER]
    • [SAP]
    • [E] TOOLS
    • [E] MONITORING
    • [E] IT 이모저모
    • [STUDY] DAP
    • [STUDY] SQLP
    • [STUDY] QUIZ
    • [STUDY] 대용량데이터베이스솔루션
    • [STUDY] DB모델링 설계 및 구축 실무과정

블로그 메뉴

  • [LINK] Coding Factory
  • [LINK] My Jamong
  • [LINK] iheedol
  • [LINK] saponmimi
  • [LINK] Data Science Lab
  • [비공개] 글쓰기
  • [비공개] 관리

인기 글

전체
오늘
어제
hELLO · Designed By 정상우.v4.2.2
mewoni
[ORACLE] ASM 관련 쿼리
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.