ASM 사용중 datafile 을 다른 diskgroup 으로 이동
+DATA 디스크그룹 을 사용하는 디비 testdb 의 모든 파일을 +NEW_DG 디스크 그룹으로 옮기려면 어떻게 해야할까
1. new diskgroup 생성
2. datafile 이동
2-1) datafile (system, users, undo )
2-2) temp
2-3) 기타 파일들(spfile, logfile, controlfile)
* crs 관련
1. new diskgroup 생성
alter dg drop disk name;
create diskgroup xxx asm_string '';
2. datafile 이동
asmcmd mkdir
* system, undo 를 제외한 datafile 들은 archive mode 상태라면 rman 에서 아래 명렁으로 온라인으로 이동 가능하다.
1] BACKUP AS COPY DATAFILE 4 FORMAT "+NEW_DG";
2] SQL "ALTER DATABASE DATAFILE ''+OLD_DG/orcl/datafile/users.261.689589837'' OFFLINE";
3] SWITCH DATAFILE "+OLD_DG/orcl/datafile/users.261.689589837" TO COPY;
4] RECOVER DATAFILE "+NEW_DG/orcl/datafile/users.256.689682663";
5] SQL "ALTER DATABASE DATAFILE ''+NEW_DG/orcl/datafile/users.261.689589837'' ONLINE";
6] DELETE DATAFILECOPY "+OLD_DG/orcl/datafile/users.261.689589837";
2-1) datafile
mount 상태에서 backup/ switch 로 이동시킨다. (temp 제외 모든 datafile)
alter database mount;
backup/ switch
open 이후 불필요한 datafilecopy 삭제
rman> delete datafilecopy all
2-2) temp
temp 는 새로운 경로에 생성 후 교체
- create temporary temp_new '+NEW_DG'
- alter database default temp
- drop temp
- alter tablespace temp_new rename to temp
2-3) 기타 파일들(spfile, logfile, controlfile)
logfile
- alter system add logfile
- alter system drop logfile member
spfile
- srvctl config 로 현재 spfile 경로 확인
srvctl config database -d orclcdb
- srvctl modify spfile=
srvctl modify database -d orcl -spfile +NEW_DG/spfileORCL.ora
create spfile ='+NEW_DG' from pfile;
controlfile
- alter database nomount
- restore to '+NEW_DG' from '+OLD_DG'
- vi initORCL.ora
- shutdown/ startup pfile
- alter system set controlfile ='+NEW_DG'
asmcmd rm -rf OLD_DG
* crs resource 등록
ERROR: failed to establish dependency between database <database name> and diskgroup resource ora.<diskgroup name>.dg
srvctl add
srvctl config
srvctl modify