Oacle 백업 테스트 스 크 립 트 방법(냉 비,열 비,rman)

1.데이터베이스 환경
데이터베이스 DBID 및 열기 모드

SQL> select dbid,open_mode from v$database; 
DBID OPEN_MODE
---------- ----------
4106451204 READ WRITE
데이터 파일:

SQL> select file#,status,enabled,name from v$datafile;

FILE# STATUS ENABLED NAME
---------- ------- ---------- --------------------------------------------------------------------------------
1 SYSTEM READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/system01.dbf
2 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/undotbs01.dbf
3 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/sysaux01.dbf
4 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/tbs_1.dbf
5 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/tbs3.dbf
6 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/tbs_big01.dbf
7 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/rman.dbf
제어 파일:

SQL> select status,name from v$controlfile;

STATUS NAME
------- --------------------------------------------------------------------------------
/u01/app/oracle/ocmdb/cfile/ora_control1
/u01/app/oracle/ocmdb/cfile/ora_control2
/u01/app/oracle/ocmdb/cfile/control3
온라인 로그:

SQL> select group#,status,type,member from v$logfile;

GROUP# STATUS TYPE MEMBER
---------- ------- ------- --------------------------------------------------------------------------------
1 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo01.log
1 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo11.log
3 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo03.log
2 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo02.log
5 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo05.log
5 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo55.log
4 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo04.log
4 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo44.log
2.데이터베이스 백업 스 크 립 트
콜 드 백업 스 크 립 트

#rem script:coldbak.sh
#rem creater:chon
#rem date:2011
#rem desc:offline full backup database

