■ rman - backup

YoonSeo Park ·2024년 2월 3일

RMAN (Recovery Manager)

: RMAN(Recovery Manager)은 오라클 데이터베이스에서 백업, 복구 작업을 관리하는데 사용하는 오라클 유틸리티다.

  • RMAN은 운영체제에 독립적인 강력한 명령언어를 사용한다.

▶ 1. 백업대상

  • 디스크 디렉터리
  • media management library(테이프 장치)
  • Flash Recovery Area(Fast Recovery Area)
    • 백업과 복구 및 flashback database 목적으로 마련된 디스크영역
    • 파일은 필요에 따라 자동으로 보관 및 삭제 된다.
  • 위치
show parameter db_recovery_file_dest
--------------------
NAME                       TYPE        VALUE                              
-------------------------- ----------- ---------------------------------- 
db_recovery_file_dest      string      /u01/app/oracle/fast_recovery_area 
db_recovery_file_dest_size big integer 4152M  
  • 크기
show parameter db_recovery_file_dest_size
------------------------
NAME                       TYPE        VALUE 
-------------------------- ----------- ----- 
db_recovery_file_dest_size big integer 4152M 

▶ 2. RMAN 기본적인 사용법

  • rman 접속
[oracle@oracle ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Sun Jan 14 16:14:35 2024

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORA11G (DBID=256148002)
-- ORA11G(DBID=256148002) 을 타겟으로 하고있다.
  • 스키마에대해서 report
RMAN> report schema;

using target database control file instead of recovery catalog
Report of database schema for database with db_unique_name ORA11G

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    750      SYSTEM               ***     /u01/app/oracle/oradata/ora11g/system01.dbf
2    680      SYSAUX               ***     /u01/app/oracle/oradata/ora11g/sysaux01.dbf
3    10       HRM_TBS              ***     /u01/app/oracle/oradata/ora11g/hrm_tbs01.dbf
4    8        USERS                ***     /u01/app/oracle/oradata/ora11g/users01.dbf
5    330      EXAMPLE              ***     /u01/app/oracle/oradata/ora11g/example01.dbf
6    74       UNDOTBS              ***     /u01/app/oracle/oradata/ora11g/undotbs01.dbf

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    20       TEMP                 32767       /u01/app/oracle/oradata/ora11g/temp01.dbf
  • 백업한 목록 조회
RMAN> list backup;
------------------------------------------
specification does not match any backup in the repository
  • 한번도 백업받지 않은 정보 조회
RMAN> report need backup;
--------------------------------------------
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
Report of files with less than 1 redundant backups
File #bkps Name
---- ----- -----------------------------------------------------
1    0     /u01/app/oracle/oradata/ora11g/system01.dbf
2    0     /u01/app/oracle/oradata/ora11g/sysaux01.dbf
3    0     /u01/app/oracle/oradata/ora11g/hrm_tbs01.dbf
4    0     /u01/app/oracle/oradata/ora11g/users01.dbf
5    0     /u01/app/oracle/oradata/ora11g/example01.dbf
6    0     /u01/app/oracle/oradata/ora11g/undotbs01.dbf

▶ 3. controlfile

control file을 자동 백업 설정

  • OFF (기본값)
CONFIGURE CONTROFILE AUTOBACKUP OFF;
  • ON
RMAN>  CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
  • controlfile 백업 파일 이름 설정 (기본값)
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';

fast_recovery_area 에 저장된다.

  • %F
    : c-DBID-YYYYMMDD-QQ
    QQ는 00으로 시작하고 최대값이 FF인 16진수 시퀀스이다.

controlfile 을 백업하고 있는 도중에 controlfile 의 내용이 변경된다면 백업전과 백업후에 내용이 달라지는 문제가 발생한다. 그런 상황이 되면 백업 받던 controlfile 을 스냅샷을 생성하고 백업후에 동기화 시켜서 문제를 해결한다.

  • 이곳에 스냅샷을 생성한다.
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'u01/app/oracle/product/11.2.0.4/db_1/dbs/snapcf_ora11g.f'; #default

■ RMAN 백업

: controlfile 백업 on 이므로 자동으로 받아지고,
SPFILE도 자동으로 받아진다.

rman backup 은 사용한 블록만 가져오므로 효율적이다.

RMAN에서의 백업 파일 = backup piece

  • backup database;
RMAN> backup database;
----------------------------------------
Starting backup at 14-JAN-24
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=25 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/ora11g/system01.dbf
input datafile file number=00002 name=/u01/app/oracle/oradata/ora11g/sysaux01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/ora11g/example01.dbf
input datafile file number=00006 name=/u01/app/oracle/oradata/ora11g/undotbs01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/ora11g/hrm_tbs01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/ora11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 14-JAN-24
channel ORA_DISK_1: finished piece 1 at 14-JAN-24
piece handle=/u01/app/oracle/fast_recovery_area/ORA11G/backupset/2024_01_14/o1_mf_nnndf_TAG20240114T163728_lt73srk7_.bkp tag=TAG20240114T163728 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
Finished backup at 14-JAN-24

Starting Control File and SPFILE Autobackup at 14-JAN-24
piece handle=/u01/app/oracle/fast_recovery_area/ORA11G/autobackup/2024_01_14/o1_mf_s_1158251883_lt73tvtz_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 14-JAN-24
  • list backup;
    밑에 보면 controlfile SCN번호랑 datafile SCN번호가 안맞는데, redo,archive 파일, 스냅샷 있으므로 괜찮다.
RMAN> list backup;
------------------------------------------

List of Backup Sets
===================


BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
1       Full    1.22G      DISK        00:00:29     14-JAN-24
        BP Key: 1   Status: AVAILABLE  Compressed: NO  Tag: TAG20240114T163728
        Piece Name: /u01/app/oracle/fast_recovery_area/ORA11G/backupset/2024_01_14/o1_mf_nnndf_TAG20240114T163728_lt73srk7_.bkp
  List of Datafiles in backup set 1
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/system01.dbf
  2       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/sysaux01.dbf
  3       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/hrm_tbs01.dbf
  4       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/users01.dbf
  5       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/example01.dbf
  6       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/undotbs01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
2       Full    9.36M      DISK        00:00:00     14-JAN-24
        BP Key: 2   Status: AVAILABLE  Compressed: NO  Tag: TAG20240114T163803
        Piece Name: /u01/app/oracle/fast_recovery_area/ORA11G/autobackup/2024_01_14/o1_mf_s_1158251883_lt73tvtz_.bkp
  SPFILE Included: Modification time: 14-JAN-24
  SPFILE db_unique_name: ORA11G
  Control File Included: Ckp SCN: 1680032      Ckp time: 14-JAN-24
  • 필요한 백업 확인
RMAN> report need backup;

RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
Report of files with less than 1 redundant backups
File #bkps Name
---- ----- -----------------------------------------------------
  • 물리적위치에서 확인
[oracle@oracle archivelog]$ cd /u01/app/oracle/fast_recovery_area
[oracle@oracle fast_recovery_area]$ ls
ora11g  ORA11G
[oracle@oracle fast_recovery_area]$ cd ORA11G/
[oracle@oracle ORA11G]$ ls
archivelog  autobackup  backupset  onlinelog
[oracle@oracle ORA11G]$ cd archivelog/
[oracle@oracle archivelog]$ ls
2024_01_09  2024_01_11
[oracle@oracle archivelog]$ cd ..
[oracle@oracle ORA11G]$ ls
archivelog  autobackup  backupset  onlinelog
[oracle@oracle ORA11G]$ cd autobackup/
[oracle@oracle autobackup]$ ls
2024_01_14
[oracle@oracle autobackup]$ date
Sun Jan 14 16:48:43 KST 2024

■ 아카이브파일을 백업

● 1. 작업

select a.group#,b.thread#,b.sequence#, member, b.bytes/1024/1024 mb, b.archived, b.status,
        b.first_change#, b.next_change#, b.next_time
from v$logfile a, v$log b
where a.group# = b.group#
order by 1,2;
---
1	1	19	/u01/app/oracle/oradata/ora11g/redo01.log	50	YES	INACTIVE	1704691	1724829	24/01/14
2	1	20	/u01/app/oracle/oradata/ora11g/redo02.log	50	YES	INACTIVE	1724829	1745651	24/01/14
3	1	21	/u01/app/oracle/oradata/ora11g/redo03.log	50	NO	CURRENT	1745651	281474976710655	
  • 로그 스위치 발생후 테이블 생성
alter system switch logfile;

create table hr.rman tablespace users
as select * from hr.employees;
  • 로그스위치 발생
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
  • 물리적 위치확인
[oracle@oracle ora_data]$ ls /home/oracle/arch1
arch_1_21_1158057974.arc  arch_1_23_1158057974.arc
arch_1_22_1158057974.arc  arch_1_24_1158057974.arc

● 2. 현재 아카이브파일을 압축해서 백업

  • 만료된 아카이브 리스트 확인
RMAN> list expired archivelog all;

specification does not match any archived log in the repository
  • 압축해서 현재 아카이브파일 백업하고 물리적인 아카이브 delete
RMAN> backup as compressed backupset archivelog all delete input tag='archivelog backup';

● 3. 백업된 아카이브 로그 확인

RMAN> list backup of archivelog all;


List of Backup Sets
===================


BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
12      2.17M      DISK        00:00:01     14-JAN-24
        BP Key: 12   Status: AVAILABLE  Compressed: YES  Tag: ARCHIVELOG BACKUP
        Piece Name: /u01/app/oracle/fast_recovery_area/ORA11G/backupset/2024_01_14/o1_mf_annnn_ARCHIVELOG_BACKUP_lt7tfdx3_.bkp

  List of Archived Logs in backup set 12
  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time
  ---- ------- ---------- --------- ---------- ---------
  1    21      1745651    14-JAN-24 1749363    14-JAN-24
  1    22      1749363    14-JAN-24 1749497    14-JAN-24
  1    23      1749497    14-JAN-24 1749500    14-JAN-24
  1    24      1749500    14-JAN-24 1749503    14-JAN-24
  1    25      1749503    14-JAN-24 1750206    14-JAN-24

■ 백업 삭제

▶ 필요없는 백업본 삭제

  • 테이블스페이스 삭제
drop tablespace insa_tbs including contents and datafiles;
  • 테이블스페이스, datafile 확인
select tablespace_name, file_name, bytes/1024/1024 mb from dba_data_files;
----
USERS	/u01/app/oracle/oradata/ora11g/users01.dbf	8.75
SYSAUX	/u01/app/oracle/oradata/ora11g/sysaux01.dbf	680
SYSTEM	/u01/app/oracle/oradata/ora11g/system01.dbf	750
HRM_TBS	/u01/app/oracle/oradata/ora11g/hrm_tbs01.dbf	10
EXAMPLE	/u01/app/oracle/oradata/ora11g/example01.dbf	330
UNDOTBS	/u01/app/oracle/oradata/ora11g/undotbs01.dbf	74.875
  • 정책상 필요없는 백업정보, 아카이브 정보 확인
RMAN> report obsolete;
  • 정책상 필요 없는 백업 정보 삭제
RMAN> delete obsolete;
  • 백업 리스트 확인
RMAN> list backup;

List of Backup Sets
===================


BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
1       Full    1.22G      DISK        00:00:29     14-JAN-24
        BP Key: 1   Status: AVAILABLE  Compressed: NO  Tag: TAG20240114T163728
        Piece Name: /u01/app/oracle/fast_recovery_area/ORA11G/backupset/2024_01_14/o1_mf_nnndf_TAG20240114T163728_lt73srk7_.bkp
  List of Datafiles in backup set 1
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/system01.dbf
  2       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/sysaux01.dbf
  3       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/hrm_tbs01.dbf
  4       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/users01.dbf
  5       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/example01.dbf
  6       Full 1680006    14-JAN-24 /u01/app/oracle/oradata/ora11g/undotbs01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
7       Full    9.36M      DISK        00:00:01     14-JAN-24
        BP Key: 7   Status: AVAILABLE  Compressed: NO  Tag: TAG20240114T202309
        Piece Name: /u01/app/oracle/fast_recovery_area/ORA11G/autobackup/2024_01_14/o1_mf_s_1158265389_lt7k0xy2_.bkp
  SPFILE Included: Modification time: 14-JAN-24
  SPFILE db_unique_name: ORA11G
  Control File Included: Ckp SCN: 1700794      Ckp time: 14-JAN-24

▶ 아카이브 백업정보 체크,삭제

  • 컨트롤 파일이 기억하고 있는 아카이브 정보와 실제 물리적으로 아카이브 정보를 체크
RMAN> crosscheck archivelog all;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=25 device type=DISK
validation failed for archived log
archived log file name=/home/oracle/arch1/arch_1_3_1157971653.arc RECID=1 STAMP=1158004994
validation failed for archived log
archived log file name=/home/oracle/arch2/arch_1_3_1157971653.arc RECID=2 STAMP=1158004994
validation failed for archived log
archived log file name=/home/oracle/arch1/arch_1_4_1157971653.arc RECID=3 STAMP=1158016539
validation failed for archived log
archived log file name=/home/oracle/arch2/arch_1_4_1157971653.arc RECID=4 STAMP=1158016539
validation failed for archived log
archived log file name=/home/oracle/arch1/arch_1_5_1157971653.arc RECID=5 STAMP=1158022147
validation failed for archived log
archived log file name=/home/oracle/arch2/arch_1_5_1157971653.arc RECID=6 STAMP=1158022147
validation failed for archived log
archived log file name=/home/oracle/arch1/arch_1_1_1158049053.arc RECID=7 STAMP=1158049110
validation failed for archived log
archived log file name=/home/oracle/arch2/arch_1_1_1158049053.arc RECID=8 STAMP=1158049110
validation succeeded for archived log
archived log file name=/home/oracle/arch1/arch_1_6_1158057974.arc RECID=14 STAMP=1158253721
validation succeeded for archived log
archived log file name=/home/oracle/arch1/arch_1_7_1158057974.arc RECID=15 STAMP=1158253721
validation succeeded for archived log
archived log file name=/home/oracle/arch1/arch_1_8_1158057974.arc RECID=16 STAMP=1158253723
validation succeeded for archived log
archived log file name=/home/oracle/arch1/arch_1_9_1158057974.arc RECID=17 STAMP=1158255312
validation succeeded for archived log
archived log file name=/home/oracle/arch1/arch_1_10_1158057974.arc RECID=18 STAMP=1158255313
validation succeeded for archived log
archived log file name=/home/oracle/arch1/arch_1_11_1158057974.arc RECID=19 STAMP=1158255314
validation succeeded for archived log
archived log file name=/home/oracle/arch1/arch_1_12_1158057974.arc RECID=20 STAMP=1158257127
validation succeeded for archived log
archived log file name=/home/oracle/arch1/arch_1_13_1158057974.arc RECID=21 STAMP=1158257171
Crosschecked 16 objects
  • 필요없는 아카이브 정보 출력
RMAN> list expired archivelog all;
List of Archived Log Copies for database with db_unique_name ORA11G
=====================================================================

Key     Thrd Seq     S Low Time
------- ---- ------- - ---------
1       1    3       X 11-JAN-24
        Name: /home/oracle/arch1/arch_1_3_1157971653.arc

2       1    3       X 11-JAN-24
        Name: /home/oracle/arch2/arch_1_3_1157971653.arc

3       1    4       X 11-JAN-24
        Name: /home/oracle/arch1/arch_1_4_1157971653.arc

4       1    4       X 11-JAN-24
        Name: /home/oracle/arch2/arch_1_4_1157971653.arc

5       1    5       X 11-JAN-24
        Name: /home/oracle/arch1/arch_1_5_1157971653.arc

6       1    5       X 11-JAN-24
        Name: /home/oracle/arch2/arch_1_5_1157971653.arc

7       1    1       X 12-JAN-24
        Name: /home/oracle/arch1/arch_1_1_1158049053.arc

8       1    1       X 12-JAN-24
        Name: /home/oracle/arch2/arch_1_1_1158049053.arc
  • 필요없는 아카이브 정보 삭제
RMAN> delete expired archivelog all;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=25 device type=DISK
List of Archived Log Copies for database with db_unique_name ORA11G
=====================================================================

Key     Thrd Seq     S Low Time
------- ---- ------- - ---------
1       1    3       X 11-JAN-24
        Name: /home/oracle/arch1/arch_1_3_1157971653.arc

2       1    3       X 11-JAN-24
        Name: /home/oracle/arch2/arch_1_3_1157971653.arc

3       1    4       X 11-JAN-24
        Name: /home/oracle/arch1/arch_1_4_1157971653.arc

4       1    4       X 11-JAN-24
        Name: /home/oracle/arch2/arch_1_4_1157971653.arc

5       1    5       X 11-JAN-24
        Name: /home/oracle/arch1/arch_1_5_1157971653.arc

6       1    5       X 11-JAN-24
        Name: /home/oracle/arch2/arch_1_5_1157971653.arc

7       1    1       X 12-JAN-24
        Name: /home/oracle/arch1/arch_1_1_1158049053.arc

8       1    1       X 12-JAN-24
        Name: /home/oracle/arch2/arch_1_1_1158049053.arc


Do you really want to delete the above objects (enter YES or NO)? y
deleted archived log
archived log file name=/home/oracle/arch1/arch_1_3_1157971653.arc RECID=1 STAMP=1158004994
deleted archived log
archived log file name=/home/oracle/arch2/arch_1_3_1157971653.arc RECID=2 STAMP=1158004994
deleted archived log
archived log file name=/home/oracle/arch1/arch_1_4_1157971653.arc RECID=3 STAMP=1158016539
deleted archived log
archived log file name=/home/oracle/arch2/arch_1_4_1157971653.arc RECID=4 STAMP=1158016539
deleted archived log
archived log file name=/home/oracle/arch1/arch_1_5_1157971653.arc RECID=5 STAMP=1158022147
deleted archived log
archived log file name=/home/oracle/arch2/arch_1_5_1157971653.arc RECID=6 STAMP=1158022147
deleted archived log
archived log file name=/home/oracle/arch1/arch_1_1_1158049053.arc RECID=7 STAMP=1158049110
deleted archived log
archived log file name=/home/oracle/arch2/arch_1_1_1158049053.arc RECID=8 STAMP=1158049110
Deleted 8 EXPIRED objects
  • 확인
RMAN> list expired archivelog all;

specification does not match any archived log in the repository
  • 아카이브 로그 조회
    : 과거 아카이브정보를 지울때 rman을 사용한다
    RMAN> delete expired archivelog all;
select sequence#, name from v$archived_log;
---
4	(null)
5	(null)
6	/home/oracle/arch1/arch_1_6_1158057974.arc
7	/home/oracle/arch1/arch_1_7_1158057974.arc
8	/home/oracle/arch1/arch_1_8_1158057974.arc

▶ 백업셋 삭제

  • 전체 백업셋 삭제
RMAN> delete backupset;
  • 특정한 번호의 백업셋 삭제
RMAN> delete backupset 1;
---------------
using channel ORA_DISK_1

List of Backup Pieces
BP Key  BS Key  Pc# Cp# Status      Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
1       1       1   1   AVAILABLE   DISK        /u01/app/oracle/fast_recovery_area/ORA11G/backupset/2024_01_14/o1_mf_nnndf_TAG20240114T163728_lt73srk7_.bkp

Do you really want to delete the above objects (enter YES or NO)? yes
deleted backup piece
backup piece handle=/u01/app/oracle/fast_recovery_area/ORA11G/backupset/2024_01_14/o1_mf_nnndf_TAG20240114T163728_lt73srk7_.bkp RECID=1 STAMP=1158251848
Deleted 1 objects
  • 전체 데이터파일,컨트롤파일,SPFILE 백업
RMAN> backup database;

▶ 백업 정보 체크,삭제

: 컨트롤 파일이 기억하고 있는 백업 정보와 실제 물리적으로 백업 정보를 체크

  • crosscheck copy
RMAN> crosscheck copy;

released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=25 device type=DISK
specification does not match any datafile copy in the repository
specification does not match any archived log in the repository
validation failed for control file copy
control file copy file name=/home/oracle/backup/arch/hot_20240112/control01.ctl RECID=2 STAMP=1158016454
Crosschecked 1 objects
  • 필요없는것 copy 삭제
RMAN> delete copy;

released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=25 device type=DISK
specification does not match any datafile copy in the repository
specification does not match any archived log in the repository
List of Control File Copies
===========================

Key     S Completion Time Ckp SCN    Ckp Time
------- - --------------- ---------- ---------------
2       X 11-JAN-24       1550820    11-JAN-24
        Name: /home/oracle/backup/arch/hot_20240112/control01.ctl
        Tag: TAG20240111T231414


Do you really want to delete the above objects (enter YES or NO)? y
deleted control file copy
control file copy file name=/home/oracle/backup/arch/hot_20240112/control01.ctl RECID=2 STAMP=1158016454
Deleted 1 objects
  • 필요없는 백업 확인
RMAN> report obsolete;

RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
no obsolete backups found

OS상에서만 백업 삭제하면 시스템상에서도 삭제 시켜줘야한다.

  • OS상에서 백업본 삭제
    list backup; 으로 확인후 datafile백업본 물리적으로 삭제

  • list backup 해도 물리적으로만 삭제했으므로 보인다.
    list backup

  • delete backupset 백업셋번호 : 이렇게는 안된다.

  • control파일과 백업본 일치하는지확인
    crosscheck backupset;

  • 만료된 백업 확인
    list expired backupset;

  • 만료된 백업 삭제
    delete expired backupset

  • 정책상 필요없는 백업삭제
    delete obsolete


테이블스페이스 삭제시 백업도 필요없기 때문에 삭제해줘야한다.

  • 테이블스페이스를 삭제
drop tablespace data_tbs including contents and datafiles;
  • 정책상 필요없는 백업 삭제
RMAN> delete obsolete
  • 아카이브 확인
SYS@ora11g> ! ls /home/oracle/arch1
arch_1_31_1158057974.arc  arch_1_33_1158057974.arc  arch_1_35_1158057974.arc
arch_1_32_1158057974.arc  arch_1_34_1158057974.arc

■ image copy

■ max backupset size 조정

: 백업 파일을 backupset단위로 분할해서 backup 하기 위해

  • backup set
    : 논리적 백업 파일 단위
  • backup piece
    : 물리적 백업 파일 단위
  1. configure maxsetsize to '사이즈값';
RMAN> show all;

RMAN> show maxsetsize;

RMAN configuration parameters for database with db_unique_name ORA11G are:
CONFIGURE MAXSETSIZE TO UNLIMITED; # default

RMAN> configure maxsetsize to 600m;

RMAN> show maxsetsize;

RMAN configuration parameters for database with db_unique_name ORA11G are:
CONFIGURE MAXSETSIZE TO 600 M;
  • 시스템 데이터파일보다 maxsize가 작으므로 에러
RMAN> report schema;

Report of database schema for database with db_unique_name ORA11G

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    750      SYSTEM               ***     /u01/app/oracle/oradata/ora11g/system01.dbf
  • maxsetsize 변경
RMAN> configure maxsetsize to 800m;
  1. backup database maxsetsize '사이즈값';
RMAN> backup database maxsetsize 800m;
  • maxsetsize default 값으로 변경
RMAN> configure maxsetsize clear;

■ max piece size 조정

: 백업 파일을 piece단위로 분할해서 backup 하기 위해

  • maxpiecesize 변경
RMAN> configure channel device type disk maxpiecesize 600m;

new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 600 M;
new RMAN configuration parameters are successfully stored
released channel: ORA_DISK_1
  • backup database
RMAN> backup database;
  • datafile이 3개의 backupset으로 백업받아져있다.
RMAN> list backupset;

    List of Backup Pieces for backup set 27 Copy #1
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    27      1   AVAILABLE   /u01/app/oracle/fast_recovery_area/ORA11G/backupset/2024_01_27/o1_mf_nnndf_TAG20240127T012418_lv7q5lp4_.bkp
    28      2   AVAILABLE   /u01/app/oracle/fast_recovery_area/ORA11G/backupset/2024_01_27/o1_mf_nnndf_TAG20240127T012418_lv7q5snh_.bkp
    29      3   AVAILABLE   /u01/app/oracle/fast_recovery_area/ORA11G/backupset/2024_01_27/o1_mf_nnndf_TAG20240127T012418_lv7q60no_.bkp
  • 채널 할당하여 backup
RMAN> run {
allocate channel c1 device type disk maxpiecesize 100m;
backup tablespace system;
}2> 3> 4>


RMAN> list backup of tablespace system;

■ image copy

  • 백업 copy db
RMAN> backup as copy database;
  • copy 목록
RMAN> list copy;

specification does not match any control file copy in the repository
specification does not match any archived log in the repository
List of Datafile Copies
=======================

Key     File S Completion Time Ckp SCN    Ckp Time
------- ---- - --------------- ---------- ---------------
1       1    A 27-JAN-24       1618122    27-
...
  • 테이블스페이스 단위로 list copy
RMAN> list copy of tablespace system;

List of Datafile Copies
=======================

Key     File S Completion Time Ckp SCN    Ckp Time
------- ---- - --------------- ---------- ---------------
1       1    A 27-JAN-24       1618122    27-JAN-24
        Name: /u01/app/oracle/fast_recovery_area/ORA11G/datafile/o1_mf_system_lv7qv2x0_.dbf
        Tag: TAG20240127T013546
  • current한 controlfile 백업 copy
RMAN> backup as copy current controlfile;

Starting backup at 27-JAN-24
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying current control file
output file name=/u01/app/oracle/fast_recovery_area/ORA11G/controlfile/o1_mf_TAG20240127T013936_lv7r28gt_.ctl tag=TAG20240127T013936 RECID=6 STAMP=1159321176
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 27-JAN-24

Starting Control File and SPFILE Autobackup at 27-JAN-24
piece handle=/u01/app/oracle/fast_recovery_area/ORA11G/autobackup/2024_01_27/o1_mf_s_1159321177_lv7r29ns_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 27-JAN-24
  • list copy
RMAN> list copy of controlfile;

List of Control File Copies
===========================

Key     S Completion Time Ckp SCN    Ckp Time
------- - --------------- ---------- ---------------
6       A 27-JAN-24       1618354    27-JAN-24
        Name: /u01/app/oracle/fast_recovery_area/ORA11G/controlfile/o1_mf_TAG20240127T013936_lv7r28gt_.ctl
        Tag: TAG20240127T013936
  • 이미지 copy를 이용한 복구 작업
    : 똑같다.
SYS@ora11g> ! rm /u01/app/oracle/oradata/ora11g/*.dbf

SYS@ora11g> shutdown abort

RMAN> startup mount
RMAN> restore databas;
RMAN> recover database;
RMAN> alter database open;

profile
DB 공부를 하고 있는 사람입니다. 글을 읽어주셔서 감사하고 더 좋은 글을 쓰기 위해 노력하겠습니다 :)

0개의 댓글