Oracle Diskgroup Move 작업 관련
안녕하세요. 유니원아이앤씨 입니다.
Oracle ASM 사용시 Diskgroup에 Redundancy를 변경해야되는 경우
Diskgroup안에 데이터 자체를 이동 시켜야 할때 유용한 작업 방법 공유드립니다.
OS : Redhat 7.4
Oracle Version : 12.2.0.1 EE
Config : ASM Single
* 디스크그룹 이전
1. 작업대상: DATA -> N_DATA
2. 기존 디스크그룹의 데이터를 다른 디스크그룹으로 변경시에 유용한 테스트
3. 활용: 디스크 그룹에대한 Redundancy 변경이 필요한 경우
4. 백업복구의 개념이기 때문에 Database Incanation은 변경된다.
* 작업 시작
1. New Diskgroup 생성
1.1 Vloume 할당
1.2 Ownership 설정
1.3 ASM Diskgroup 생성 (Redundancy 조정)
1.4 Disk group 조회
SQL> r
1* select state,name,type from v$asm_diskgroup
STATE NAME TYPE
---------------------- ---------- ------------
CONNECTED DATA EXTERN
MOUNTED OCR EXTERN
MOUNTED N_DATA NORMAL
2. spfile, controlfile copy
2.1 대상 DB확인
SQL> show parameter name
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_name string test1
2.2 spfile 복제
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
spfile string +DATA/test1/PARAMETERFILE/spfi
le.266.1002798057
# grid계정에서 실행 (또는 oracle 그리드홈설정하여)
asmcmd ls +DATA/test1
ARCHIVELOG/
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
TEMPFILE/
asmcmd mkdir +N_DATA/test1
asmcmd mkdir +N_DATA/test1/ARCHIVELOG/
asmcmd mkdir +N_DATA/test1/CONTROLFILE/
asmcmd mkdir +N_DATA/test1/DATAFILE/
asmcmd mkdir +N_DATA/test1/ONLINELOG/
asmcmd mkdir +N_DATA/test1/PARAMETERFILE/
asmcmd mkdir +N_DATA/test1/TEMPFILE/
asmcmd cp +DATA/test1/PARAMETERFILE/spfile.266.1002798057 +N_DATA/test1/PARAMETERFILE/spfiletest1.ora
2.3 controlfile 복제
SQL> show parameter control_files
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
control_files string +DATA/TEST1/CONTROLFILE/curren
t.257.1002796907
oracle> rman target /
RMAN> restore controlfile to '+N_DATA' from '+DATA/TEST1/CONTROLFILE/current.257.1002796907';
SQL> shutdown immediate
2.4 New Diskgroup에서 Mount 진입
# grid 또는 oracle 계정
srvctl modify database -d test1 -p +N_DATA/test1/PARAMETERFILE/spfiletest1.ora
SQL> startup nomount
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
spfile string +N_DATA/test1/PARAMETERFILE/sp
filetest1.ora
# grid계정에서 실행 (또는 oracle 그리드홈설정하여)
grid> asmcmd ls +N_DATA/test1/CONTROLFILE
current.258.1032088189
SQL> alter system set control_files='+N_DATA/test1/CONTROLFILE/current.258.1032088189' scope=spfile sid='*';
SQL> shutdown immediate
SQL> startup mount
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
spfile string +N_DATA/test1/PARAMETERFILE/sp
filetest1.ora
SQL> show parameter control_files
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
control_files string +N_DATA/test1/CONTROLFILE/curr
ent.258.1032088189
3. Datafile 이관
oracle> rman target /
RMAN> backup as copy database format '+N_DATA';
RMAN> switch database to copy;
RMAN> alter database open;
SQL> select instance_name, status, open_mode from v$instance,v$database;
INSTANCE_NAME STATUS OPEN_MODE
-------------------------------- ------------------------ ----------------------------------------
test1 OPEN READ WRITE
참고문서: How To Move The Database To Different Diskgroup (Change Diskgroup Redundancy) (Doc ID
438580.1)
'기술이야기 > 전문가 기술기고' 카테고리의 다른 글
rman을 이용한 특정 tablespace 복구 (1) | 2020.03.04 |
---|---|
MySQL Replication 구성 (0) | 2020.02.12 |
MySQL 5.5 설치 및 세팅 (0) | 2020.02.10 |
[부하테스트] Hammer DB 참조 자료 (0) | 2020.02.10 |
19c OGG 구성 테스트 (0) | 2020.02.04 |