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로 변경
'오라클 백업/복구' 카테고리의 다른 글
RAC Backup과 OCR file 관리 (0) | 2013.03.05 |
---|---|
ASM - RMAN으로 백업 및 복구 (10g) (0) | 2013.02.25 |
ASM - Automatic Storage Management (0) | 2013.02.23 |
RMAN 백업으로 다른 서버에서의 DB 응급 복구 (0) | 2013.02.21 |
RMAN - Block Corruption Recovery + 11g New Features (0) | 2013.02.20 |