#--connect database
sqlplus / as sysdba <<EOF
#--shutdown database
shutdown immediate;
#--Copy Data file
!cp /u01/app/oracle/oradata/ocmdb/dfile/*.dbf /backup
!cp /u01/app/oracle/oradata/ocmdb/undotbs01.dbf /backup
#--Copy Control file
!cp /u01/app/oracle/ocmdb/cfile/* /backup
#--Copy Log file
!cp /u01/app/oracle/oradata/ocmdb/lfile/*.log /backup
#--Copy archive log
!cp -R /u01/app/oracle/rmanbak/OCMDB/archivelog/* /backup
#--startup database
startup;
설명:
1.상기 스 크 립 트 는 데이터베이스 가 닫 힌 상태 에서 데이터베이스 의 모든 데이터 파일,온라인 로그,제어 파일,압축 파일 로그(한 디 렉 터 리 에서)를 백업 합 니 다.백업 에 성공 하면 모든 파일 이 일치 합 니 다.
2.백업 매개 변수 파일 이 없고 매개 변수 파일 은 따로 백업 할 수 있 으 며 매번 백업 할 필요 가 없습니다.설정 을 바 꾼 후에 한 번 만 백업 해 야 합 니 다.
3.상기 명령 이 순서대로 실행 되 지 않 으 면 백업 은 무효 입 니 다.만약 에 데이터 베 이 스 를 연결 하 는 데 성공 하지 못 하면 데이터 베 이 스 를 닫 는 데 성공 하지 못 할 것 입 니 다.그러면 백업 은 무효 입 니 다.
4.콜 드 백업 은 인공 적 으로 관여 하여 집행 하 는 것 을 권장 합 니 다.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
OS 핫 백업
표 공간 과 데이터 파일 의 대응 관 계 를 보기

SQL> select file_id,tablespace_name,file_name from dba_data_files;

FILE_ID TABLESPACE_NAME FILE_NAME
---------- ------------------------------ --------------------------------------------------------------------------------
7 RMAN_TS /u01/app/oracle/oradata/ocmdb/dfile/rman.dbf
6 BIG_TBS /u01/app/oracle/oradata/ocmdb/dfile/tbs_big01.dbf
5 TBS3 /u01/app/oracle/oradata/ocmdb/dfile/tbs3.dbf
4 TBS_1 /u01/app/oracle/oradata/ocmdb/dfile/tbs_1.dbf
3 SYSAUX /u01/app/oracle/oradata/ocmdb/dfile/sysaux01.dbf
2 UNDOTBS /u01/app/oracle/oradata/ocmdb/undotbs01.dbf
1 SYSTEM /u01/app/oracle/oradata/ocmdb/dfile/system01.dbf
데이터베이스 OS 핫 백업 스 크 립 트

#rem script:hotbak.sh
#rem creater:chon
#rem date:2011
#rem desc:backup all database datafile in archive

#--connect database
sqlplus / as sysdba <<EOF

#--archive
alter system archive log current;

#--start hotbak
alter tablespace system begin backup;
!cp /u01/app/oracle/oradata/ocmdb/dfile/system01.dbf /backup
alter tablespace system end backup;

alter tablespace UNDOTBS begin backup;
!cp /u01/app/oracle/oradata/ocmdb/undotbs01.dbf /backup
alter tablespace UNDOTBS end backup;

alter tablespace SYSAUX begin backup;
!cp /u01/app/oracle/oradata/ocmdb/dfile/sysaux01.dbf /backup
alter tablespace SYSAUX end backup;

alter tablespace TBS_1 begin backup;
!cp /u01/app/oracle/oradata/ocmdb/dfile/tbs_1.dbf /backup
alter tablespace TBS_1 end backup;

alter tablespace TBS3 begin backup;
!cp /u01/app/oracle/oradata/ocmdb/dfile/tbs3.dbf /backup
alter tablespace TBS3 end backup;

alter tablespace BIG_TBS begin backup;
!cp /u01/app/oracle/oradata/ocmdb/dfile/tbs_big01.dbf /backup
alter tablespace BIG_TBS end backup;

alter tablespace RMAN_TS begin backup;
!cp /u01/app/oracle/oradata/ocmdb/dfile/rman.dbf /backup
alter tablespace RMAN_TS end backup;
#--end

#--bak control file
#--binary
alter database backup controlfile to '/backup/controlbinbak.000';
#--ascii
alter database backup controlfile to trace;

alter system archive log current;
설명:
1.열 백업 은 데이터베이스 압축 파일 방식 에서 만 실행 할 수 있 습 니 다.
2.상기 스 크 립 트 는 데이터베이스 가 실 행 된 상태 에서 데이터베이스 의 모든 데이터 파일 을 백업 할 수 있 습 니 다(임시 데이터 파일 제외).온라인 로 그 를 백업 할 필요 가 없습니다.
3.압축 파일 로 그 는 최소한 한 번 의 전체 백업 후의 모든 로 그 를 필요 로 합 니 다.
4.상기 명령 이 순서대로 실행 되 지 않 으 면 백업 도 무효 입 니 다.만약 에 데이터 베 이 스 를 연결 하 는 데 성공 하지 못 하면 백업 은 무효 입 니 다.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
RMAN 백업 스 크 립 트
로 컬
폴 더 만 들 기

mkdir /home/oracle/backup
mkdir /home/oracle/backup/script
mkdir /home/oracle/backup/log
mkdir /home/oracle/backup/export
--목적지 백업

mkdir /home/oracle/rman_backup
백업 테이블 공간 만 들 기

create tablespace rman_tbs datafile '/oradata/luke/rman_tbs01.dbf' size 1024M;
백업 사용자 만 들 기

create user rman identified by rman default tablespace rman_tbs temporary tablespace temp;

grant connect,resource ,recovery_catalog_owner to rman;

rman catalog rman/rman
create catalog tablespace rman_tbs;
connect target sys/lukewhx@luke
register database;
report schema;

configure retention policy to redundancy 2;
configure retention policy to recovery window of 7 days;

--  RMAN      exp_rman.par (   catalog )
userid=rman/rman
file=/home/oracle/backup/export/rman.dmp
log=/home/oracle/backup/log/rman.log

--   RMAN  SHELL  exp_rman.sh
#!/bin/bash
cd $HOME
. .bash_profile
cd $HOME/backup/script
exp parfile=exp_rman.par

--     RMAN  level0_backup.rcv
connect catalog rman/rman
connect target sys/unumall@unu2
run {

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS; 
CONFIGURE CONTROLFILE AUTOBACKUP ON; 
allocate channel d1 type disk;
allocate channel d2 type disk;
backup incremental level 0 database format '/home/oracle/rman_backup/level0_%d_%s_%p_%u.bak'
tag='level 0' include current controlfile;
sql 'alter system archive log current';
backup archivelog all format '/home/oracle/rman_backup/log_%d_%s_%p_%u.bak' delete all input;
release channel d2;
release channel d1;
}
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
resync catalog;

--    SHELL   level0_backup.sh
#!/bin/bash
cd $HOME
. .bash_profile
cd $HOME/backup/script
rman cmdfile=level0_backup.rcv msglog=$HOME/backup/log/level0_backup.log
. /home/oracle/backup/script/exp_rman.sh


--        RMAN   level1_backup.rcv
connect catalog rman/rman
connect target sys/luke@luke
run {
allocate channel d1 type disk;
backup incremental level 1 format '/home/oracle/rman_backup/level1_%d_%s_%p_%u.bak' tag = 'level 1' database;
sql 'alter system archive log current';
backup archivelog all format '/home/oracle/rman_backup/log_%d_%s_%p_%u.bak' delete all input;
release channel d1;
}
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
resync catalog;


--        SHELL  level1_backup.sh


#!/bin/bash
cd $HOME
. .bash_profile
cd /home/oracle/backup/script
rman cmdfile=level1_backup.rcv msglog=$HOME/backup/log/level1.log
. /home/oracle/backup/script/exp_rman.sh


--        RMAN   level2_backup.rcv
connect catalog rman/rman
connect target sys/luke@luke
run {
allocate channel d1 type disk;
backup incremental level 2 format '/home/oracle/rman_backup/level2_%d_%s_%p_%u.bak' tag = 'level 2' database;
sql 'alter system archive log current';
backup archivelog all format '/home/oracle/rman_backup/log_%d_%s_%p_%u.bak' delete all input;
release channel d1;
}
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
resync catalog;
--2 차 증분 백업 SHELL 스 크 립 트 level 2backup.sh

#!/bin/bash
cd $HOME
. .bash_profile
cd /home/oracle/backup/script
rman cmdfile=level2_backup.rcv msglog=$HOME/backup/log/level2.log
. /home/oracle/backup/script/exp_rman.sh
RMAN 증분 백업 성능 향상

alter database enable block change tracking using file
'/u01/app/oracle/admin/devdb/bdump/luke.log';

desc v$block_change_tracking;
링크 ux 에서 정기 적 으로 백업 스 크 립 트 를 실행 합 니 다.

crontab -e -u oracle
SHELL=/bin/bash --     bash   
MAILTO=oracle --           oracle  ,  /var/spool/mail/oracle   
10 1 * * 0 /home/oracle/backup/script/level0_backup.sh
10 1 * * 1 /home/oracle/backup/script/level2_backup.sh
10 1 * * 2 /home/oracle/backup/script/level2_backup.sh
10 1 * * 3 /home/oracle/backup/script/level1_backup.sh
10 1 * * 4 /home/oracle/backup/script/level2_backup.sh
10 1 * * 5 /home/oracle/backup/script/level2_backup.sh
10 1 * * 6 /home/oracle/backup/script/level2_backup.sh
일주일 차이 백업 정책:
대상 라 이브 러 리 와 catalog 라 이브 러 리 백업
일요일 0 급 완비,월요일 화요일 2 급,수요일 1 급,목요일 금요일 토요일 2 급.
매일 새벽 1 시 10 분부 터 백업 을 시작 합 니 다.
제로 백업

backup incremental level 0 database;
1 급 차이 증분 차이 증분 은 기본 증분 백업 방식 입 니 다.

backup incremental level 1 database;
1 급 누적 증 량

backup incremental level 1 cumulative database;
총결산
Oacle 백업 테스트 스 크 립 트 의 백업 방법(냉 비,열 비,rman)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Oacle 백업 테스트 스 크 립 트 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 지원 을 바 랍 니 다!

좋은 웹페이지 즐겨찾기