일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 오라클아키텍쳐
- linux
- 데이터베이스
- Opatch
- 사일런트모드
- 19c
- 데이터가드
- goldengate
- ActiveDataGuard
- Database
- 디비투
- oracle recovery
- OracleGoldenGate
- 오라클설치
- 오지지
- 오라클
- SSH
- 오라클구조
- SILENTMODE
- oracle installation
- Oracle
- ORACLE19C
- diskgroup
- 티베로
- adg
- DataGuard
- oracle goldengate
- Oracle 19c
- Installation
- ogg
- Today
- Total
DoubleDBDeep
[ORACLE] ASM administration 본문
ASM (Automatic Storage Management)
https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/index.html
Administrator's Guide
docs.oracle.com
ASM이란?
오라클이 권장하는 스토리지 관리 솔루션으로, 기존에 사용하던 File System이나 Raw Devices 대신 사용되는 관리체제다.
RAC 환경에서는 ASM 사용이 필수임 !
> ASM은 Grid Infrastructure home에 설치된다.
> ASM도 Database처럼 instance가 구축되는데, 각 노드마다 개별적 인스턴스를 갖는다.
ASM DISKGROUP
ASM이 유닛으로 관리하는 disk들의 모음 (disk + disk + disk + ... = diskgroup)
디스크 그룹 내에 저장된 파일이 고르게 분산되어 저장되어 디스크간 균일한 성능을 제공한다.
디스크 그룹에 디스크를 추가 및 제거할 수 있다.
>> 추가 및 제거 시 ASM이 자동으로 파일 컨텐츠를 재분배하므로 다운타임이 발생하지 않음
디스크 그룹에는 해당 공간 관리에 필요한 메타데이터, 디스크, 파일 및 할당단위가 포함됨
ORACLE ASM 기능이 확장된 형태들
Oracle ADVM (Oracle ASM Dynamic Volume Manager)
: LVM과 유사하다고 볼 수 있음 (여러개의 디스크를 그룹으로 만들어 논리적 볼륨으로 명명하여 마운트해 사용하는 것)
11gR2 부터 asm이 디스크그룹내에 디스크를 추가하여 사용하는 방식으로 변경되었음
Oracle ACFS (Oracle Automatic Storage Management Cluster File System)
: Database file이 아닌 파일에 적합한 저장방식이며, 이 기능이 추가됨으로서 database-file, non-database-file을 모두 지원하는 스토리지 솔루션이 됨
대용량(exabyte)파일까지 확장, 고성능 제공, NFS나 CIFS같은 원격 클라이언트에게도 제공되는 등 고가용성을 제공함
ASM Diskgroup Mirroring
오라클 Grid 설치 시 ASM을 구성할 때 crs와 관련된 diskgroup을 구성하는 단계에서 Normal, High, External 을 선택하는 과정을 많이들 봤을 것이다 !
이 선택은 미러링에 대한 정도를 선택하는 것이다.
* Mirroring : 여러 디스크에 데이터 복사본을 저장하여 무결성을 보호하는 것
- Normal : 2 way mirroring (2개의 데이터 존재)
- High : 3 way mirroring (3개의 데이터 존재)
- External : Oracle ASM Mirroring을 사용하지 않고 하드웨어 RAID를 구성하는 경우와 같이 외부 이중화를 사용하는 경우 / Failure Group 사용되지 않음
ASM Files
ASM Disk group에 저장되는 파일들 // ASM file은 이름이 자동으로 생성되며 (+) 기호와 Disk그룹 이름으로 시작됨
Control files
Data files, temporary data files, and data file copies
SPFILEs
Online redo logs, archive logs, and Flashback logs
RMAN backups
Disaster recovery configurations
Change tracking bitmaps
Data Pump dumpsets
ASM 관련 초기화 파라미터
ASM_DISKGROUPS : ASM 인스턴스 시작 시 마운트되어야 하는 디스크 그룹 목록
SQL> show parameter ASM_DISKGROUPS
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups string DATA, FRA
ASM_DISKSTRING : 해당 파라미터로 등록된 디렉토리 안에 있는 디스크만 사용해 검색
ASM_POWER_LIMIT : ASM 인스턴스에서 리밸런싱을 위한 최대 POWER 설정으로 1(낮음)~11(높음) 설정 가능
ASM_PREFERRED_READ_FAILURE_GROUPS : I/O 장애 시 사용할 failure 그룹 지정
INSTANCE_TYPE : SYSASM 으로 접속 시 값 = ASM / ASM이 아닐 시 rdbms
등등.
ASM 관리
1. 접속
- grid 환경 설정
# grid 계정 or grid env (profile)로 접속
[+ASM1|oracle:/home/oracle]> env | grep ORACLE
ORACLE_SID=+ASM1
ORACLE_BASE=/u01/app/oracle
PS1=[$ORACLE_SID|\u:$PWD]>
ORACLE_HOME=/u01/app/19c/grid
- sqlplus를 사용한 관리 접속
[+ASM1|oracle:/home/oracle]> sqlplus / as sysasm
- asmcmd를 사용한 관리 접속
[+ASM1|oracle:/home/oracle]> asmcmd
ASMCMD>
- ASM 관련 VIEW
V$ASM_DISKGROUP | DISKGROUP 정보 |
V$ASM_DISK | DISK 정보 |
V$ASM_FILE | DISKGROUP의 각 파일에 대한 정보 |
V$ASM_TEMPLATE | DISKGROUP에 설정된 템플릿 정보 |
V$ASM_ALIAS | DISKGROUP의 별칭 정보 |
V$ASM_CLIENT | ASM 사용중인 모든 인스턴스들 정보 |
2. ASM 디스크 관련 정보 확인
- 디스크 그룹 확인
SELECT GROUP_NUMBER, NAME, STATE, TYPE, ROUND(TOTAL_MB/1024,2) TOTAL_GB, ROUND(FREE_MB/1024,2) FREE_GB
FROM V$ASM_DISKGROUP;
- 디스크 확인
SELECT GROUP_NUMBER, DISK_NUMBER, NAME, MOUNT_STATUS, PATH, ROUND(TOTAL_MB/1024,2) TOTAL_GB
FROM V$ASM_DISK;
- 디스크별 디스크 그룹 정보 확인
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 파일 별 디스크 그룹 정보 확인
SELECT B.NAME, A.FILE_NUMBER, ROUND((A.BYTES/1024/1024),1) MB, A.REDUNDANCY, A.TYPE
FROM V$ASM_FILE A, V$ASM_DISKGROUP B
WHERE 1=1
AND A.GROUP_NUMBER = B.GROUP_NUMBER;
3. 디스크 그룹 및 디스크 관리
grid 계정 또는 asm 관리 profile 환경으로 수행
Diskgroup 추가를 위한 Test disk를 linux 종료 후 VM에서 추가 후 파티셔닝까지 진행함
관련 글 : https://devcami.tistory.com/37
파티셔닝한 /dev/sdh1 disk를 asm에 create 해줘야 함
[rac1|root:/root]> chown oracle:dba /dev/sdh1
[rac1|root:/root]> ls -al /dev/sd*
~~
brw-rw----. 1 oracle dba 8, 113 Mar 22 14:26 /dev/sdh1
[rac1|root:/root]> oracleasm createdisk TESTDISK /dev/sdh1
Writing disk header: done
Instantiating disk: done
# 생성 확인
[rac1|root:/root]> oracleasm listdisks
CRS1
CRS2
CRS3
CRS4
DATA
FRA
TESTDISK
# 2번 노드에서 추가한 asm disk 스캔
[rac2|root:/root]> oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "TESTDISK"
- 디스크 그룹 추가
[+ASM1|oracle:/home/oracle]> sqlplus / as sysasm
-- 사용중이지 않은 디스크 조회
SELECT GROUP_NUMBER, DISK_NUMBER, NAME, MOUNT_STATUS, PATH, TOTAL_MB
FROM V$ASM_DISK
WHERE 1=1
AND MOUNT_STATUS = 'CLOSED'
AND PATH LIKE '%ORCL%';
SQL> CREATE DISKGROUP TESTDISKGROUP EXTERNAL REDUNDANCY DISK 'ORCL:TESTDISK' NAME TESTDISK;
Diskgroup created.
- 디스크 그룹 마운트 ( 각 노드에서 모두 진행 )
SQL> ALTER DISKGROUP TESTDISKGROUP MOUNT;
Diskgroup altered.
## 마운트해제 : ALTER DISKGROUP TESTDISKGROUP DISMOUNT;
## 확인
SQL> select inst_id,group_number,name,state from gv$asm_diskgroup;
INST_ID GROUP_NUMBER NAME STATE
---------- ------------ ------------------------------ -----------
2 1 CRS MOUNTED
2 2 DATA MOUNTED
2 3 FRA MOUNTED
2 4 TESTDISKGROUP MOUNTED
1 1 CRS MOUNTED
1 2 DATA MOUNTED
1 3 FRA MOUNTED
1 4 TESTDISKGROUP MOUNTED
- 디스크 그룹 삭제
>>> 해당 디스크 그룹에 데이터파일이 있을 경우 삭제되지 않으므로 수동으로 지운 후 DROP 혹은 INCLUDING CONTENTS 옵션을 사용한다.
ALTER DISKGROUP TESTDISKGROUP DISMOUNT ;
DROP DISKGROUP TESTDISKGROUP INCLUDING CONTENTS ;
## 조회
SQL> select group_number, name, state from v$asm_diskgroup;
- 디스크그룹에 디스크 추가
SQL> ALTER DISKGROUP TESTDISKGROUP ADD DISK 'ORCL:TESTDISK2' REBALANCE POWER 5;
Diskgroup altered.
## REBALANCE POWER 1 ~ 10 설정 가능
## 조회
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 ;
- 디스크그룹에서 디스크 삭제
SQL> ALTER DISKGROUP TESTDISKGROUP DROP DISK TESTDISK2 ;
Diskgroup altered.
## 조회
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 ;
'ORACLE > Administration' 카테고리의 다른 글
[ORACLE] 19.3 -> 19.17 Grid & Oracle Database Patch | 오라클 19.17 수동 및 자동 패치 (0) | 2023.04.26 |
---|---|
[ORACLE] 18c -> 19c RAC AutoUpgrade.jar 를 사용한 업그레이드 (0) | 2023.04.19 |
[ORACLE] 19c RAC 환경 listener.ora 리스너 수정 및 오렌지 연결 (0) | 2023.03.22 |
[ORACLE] 12c -> 19c RAC GUI (DBUA) 사용한 Upgrade (0) | 2023.03.21 |
ORACLE 12c RAC 환경 ASMlib DISK GROUP에 DISK 추가하기 (Virtual Box, sqlplus 환경) (0) | 2023.03.20 |