실습 0: RMAN 파라미터를 Default상태로 바꾸고, RMAN 파라미터 리스트를 나타내여라. 그리고, 백업 리스트와 Obsolete 리스트를 삭제하여라. (5분)
rman target /
/* 각종 RMAN 파라미터를 Default 값으로 되돌린다. */
CONFIGURE RETENTION POLICY CLEAR;
CONFIGURE CONTROLFILE AUTOBACKUP CLEAR;
/* RMAN 파라미터의 전체 리스트를 확인한다. */
SHOW ALL;
/* 백업 파일과 Obsolete 파일을 삭제한다. */
DELETE BACKUP;
DELETE OBSOLETE;
실습 1-1: retention policy 파라미터를 바꿔 본다. (6분)
/* retention policy는 Redundancy based, Recovery window based 중 하나만을 선택할 수 있다. Redundancy based는 지정 파라미터 개수 이상 백업 파일이 쌓이면 백업파일을 자동 삭제한다. Recovery window based는 백업 파일이 생성된 지 지정한 파라미터 날짜가 지나면 백업파일을 자동 삭제한다. */
/* Redundancy based, 실습 코드는 하나의 파일은 백업본을 최대 2개까지 보관할 수 있다는 의미이다. */
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
/* Recovery Window based, 실습 코드는 하나의 파일의 백업본은 최대 10일까지 보관할 수 있다.
이후 보관 공간이 부족해지면, RMAN은 이 백업 파일을 자동으로 삭제할 것이다. */
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 10 DAYS;
CONFIGURE RETENTION POLICY CLEAR;
실습 1-2: retention policy 파라미터를 바꾸지 않고, 데이터베이스를 백업할 때 retention 내용을 지정해본다.
/* 데이터베이스 백업본을 영구 보존하기 위해서는, Recovery Catalog 사용이 필수적이다. */
export ORACLE_SID=orcl2
rman target / catalog system/asdf0930k@rcdb
REGISTER DATABASE;
LIST INCARNATION;
/* 데이터베이스 백업본을 영구 보존 */
RUN {BACKUP DATABASE TAG bkp_forever KEEP FOREVER;}
/* 데이터베이스 백업본을 30일동안 보존 */
RUN {BACKUP DATABASE TAG bkp_1month KEEP UNTIL TIME 'SYSDATE+30';}
/* 데이터베이스 백업 리스트 확인 */
LIST BACKUP;
실습 2: backup destination 파라미터를 바꿔 본다. (7분)
%a – database activation ID으로 지정해준다.
%d – 사용 데이터베이스명으로 지정해준다.
%f – 데이터파일의 개수 번호로 지정해준다.
%N – 소속 테이블스페이스명을 지정해준다. 이 변수는 데이터파일의 image copy가 사용되었을 때만 사용할 수 있다.
%T – 그레고리안 역법에 맞추어 생성 연월일을 지정해준다.
%U – 알아서 유일성을 띄는 파일이름을 설정해준다.
/* 백업 타입을 backupset, 백업 디바이스를 disk, 백업 병렬도를 2로 지정한다. */
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
/* Backup Destination 파라미터 설정하기, 실습에서는 Backup Destination의 채널을 2개 만들었는데, 데이터 파일을 백업할 때 2개 갈래로 병렬 백업하겠다는 뜻이다.
앞으로 백업 destination을 별도로 지정하지 않는 한 백업 파일은 /u01/app/oracle/oradata/에 위치할 것이다. */
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/u01/app/oracle/oradata/file_%p_%N_%d_%U.bkp';
CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/u01/app/oracle/oradata/file_%p_%N_%d_%U.bkp';
/* backup destination을 지정한 backup datafile 구문 */
BACKUP DATAFILE 1 FORMAT '/u01/app/oracle/oradata/datafile1%U.bkp';
/* Backup Destination 파라미터 지정 초기화 */
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT CLEAR;
CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT CLEAR;
실습 3: autobackup controlfile을 지정해 본다. (5분)
/* Controlfile을 autobackup하겠다는 것은 데이터베이스를 백업할 때마다 제어파일도 함께 백업하겠다는 것이다.
또, 데이터베이스의 구조가 변할 때에도 항상 Controlfile은 autobackup될 것이다. */
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
/* Controlfile의 backup 디렉토리를 지정한다. */
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/oracle/%F.bkp';
/* Controlfile autobackup 설정 초기화 */
CONFIGURE CONTROLFILE AUTOBACKUP CLEAR;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR;
난이도: ★★☆☆☆
문제 1: Controlfile Autobackup이 활성화 되어있는 상태에서, 전체 백업을 진행하고 controlfile이 autobackup되었는지 점검하라. (5분)
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/oracle/oradata/%F.bkp';
BACKUP DATABASE;
$ cd /u01/app/oracle/oradata
$ ls
난이도: ★★★☆☆
문제 2: 새 데이터파일을 추가하고, 테이블스페이스를 삭제한 후에, 새 redo log file을 추가하고, redo log group을 삭제하여라. 그리고 controlfile이 각 structural change마다 autobackup 되었는지 확인하라. (10분)
rman target /
CONFIGURE RETENTION POLICY TO REDUNDANCY 10;
/* 새 테이블스페이스르르 추가하고, 새 데이터파일을 추가한다. */
CREATE TABLESPACE ryu DATAFILE '/u01/app/oracle/oradata/ORCL2/ryu.dbf' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
ALTER TABLESPACE ryu ADD DATAFILE '/u01/app/oracle/oradata/ORCL2/ryu2.dbf' SIZE 100M;
/* redo log file을 추가하고, 바로 삭제한다. */
SELECT group#, status
FROM v$log;
ALTER DATABASE ADD LOGFILE GROUP 4 '/u01/app/oracle/oradata/ORCL2/redo04.log' SIZE 50M;
ALTER DATABASE ADD LOGFILE MEMBER '/u01/app/oracle/oradata/ORCL2/redo04_02.log' SIZE 50M
REUSE TO GROUP 4;
ALTER DATABASE DROP LOGFILE GROUP 4;
$ cd /u01/app/oracle/oradata
$ ls
$ rman target /
CONFIGURE RETENTION POLICY CLEAR;
실습 4: 백업 파일 encryption, compression을 진행한다. (8분)
/* RMAN으로 백업한 파일을 암호화 할 수 있다. 이 파일을 Restore 하기 전에 반드시 decryption을 진행해야 한다. */
RMAN에는 3 가지 방식의 encryption 방식이 존재한다: Transparent, Password, Dual-mode, Transparent 모드는 wallet 방식으로 수행하는 것이고, password 모드는 백업 전에 비밀번호로 encryption을 진행하고, 복구 작업 전에 decryption을 하는 것이다. Dual-mode는, Password 모드가 사용되면 Password 모드를, Password 모드가 사용되지 않으면 Transparent 모드로 encryption을 진행한다. */
1. Encryption
rman target /
/* Password 모드: encryption 지정 코드에 only 사용 */
SET ENCRYPTION ON IDENTIFIED BY 'asdf0930k' ONLY;
BACKUP DATAFILE 4;
SET DECRYPTION ON IDENTIFIED BY 'asdf0930k';
RESTORE DATAFILE 4;
/* Dual 모드: encryption 지정 코드에 only 사용 x */
SET ENCRYPTION ON IDENTIFIED BY 'asdf0930k';
BACKUP DATAFILE 4;
SET ENCRYPTION ON IDENTIFIED BY 'asdf0930k';
RESTORE DATAFILE 4;
/* Encryption 알고리즘 리스트를 확인하고, Encryption 적용 알고리즘을 선택할 수도 있다. */
SELECT *
FROM v$rman_encryption_algorithms;
CONFIGURE ENCRYPTION ALGORITHM 'AES192';
CONFIGURE ENCRYPTION ALGORITHM CLEAR;
2. Compression
rman target /
BACKUP AS COMPRESSED BACKUPSET DATABASE;
BACKUP AS COMPRESSED COPY DATABASE;
/* Compression 알고리즘 확인 및 변환 */
SELECT *
FROM v$rman_compression_algorithm;
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM';
CONFIGURE COMPRESSION ALGORITHM CLEAR;
실습 5: archivelog deletion policy를 지정한다. (5분)
/* archived log file을 삭제하기 위해서, ARCHIVELOG DELETION POLICY 커맨드가 사용된다. default로 지정된 deletion policy는 NONE이다. */
/* redo log file이 1번 백업되면 archivedlog를 삭제한다. */
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DEVICE TYPE DISK;
/* standby 데이터베이스에 redo log file 내용이 apply되면 archivelog를 삭제한다. */
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLED ON STANDBY;
/* standby 데이터베이스에 redo log file이 옮겨지면 archivelog를 삭제한다. */
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED ON STANDBY;
/* 따로 archivelog를 삭제하는 policy를 지정하지 않는다. */
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE;
실습 6: backup의 maximum size를 지정한다. (3분)
/* 백업 파일의 Maxsetsize를 지정한다. maxsetsize를 넘으면, 백업을 중단하고 maxsetsize만큼의 데이터파일을 백업한다. */
CONFIGURE MAXSETSIZE TO 200M;
/* 병렬 채널당 Maxpiecesize를 지정한다. */
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 50M;
실습 7: backup파일을 duplexing한다. (5분)
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
BACKUP DATAFILE 1 FORMAT '/u01/app/oracle/oradata/ORCL2/users_01_%U.bkp';
$ cd /u01/app/oracle/oradata/ORCL2
$ ls
실습 8: backup 시 일부 테이블스페이스를 제외하도록 설정한다. (8분)
/* USERS, SYSAUX 테이블스페이스를 백업에서 제외한다. */
CONFIGURE EXCLUDE FOR TABLESPACE USERS;
CONFIGURE EXCLUDE FOR TABLESPACE SYSAUX;
/* 백업 제외 내용을 해제한다. */
CONFIGURE EXCLUDE FOR TABELSPACE USERS CLEAR;
CONFIGURE EXCLUDE FOR TABLESPACE STSAUX CLEAR;
/* 백업 제외 내용은 상관없이, 모든 파일의 백업을 진행한다. */
BACKUP DATABASE NOEXCLUDE;
/* Readonly, offline, 그리고 접근이 불가능한 테이블스페이스를 제외한 모든 파일을 백업한다. */
BACKUP DATABASE SKIP READONLY SKIP OFFLINE SKIP INACCESSIBLE;
'Oracle > OCM Journey' 카테고리의 다른 글
3-4 Database Availability - Using RMAN to restore and recovery operations (0) | 2023.03.23 |
---|---|
3-3 Database Availability - Using RMAN to perform database backups (0) | 2023.03.22 |
3-1 Database Availability - Maintain Recovery Catalogs (0) | 2023.03.19 |
2-12 OEM - Deploy Enterprise Cloud Control Agents (0) | 2023.03.16 |
2-11 OEM - Configure Cloud Control for business requirements (0) | 2023.03.15 |