* Archive log 모드로 설정되어 있어야 한다.
* ARCH 프로세스가 활성화 되어있어야 한다.
열린 백업의 수행 과정
1. 백업을 원하는 백업 대상이 되는 테이블스페이스를 백업 모드로 변경한다.
: ALTER TABLESPACE <테이블스페이스명> BEGIN BACKUP;
2. 운영체제 명령을 통해서 지정한 테이블스페이스의 데이터 파일을 백업 디렉토리로 복사한다.
3. 테이블스페이스를 정상저인 상태로 되돌린다.
: ALTER TABLESPACE <테이블스페이스명> END BACKUP;
4. 모든 파일의 동기화 정보를 일치시키기 위해서 체크포인트를 강제로 실행한다.
: ALTER SYSTEM CHECKPOINT;
CONTROL FILE 의 열린 백업
* ALTER DATABASE BACKUP CONTROLFILE TO <생성될 컨트롤 파일명>;
* ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
열린백업을 진행하면 많은 리두로그가 발생하는데 이유는 백업이 진행될 동안 LGWR이 DATAFILE의 변경된 내용을 리두로그에 저장해야 하기 때문이다. 따라서 열린 백업을 할 경우에는 충분한 크기의 리두로그파일이나 리두 로그 버퍼의 크기를 확보해야 한다.
step 1 : 백업 대상 확인
SYS>select tablespace_name, bytes, file_name from dba_data_files;
TABLESPACE_NAME BYTES FILE_NAME
---------------- ---------- --------------------------------------------------
USERS 713031680 /home/oracle/oradata/testdb/users01.dbf
SYSAUX 314572800 /home/oracle/oradata/testdb/sysaux01.dbf
UNDOTBS1 319815680 /home/oracle/oradata/testdb/undotbs01.dbf
SYSTEM 807403520 /home/oracle/oradata/testdb/system01.dbf
EXAMPLE 104857600 /home/oracle/oradata/testdb/example01.dbf
INSA 10485760 /home/oracle/oradata/testdb/insa01.dbf
INSA 5242880 /home/oracle/oradata/testdb/insa02.dbf
WOW 5242880 /home/oracle/oradata/testdb/wow.dbf
12 rows selected.
SYS>save dd.sql;
SYS>select tablespace_name, status, contents, extent_management, segment_space_management
2 from dba_tablespaces;
TABLESPACE_NAME STATUS CONTENTS EXTENT_MAN SEGMEN
---------------- --------- --------- ---------- ------
SYSTEM ONLINE PERMANENT LOCAL MANUAL
UNDOTBS1 ONLINE UNDO LOCAL MANUAL
SYSAUX ONLINE PERMANENT LOCAL AUTO
TEMP ONLINE TEMPORARY LOCAL MANUAL
USERS ONLINE PERMANENT LOCAL AUTO
EXAMPLE ONLINE PERMANENT LOCAL AUTO
INSA ONLINE PERMANENT LOCAL AUTO
WOW ONLINE PERMANENT LOCAL AUTO
12 rows selected.
SYS>save dt.sql replace;
Wrote file dt.sql
SYS>select * from v$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------------------------------------- --- ---------- --------------
/home/oracle/oradata/testdb/control01.ctl NO 16384 448
/home/oracle/oradata/testdb/control02.ctl NO 16384 448
step 2 : Backup Script 생성
SYS>!vi openbackup.sql
SYS>!vi openbackup.sql
2 !cp -av /home/oracle/oradata/testdb/system01.dbf /data/backup/open/;
3 alter tablespace SYSTEM end backup;
4 alter tablespace SYSAUX begin backup;
5 !cp -av /home/oracle/oradata/testdb/sysaux01.dbf /data/backup/open/;
6 alter tablespace SYSAUX end backup;
7 alter tablespace UNDOTBS1 begin backup;
8 !cp -av /home/oracle/oradata/testdb/undotbs02.dba /data/backup/open/;
9 alter tablespace UNDOTBS1 end backup;
10 alter tablespace USERS begin backup;
11 !cp -av /home/oracle/oradata/testdb/users01.dbf /data/backup/open/;
12 alter tablespace USERS end backup;
13 alter tablespace EXAMPLE begin backup;
14 !cp -av /home/oracle/oradata/testdb/example01.dbf /data/backup/open/;
15 alter tablespace EXAMPLE end backup;
16 alter tablespace INSA begin backup;
17 !cp -av /home/oracle/oradata/testdb/insa* /data/backup/open/;
18 alter tablespace INSA end backup;
19 alter tablespace WOW begin backup;
20 !cp -av /home/oracle/oradata/testdb/wow.dbf /data/backup/open/;
21 alter tablespace WOW end backup;
22 alter database backup controlfile to '/data/backup/open/control.ctl';
step 3 : 백업 수행
SYS>@openbackup;
Tablespace altered.
`/home/oracle/oradata/testdb/system01.dbf' -> `/data/backup/open/system01.dbf'
Tablespace altered.
Tablespace altered.
`/home/oracle/oradata/testdb/sysaux01.dbf' -> `/data/backup/open/sysaux01.dbf'
Tablespace altered.
Tablespace altered.
cp: cannot stat `/home/oracle/oradata/testdb/undotbs02.dba': No such file or directory
Tablespace altered.
Tablespace altered.
`/home/oracle/oradata/testdb/users01.dbf' -> `/data/backup/open/users01.dbf'
Tablespace altered.
Tablespace altered.
`/home/oracle/oradata/testdb/example01.dbf' -> `/data/backup/open/example01.dbf'
Tablespace altered.
Tablespace altered.
`/home/oracle/oradata/testdb/insa01.dbf' -> `/data/backup/open/insa01.dbf'
`/home/oracle/oradata/testdb/insa02.dbf' -> `/data/backup/open/insa02.dbf'
Tablespace altered.
Tablespace altered.
`/home/oracle/oradata/testdb/wow.dbf' -> `/data/backup/open/wow.dbf'
Tablespace altered.
Database altered.
SYS>!vi openbackup.sql
SYS>
SYS>alter system checkpoint;
System altered.
SYS>
SYS>!ls /data/backup/open
control.ctl insa01.dbf sysaux01.dbf users01.dbf
example01.dbf insa02.dbf system01.dbf wow.dbf
'Backup&Recovery' 카테고리의 다른 글
| User Tablespace의 data file 장애 복구(open 상태에서 복구) (0) | 2010/08/19 |
|---|---|
| 완전 복구 명령어(recover) (0) | 2009/02/12 |
| 열린 백업 (0) | 2009/02/12 |
| mount상태에서 datafile offline 명령어 (0) | 2008/11/12 |
| controlfile 만들기 (0) | 2008/10/30 |
| 열린 백업 개요 (0) | 2008/10/28 |

댓글을 달아 주세요