-- 실전 오라클 백업과 복구(생능출판사, 서진수 지음), p.156~p.163
-- 데이터 파일 이동시키는 작업
-- 철칙: 데이터 파일 사용 중 일 때는 절대로 이동시키거나 복사하면 안 된다.
-- 1. offline 되는 테이블 스페이스의 데이터 파일 이동하기
-- 2. offline 안 되는 테이블 스페이스의 데이터 파일 이동하기
-- 3. Redo log file 이동하기
-- 4. 테이블 스페이스 삭제하기
-- 1. offline 되는 테이블 스페이스의 데이터 파일 이동하기
<순서요약>
1) 해당 테이블 스페이스 offline
2) 데이터 파일을 대상 위치로 복사
3) 컨트롤 파일 내의 해당 데이터 파일 위치 변경
4) 해당 테이블 스페이스 online
/u01/app/oracle/oradata/orcl/haksa01.dbf
/u01/app/oracle/oradata/orcl/haksa02.dbf
/u01/app/oracle/disk1/
SQL> alter tablespace haksa offline;
SQL> !cp /u01/app/oracle/oradata/orcl/haksa01.dbf /u01/app/oracle/disk1/
SQL> !cp /u01/app/oracle/oradata/orcl/haksa02.dbf /u01/app/oracle/disk2/
SQL> select name from v$datafile;
SQL> alter tablespace haksa rename datafile '/u01/app/oracle/oradata/orcl/haksa01.dbf' to '/u01/app/oracle/disk1/haksa01.dbf';
SQL> alter tablespace haksa rename datafile '/u01/app/oracle/oradata/orcl/haksa02.dbf' to '/u01/app/oracle/disk2/haksa02.dbf';
SQL> alter tablespace haksa online;
SQL> select name from v$datafile;
SQL>
-- 2. offline 안 되는 테이블 스페이스의 데이터 파일 이동하기
<순서요약>
1) DB를 종료한다.
2) 마운트 상태로 시작한다.
3) 데이터 파일을 복사한다.
4) 컨트롤 파일의 내용을 변경한다.
5) DB를 open한다.
-- offline이 안 되는 테이블 스페이스: system tablespace, undo tablespace, default temporary tablespace
/u01/app/oracle/oradata/orcl/system01.dbf
SQL> shutdown immediate
SQL> startup mount
SQL> !cp /u01/app/oracle/oradata/orcl/system01.dbf /u01/app/oracle/disk3/
SQL> alter database rename file '/u01/app/oracle/oradata/orcl/system01.dbf' to '/u01/app/oracle/disk3/system01.dbf';
SQL> select name from v$datafile;
SQL> alter database open;
SQL>
-- 3. Redo log file 이동하기
SQL> set line 200
SQL> col a.group# for 999
SQL> col member for a50
SQL> select a.group#, a.member, b.bytes/1024/1024 MB, b.archived, b.status
from v$logfile a, v$log b
where a.group#=b.group#
order by 1, 2;
SQL> shutdown immediate
SQL> startup mount
SQL>!cp /u01/app/oracle/disk3/redo01_a.log /u01/app/oracle/disk4/redo01_a.log
SQL>!cp /u01/app/oracle/disk3/redo02_a.log /u01/app/oracle/disk4/redo02_a.log
SQL>!cp /u01/app/oracle/disk3/redo03_a.log /u01/app/oracle/disk4/redo03_a.log
SQL> alter database rename file '/u01/app/oracle/disk3/redo01_a.log' to '/u01/app/oracle/disk4/redo01_a.log';
SQL> alter database rename file '/u01/app/oracle/disk3/redo02_a.log' to '/u01/app/oracle/disk4/redo02_a.log';
SQL> alter database rename file '/u01/app/oracle/disk3/redo03_a.log' to '/u01/app/oracle/disk4/redo03_a.log';
SQL> select member from v$logfile;
SQL> alter database open;
SQL>
-- 4. 테이블 스페이스 삭제하기
SQL> drop tablespace haksa; -- Error 발생
SQL> drop tablespace haksa including contents and datafiles; -- haksa 테이블 스페이스 삭제, 물리적으로 OS에서 삭제
SQL> select tablespace_name, bytes/1024/1024 MB, file_name from dba_data_files;
SQL>
'개발 및 관리 > Oracle 9i, 10g, 11g, 12c, 19c' 카테고리의 다른 글
일자별로 자동으로 begin backup을 수행하는 백업 스크립트(backup script) (0) | 2012.12.30 |
---|---|
사용자 관리 - user 생성, user 정보 확인, profile 관리, privilege 관리 (0) | 2012.12.28 |
일반 테이블 스페이스 관리 (0) | 2012.12.27 |
temporary tablespace 관리 방법 (0) | 2012.12.27 |
undo tablespace 관리 방법 (0) | 2012.12.27 |