오라클 백업 및 복구(ASM에서의 복구)
1. ASM(Automatic Storage Management)의 개념
ASM은 데이터베이스 커널에 내장된 파일시스템과 볼륨 관리자로 전통적인 방식의 Raw device 방식과 File system 방식의 장점을 취합한 것이다. ASM은 File system 방식의 관리의 용이함과 Raw Device의 빠른속도를 보장한다.
Automatic Storage Management는 데이터베이스 커널에 내장된 파일시스템과 볼륨 관리자로, 수천개의 디스크 드라이브를 24X7의 가용성을 보장하면서 운영할 수 있도록 한다. 이것은, Oracle Real Application Clusters (RAC) 클러스터내의 여러 노드를 위한 관리 방안을 제시 할 뿐 아니라 단일 SMP 장비로 구성된 환경에서도 사용 가능하다. 모든 가용 디스크 드라이브에 대해 병렬 방식으로 load balancing을 자동으로 제공하며 hot spot이 발생하는 것을 예방하고, 성능을 최대화 시킨다. 특히 데이터 사용 량이 급격히 변화는 환경에서도 효과적인 관리를 해 준다. 조각 발생을 방지하여, 공간 확보를 위해 데이터를 재 배치할 필요가 없어 진다. 데이터는 모든 디스크에 균형있게 striping 된다. 스토리지 용량의 순차적인 증설이나, 축소가 발생할 경우, 자동으로 온라인 디스크 공간의 재구성 작업도 수행한다. 출처 : oracle.com2. ASM의 구조 가. ASM Instance : 디스크 그룹에 대한 정보를 수집해서 Database Instance에게 전달해준다. 나. ASMB process : ASM Instance와 Database Instance 사이에서 정보를 중개한다. 다. RBAL process : 디스크의 추가 밋 제거시 디스크 그룹의 Rebalance 담당 ASM Instance 요청 시 디스크를 열고 닫음 라. ARBn process : RBAL Process의 요청에따라 실질적인 작업을 수행하는 프로세서 3. ASM 모니터링 및 관리 가. ASM 디스크 내용확인 $ export ORACLE_SID=+ASM $ sqlplus / as sysdba
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 -------------------- -------------------- ---------------------- DATA ASM1 MOUNTED FRA FRA1 MOUNTED나. 각 디스크 그룹별 세부내용 확인
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 7680 2 0 FRA1 CACHED ORCL:FRA1 2460다. 각 디스크 그룹별 파일 내역
select group_number, file_number, round(bytes/1024/1024) mb, redundancy, type from v$asm_file; GROUP_NUMBER FILE_NUMBER MB REDUNDANCY TYPE ------------ ----------- ---------- ------------ --------------- 1 256 7 UNPROT CONTROLFILE 1 257 50 UNPROT ONLINELOG 1 258 50 UNPROT ONLINELOG 1 259 50 UNPROT ONLINELOG 1 260 300 UNPROT DATAFILE 1 261 200 UNPROT DATAFILE 1 262 120 UNPROT DATAFILE 1 263 20 UNPROT TEMPFILE 1 264 5 UNPROT DATAFILE 1 265 0 UNPROT PARAMETERFILE 2 256 7 UNPROT CONTROLFILE 2 257 50 UNPROT ONLINELOG 2 258 50 UNPROT ONLINELOG 2 259 50 UNPROT ONLINELOG 14 rows selected.라. 디스크 추가 <과정요약>
서버에 디스크 장착 -> pvcreate -> vgcreate -> lvcreate -> oracleasm createdisk 수행
-> ASM SQL 명령문 수행
# fdisk /dev/sdb
n -> p -> 1 -> 엔터 -> 엔터 -> t -> 8e -> w
# pvcreate /dev/sdb1
# vgcreate asm2 /dev/sdb1
# lvcreate -L 19G -n asm3 asm2
# /etc/init.d/oracleasm createdisk asm2 /dev/asm2/asm3
# su – oracle
$ export ORACLE_SID=+ASM
$ sqlplus / as sysdba
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:ASM2 19456 -- 디스크 추가 alter diskgroup data add disk 'ORCL:ASM2' rebalance power 5; select group_number, mount_status, path, total_mb from v$asm_disk; GROUP_NUMBER MOUNT_STATUS PATH TOTAL_MB ------------ -------------- --------------- ---------- 1 CACHED ORCL:ASM1 7680 2 CACHED ORCL:FRA1 2460 1 CACHED ORCL:ASM2 19456마. 디스크 삭제
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_STA STATE FREE_MB --------------- --------------- ---------- ---------- ---------- DATA ASM1 MEMBER NORMAL 7429 FRA FRA1 MEMBER NORMAL 2233 DATA ASM2 MEMBER NORMAL 18824 -- 디스크 삭제(asm2) alter diskgroup data drop disk asm2; 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_STA STATE FREE_MB --------------- --------------- ---------- ---------- ---------- DATA ASM1 MEMBER NORMAL 6799 FRA FRA1 MEMBER NORMAL 2233바. 디스크 그룹 추가/삭제
select group_number, name, state from v$asm_diskgroup; GROUP_NUMBER NAME STATE ------------ ---------- ---------- 1 DATA MOUNTED 2 FRA MOUNTED select name, path, state from v$asm_disk; NAME PATH STATE ---------- --------------- ---------- ORCL:ASM2 NORMAL ASM1 ORCL:ASM1 NORMAL FRA1 ORCL:FRA1 NORMAL -- 디스크 그룹 추가(new_asm) create diskgroup new_asm external redundancy disk 'ORCL:ASM2'; select group_number, name, state from v$asm_diskgroup; GROUP_NUMBER NAME STATE ------------ ---------- ---------- 1 DATA MOUNTED 2 FRA MOUNTED 3 NEW_ASM MOUNTED select name, path, state from v$asm_disk; NAME PATH STATE ---------- --------------- ---------- ASM1 ORCL:ASM1 NORMAL FRA1 ORCL:FRA1 NORMAL ASM2 ORCL:ASM2 NORMAL -- 디스크 그룹 unmount (new_asm) alter diskgroup new_asm dismount; select group_number, name, state from v$asm_diskgroup; GROUP_NUMBER NAME STATE ------------ ---------- ---------- 1 DATA MOUNTED 2 FRA MOUNTED 0 NEW_ASM DISMOUNTED -- 디스크 그룹 mount (new_asm) alter diskgroup new_asm mount; -- 디스크 그룹 삭제 drop diskgroup new_asm;
참고 : ASM 관련 뷰 – v$asm_diskgroup : 디스크 그룹과 관련된 정보 – v$asm_disk : 디스크에 대한 정보 – v$asm_file : ASM내부에 생성된 파일에 대한 정보 – v$asm_template : 디스크 그룹에 설정된 템플릿 정보 – v$asm_alias : 그룹의 alias 정보 – v$asm_operation : ASM 인스턴스상에서 실행되는 작업의 현황 – v$asm_client : ASM을 사용하는 DB 인스턴스 현황4. asmcmd 로 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
mkalias
mkdir : 디렉토리생성
pwd
rm
rmalias
참고 : 11g 이후 버전에서 지원하는 asmcmd 명령 cp : OS <—-> ASM 간의 파일 복사기능 lsdsk : ASM 디스크 헤더를 읽어 요약정보 표시 remap : ASM 디스크에 장애가 발생했을 때 다른 디스크로 remapping 시켜주고, 기존 디스크를 unusable로 변경
최신 댓글