DATABASE(oracleDB 11g)/DBA

[Oracle DBA]ArchiveMode 에서의 Backup & Recovery-redo log

SEUNGSAMI 2019. 4. 22. 09:34
ArchiveMode 에서의 Backup & Recovery
redo log



Redo Log File의 복구
  • startup시 장애에 대한 자세한 정보가 나오지 않는다
      • alert.log파일로 확인을 해야한다.
  • Incative : DB운영은 이상이 없다(체크포인트상태)
  • Archived = NO : 순서를 건너뛰고 아카이브를 진행할 수는 없다
  • archive log mode
      • redo log file의 overwrite 조건
          • 체크포인트 완료
          • Archive 완료
LOG의 STATUS
  • CURRENT
      • LGRW가 현재 해당 그룹에 로그 정보를 기록중
  • ACTIVE
      • 기록중인 상태는 아니지만 기록된 로그 정보를 해당하는 dirty block이 아직 데이터베이스 버퍼캐시에 남아있으므로 해당 로그 그룹을 current 에 준해서 관리
      • 현재 CHECKPOINT중인 상태라고 보면 된다.
      • CURRENT -> ACTIVE -> CHECKPOINT 순으로 변경된다.
      • alter system checkpoint; 명령어를 통해 INACTIVE 상태로 강제 변경 가능
  • INACTIVE
      • 사용 대기 상태의 그룹으로서 모든 물리적인 관리 작업이 가능
  • UNUSED
      • 관리상 inactive 와 물리적으로 동일한 상태로서, 한번도 사용된적이 없는 그룹
복구실습
  • Inactive (체크포인트 완료), archive 완료
  • Inactive  (체크포인트 완료), archive 미완료
  • Current 유실 후 DB 정상 종료
  • 불완전 복구 :  Current 유실후 DB 비정상 종료 - DB Open하기 위해 current 리두 데이타 필요 : 따라서 불완전 복구 상황
      • 모든 data file Restore + Redo 적용  Current 적용하려고 할 때 cancel 하고
      • 불완전 복구이므로 resetlogs로 오픈
CASE 1:  Inactive (체크포인트 완료), archive 완료
사례1. archive 생성된 후 inactive log file이 삭제된후 db close 상태

1.  준비    ( 이미 그룹에 멤버가 하나씩이면 생략합니다)

SYS@orcl2> SELECT a.group# ,b.sequence#,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;

    GROUP#  SEQUENCE# MEMBER                                                     MB ARC STATUS
---------- ---------- -------------------------------------------------- ---------- --- ----------
         1          4 /u01/app/oracle/orcl2/redo01.log                    50 YES INACTIVE
         1          4 /u01/app/oracle/orcl2/redo01b.log                   50 YES INACTIVE
         2          5 /u01/app/oracle/orcl2/redo02b.log                   50 NO  CURRENT
         2          5 /u01/app/oracle/orcl2/redo02.log                    50 NO  CURRENT
         3          3 /u01/app/oracle/orcl2/redo03b.log                   50 YES INACTIVE
         3          3 /u01/app/oracle/orcl2/redo03.log                    50 YES INACTIVE


SYS@orcl2> save logfile
Created file logfile.sql


SYS@orcl2> alter database drop logfile member '/u01/app/oracle/orcl2/redo01b.log' ;
Database altered.


SYS@orcl2> alter database drop logfile member '/u01/app/oracle/orcl2/redo02b.log';
alter database drop logfile member '/u01/app/oracle/orcl2/redo02.log'
*
ERROR at line 1:
ORA-01609: log 2 is the current log for thread 1 - cannot drop members
ORA-00312: online log 2 thread 1: '/u01/app/oracle/orcl2/redo02.log'
ORA-00312: online log 2 thread 1: '/u01/app/oracle/orcl2/redo02b.log'


SYS@orcl2>alter database drop logfile member '/u01/app/oracle/orcl2/redo03b.log';
Database altered.


SYS@orcl2> alter system switch logfile;
System altered.


SYS@orcl2> alter database drop logfile member '/u01/app/oracle/orcl2/redo02b.log';
Database altered.


SYS@orcl2> @logfile

    GROUP#  SEQUENCE# MEMBER                                      MB ARC STATUS
---------- ---------- ----------------------------------- ---------- --- ----------------
         1          1 /u01/app/oracle/orcl2/redo01.log            50 NO  CURRENT
         2          0 /u01/app/oracle/orcl2/redo02.log            50 YES UNUSED
         3          0 /u01/app/oracle/orcl2/redo03.log            50 YES UNUSED



2. DB 작업
SYS@orcl2> create table hr.t1 ( a number);
Table created.


SYS@orcl2> insert into hr.t1 values (1);
1 row created.


SYS@orcl2> commit;
Commit complete.


SYS@orcl2> @switch
System altered.


SYS@orcl2> @switch
System altered.


SYS@orcl2> @switch
System altered.


SYS@orcl2> !ls /home/oracle/arch1
arch_1_1_1005754044.arc  arch_1_2_1005754044.arc  arch_1_3_1005754044.arc


SYS@orcl2> @logfile

    GROUP#  SEQUENCE# MEMBER                                      MB ARC STATUS
---------- ---------- ----------------------------------- ---------- --- ----------------
         1          4 /u01/app/oracle/orcl2/redo01.log            50 NO  CURRENT 
         2          2 /u01/app/oracle/orcl2/redo02.log            50 YES INACTIVE 
         3          3 /u01/app/oracle/orcl2/redo03.log            50 YES INACTIVE <- 장애발생할 대상


SYS@orcl2> insert into hr.t1 values (1); <==현재의 CURRENT LOG FILE에 쓰여진다.
1 row created.


SYS@orcl2> commit;
Commit complete.


SYS@orcl2> select * from hr.t1;

         A
----------
         1
         1

3. 로그 파일 유실
SYS@orcl2> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.


SYS@orcl2> !rm /u01/app/oracle/orcl2/redo03.log


SYS@orcl2> startup
ORACLE instance started.
Total System Global Area  431038464 bytes
Fixed Size                  1337016 bytes
Variable Size             146803016 bytes
Database Buffers          276824064 bytes
Redo Buffers                6074368 bytes
Database mounted.
ORA-03113: end-of-file on communication channel  ==> instance가 내려가 버린다.
Process ID: 7876
Session ID: 125 Serial number: 5


=============================================
Alert Log File에서 확인이 가능
Errors in file /u01/app/oracle/diag/rdbms/orcl2/orcl2/trace/orcl2_lgwr_7913.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oracle/orcl2/redo03.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/orcl2/orcl2/trace/orcl2_lgwr_7913.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oracle/orcl2/redo03.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/orcl2/orcl2/trace/orcl2_ora_7929.trc:
ORA-00313: open failed for members of log group 1 of thread
ORA-00312: online log 3 thread 1: '/u01/app/oracle/orcl2/redo03.log'
USER (ospid: 7929): terminating the instance due to error 313
ARC0: STARTING ARCH PROCESSES
Instance terminated by USER, pid = 7929
=============================================

SYS@orcl2> select status from v$instance;
ERROR:
ORA-03114: not connected to ORACLE


SYS@orcl2> startup mount
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist


SYS@orcl2> conn / as sysdba
Connected to an idle instance.


SYS@orcl2> startup mount
ORACLE instance started.
Total System Global Area  431038464 bytes
Fixed Size                  1337016 bytes
Variable Size             146803016 bytes
Database Buffers          276824064 bytes
Redo Buffers                6074368 bytes
Database mounted.


SYS@orcl2> @logfile

    GROUP#  SEQUENCE# MEMBER                                      MB ARC STATUS
---------- ---------- ----------------------------------- ---------- --- ----------------
         1          4 /u01/app/oracle/orcl2/redo01.log            50 NO  CURRENT
         2          2 /u01/app/oracle/orcl2/redo02.log            50 YES INACTIVE
         3          3 /u01/app/oracle/orcl2/redo03.log            50 YES INACTIVE


SYS@orcl2> alter database clear logfile group 3;
Database altered.


SYS@orcl2> @log

    GROUP#  SEQUENCE# STATUS           ARC    MEMBERS         MB
---------- ---------- ---------------- --- ---------- ----------
         1          4 CURRENT          NO           1         50
         3          0 UNUSED           YES          1         50
         2          2 INACTIVE         YES          1         50


SYS@orcl2> alter database open;
Database altered.


SYS@orcl2> select * from hr.t1;

         A
----------
         1
         1
-- 데이타 2건   : 데이타 유실 없다.


SYS@orcl2> drop table hr.t1;
Table dropped.


SYS@orcl2> @switch
System altered.


SYS@orcl2> /
System altered.


SYS@orcl2> /
System altered.


SYS@orcl2> /
System altered.


SYS@orcl2> @log

    GROUP#  SEQUENCE# STATUS           ARC    MEMBERS         MB
---------- ---------- ---------------- --- ---------- ----------
         1          7 INACTIVE         YES          1         50
         2          6 INACTIVE         YES          1         50
         3          8 CURRENT          NO           1         50


CASE 2: Inactive  (체크포인트 완료), archive 미완료
=> alter database clear unarchived logfile; 이후 반드시 전체 DB백업 진행
사레2. current 아닌 그룹이 삭제되고  db 는 open 상태


SYS@orcl2> @logfile

    GROUP#  SEQUENCE# MEMBER                                      MB ARC STATUS
---------- ---------- ----------------------------------- ---------- --- ----------------
         1          7 /u01/app/oracle/orcl2/redo01.log            50 YES INACTIVE
         2          9 /u01/app/oracle/orcl2/redo02.log            50 NO  CURRENT
         3          8 /u01/app/oracle/orcl2/redo03.log            50 YES INACTIVE ==> 삭제할 대상


SYS@orcl2> ! rm /u01/app/oracle/orcl2/redo03.log

SYS@orcl2> drop table hr.t1 ;
drop table hr.t1
              *
ERROR at line 1:
ORA-00942: table or view does not exist


SYS@orcl2> create table hr.t1 ( a number);
Table created.


SYS@orcl2> insert into hr.t1 values (1);
1 row created.


SYS@orcl2> commit;
Commit complete.

SYS@orcl2> @switch      [alter system switch logfile;]


SYS@orcl2> @switch


System altered.


SYS@orcl2> /


System altered.


SYS@orcl2> /


System altered.


SYS@orcl2> /


System altered.


SYS@orcl2> /
Wating..... (Hang이 발생)

*
ERROR at line 1:
ORA-01013: user requested cancel of current operation


==================================================================================================
aelrt.log
ORACLE Instance orcl - Can not allocate log, archival required--archive 미완료 상태의 리두로그 때문
ORA-00312: online log 3 thread 1: '/u01/app/oracle/orcl2/redo03.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/orcl2/orcl2/trace/orcl2_arc2_5141.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oracle/orcl2/redo03.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
==================================================================================================

SYS@orcl2> @logfile

    GROUP#  SEQUENCE# MEMBER                                      MB ARC STATUS
---------- ---------- ----------------------------------- ---------- --- ----------------
         1         13 /u01/app/oracle/orcl2/redo01.log            50 NO  CURRENT
         2         12 /u01/app/oracle/orcl2/redo02.log            50 NO  INACTIVE
         3         11 /u01/app/oracle/orcl2/redo03.log            50 NO  INACTIVE


SYS@orcl2> ! ls /u01/app/oracle/orcl2/redo03.log
ls: /u01/app/oracle/orcl2/redo03.log: No such file or directory


SYS@orcl2> ! ls /home/oracle/arch1
arch_1_10_1005754044.arc  arch_1_3_1005754044.arc  arch_1_6_1005754044.arc arch_1_9_1005754044.arc
arch_1_1_1005754044.arc   arch_1_4_1005754044.arc  arch_1_7_1005754044.arc
arch_1_2_1005754044.arc   arch_1_5_1005754044.arc  arch_1_8_1005754044.arc
==> 11번이 없는 것을 확인


SYS@orcl2> alter database clear logfile group 3;
alter database clear logfile group 3
*
ERROR at line 1:
ORA-00350: log 3 of instance orcl2 (thread 1) needs to be archived
ORA-00312: online log 3 thread 1: '/u01/app/oracle/orcl2/redo03.log'
-- ERROR 발생


SYS@orcl2> alter database clear unarchived logfile group 3;
Database altered.
-- redo log file을 삭제후 재생성


SYS@orcl2> ! ls /u01/app/oracle/orcl2/redo03.log
/u01/app/oracle/orcl2/redo03.log


SYS@orcl2> ! ls /home/oracle/arch1
arch_1_10_1005754044.arc  arch_1_2_1005754044.arc  arch_1_5_1005754044.arc arch_1_8_1005754044.arc
arch_1_12_1005754044.arc  arch_1_3_1005754044.arc  arch_1_6_1005754044.arc arch_1_9_1005754044.arc
arch_1_1_1005754044.arc   arch_1_4_1005754044.arc  arch_1_7_1005754044.arc
==> 11번이 여전히 없다.


SYS@orcl2> select * from hr.t1;

         A
----------
         1

=========================================================================
-- <주의> resetlogs로 OPEN한 DB는 반드시 이 시점에서 cold backup을 받아두어야 한다.
다음을 반드시 수행 : 전체 DB cold backup 수행
ARCHIVE  LOG  : 전체 DB 백업


SYS@orcl2> @db_list
SYS@orcl2> shutdown immediate


[orcl2:~]$ chmod 755 orcl2_backup.sh   
[orcl2:~]$ . orcl2_backup.sh             -- 전체 DB 백업


[orcl2:~]$ rm /home/oracle/arch1/* /home/oracle/arch2/*  -- 불필요한 archive log 삭제


SYS@orcl2> startup
=========================================================================


CASE 3: Current 유실 후 DB 정상 종료

3. current 그룹이 삭제된 후 db 정상적인 종료

SYS@orcl2> @log
=====================================================================================
select group#, sequence#, status, archived, members, bytes/1024/1024 mb
from v$log;
=====================================================================================
    GROUP#  SEQUENCE# STATUS           ARC    MEMBERS         MB
---------- ---------- ---------------- --- ---------- ----------
         1         13 CURRENT          NO           1         50
         2         12 INACTIVE         YES          1         50
         3          0 UNUSED           YES          1         50


SYS@orcl2> drop table hr.t1 ;
Table dropped.


SYS@orcl2> create table hr.t1 ( a number);
Table created.


SYS@orcl2> insert into hr.t1 values (1);
1 row created.


SYS@orcl2> commit;
Commit complete.


SYS@orcl2> @logfile

    GROUP#  SEQUENCE# MEMBER                                      MB ARC STATUS
---------- ---------- ----------------------------------- ---------- --- ----------------
         1         13 /u01/app/oracle/orcl2/redo01.log            50 YES ACTIVE
         2         12 /u01/app/oracle/orcl2/redo02.log            50 YES INACTIVE
         3         14 /u01/app/oracle/orcl2/redo03.log            50 NO  CURRENT ==> 삭제할 대상


SYS@orcl2> ! rm -f /u01/app/oracle/orcl2/redo03.log


SYS@orcl2> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.


SYS@orcl2> startup
ORACLE instance started.

Total System Global Area  431038464 bytes
Fixed Size                  1337016 bytes
Variable Size             146803016 bytes
Database Buffers          276824064 bytes
Redo Buffers                6074368 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 7517
Session ID: 125 Serial number: 5


==================================================================================================
aelrt.log
ARC0: STARTING ARCH PROCESSES
Errors in file /u01/app/oracle/diag/rdbms/orcl2/orcl2/trace/orcl2_ora_7574.trc:
ORA-00313: open failed for members of log group 1 of thread
ORA-00312: online log 3 thread 1: '/u01/app/oracle/orcl2/redo03.log'
USER (ospid: 7574): terminating the instance due to error 313
Instance terminated by USER, pid = 7574
==================================================================================================

SYS@orcl2> conn / as sysdba
Connected to an idle instance.
SYS@orcl2> startup mount
ORACLE instance started.
Total System Global Area  431038464 bytes
Fixed Size                  1337016 bytes
Variable Size             146803016 bytes
Database Buffers          276824064 bytes
Redo Buffers                6074368 bytes
Database mounted.


SYS@orcl2> alter database clear unarchived logfile group 3;
Database altered.


SYS@orcl2> alter database open;
Database altered.


SYS@orcl2> @logfile

    GROUP#  SEQUENCE# MEMBER                                      MB ARC STATUS
---------- ---------- ----------------------------------- ---------- --- ----------------
         1         13 /u01/app/oracle/orcl2/redo01.log            50 YES INACTIVE
         2         15 /u01/app/oracle/orcl2/redo02.log            50 NO  CURRENT
         3          0 /u01/app/oracle/orcl2/redo03.log            50 YES UNUSED


SYS@orcl2> ! ls /u01/app/oracle/orcl2/redo03.log
/u01/app/oracle/orcl2/redo03.log


SYS@orcl2> select * from hr.t1;

         A
----------
         1
-- 데이터 유실 없음

SYS@orcl2> @log

    GROUP#  SEQUENCE# STATUS           ARC    MEMBERS         MB
---------- ---------- ---------------- --- ---------- ----------
         1         13 INACTIVE         YES          1         50
         2         15 CURRENT          NO           1         50
         3          0 UNUSED           YES          1         50


SYS@orcl2> @switch
System altered.


SYS@orcl2> /
System altered.


SYS@orcl2> /
System altered.


SYS@orcl2> !ls /home/oracle/arch1
arch_1_13_1005754044.arc  arch_1_15_1005754044.arc  arch_1_16_1005754044.arc  
arch_1_17_1005754044.arc


SYS@orcl2> @log

    GROUP#  SEQUENCE# STATUS           ARC    MEMBERS         MB
---------- ---------- ---------------- --- ---------- ----------
         1         17 INACTIVE         YES          1         50
         2         18 CURRENT          NO           1         50
         3         16 INACTIVE         YES          1         50

=========================================================================
-- <주의>archive 가 일부 없기 때문에 db 전체 backup 해야 한다.
다음을 반드시 수행 : 전체 DB cold backup 수행
ARCHIVE  LOG  : 전체 DB 백업

SYS@orcl2> @db_list
SYS@orcl2> shutdown immediate

[orcl2:~]$ chmod 755 orcl2_backup.sh   
[orcl2:~]$ . orcl2_backup.sh             -- 전체 DB 백업

[orcl2:~]$ rm /home/oracle/arch1/* /home/oracle/arch2/*  -- 불필요한 archive log 삭제

SYS@orcl2> startup
=========================================================================


CASE 4: Current 유실후 DB 비정상 종료 - DB Open하기 위해 current 리두 데이타 필요 : 따라서 불완전 복구 상황
모든 data file Restore + Redo 적용  Current 적용하려고 할 때 cancel 하고
불완전 복구이므로 resetlogs로 오픈

4. current 그룹 삭제된후 db 비정상적인 종료

1) DB 작업
SYS@orcl2> @logfile

    GROUP#  SEQUENCE# MEMBER                                      MB ARC STATUS
---------- ---------- ----------------------------------- ---------- --- ----------------
         1         23 /u01/app/oracle/orcl2/redo01.log            50 NO  CURRENT <= copy_emp 로그
         2         21 /u01/app/oracle/orcl2/redo02.log            50 YES INACTIVE
         3         22 /u01/app/oracle/orcl2/redo03.log            50 YES INACTIVE


SYS@orcl2> create table hr.copy_emp as select * from hr.employees;
Table created.


SYS@orcl2> @switch
System altered.


SYS@orcl2> create table hr.copy_dept as select * from hr.departments;
Table created.


SYS@orcl2> @logfile

    GROUP#  SEQUENCE# MEMBER                                      MB ARC STATUS
---------- ---------- ----------------------------------- ---------- --- ----------------
         1         23 /u01/app/oracle/orcl2/redo01.log            50 YES INACTIVE
         2         24 /u01/app/oracle/orcl2/redo02.log            50 NO  CURRENT <== 손실 대상
         3         22 /u01/app/oracle/orcl2/redo03.log            50 YES INACTIVE


2) 장애 발생 -- current 로그의 유실
SYS@orcl2> !rm /u01/app/oracle/orcl2/redo02.log


3) Current 가 삭제된 상태에서 DB 비정상 종료된 상황이다.
SYS@orcl2> shutdown abort
ORACLE instance shut down.


4) startup 실패
SYS@orcl2> startup
ORACLE instance started.
Total System Global Area  431038464 bytes
Fixed Size                  1337016 bytes
Variable Size             146803016 bytes
Database Buffers          276824064 bytes
Redo Buffers                6074368 bytes
Database mounted.
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/app/oracle/orcl2/redo02.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3


5) mount 모드에서    clear unarchived logfile  시도 => 실패
SYS@orcl2> conn / as sysdba
Connected.


SYS@orcl2> shutdown abort
ORACLE instance shut down.


SYS@orcl2> startup mount
ORACLE instance started.
Total System Global Area  431038464 bytes
Fixed Size                  1337016 bytes
Variable Size             146803016 bytes
Database Buffers          276824064 bytes
Redo Buffers                6074368 bytes
Database mounted.


SYS@orcl2> alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 2
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance orcl2 (thread 1)
ORA-00312: online log 2 thread 1: '/u01/app/oracle/orcl2/redo02.log'


6) 불완전 복구 수행 :  전체 Data file Restore

SYS@orcl2> !cp -av  /home/oracle/backup/arch/cold/*.dbf  /u01/app/oracle/orcl2

SYS@orcl2> recover database until cancel;

ORA-00279: change 1101146 generated at 04/17/2019 11:11:14 needed for thread 1
ORA-00289: suggestion : /home/oracle/arch2/arch_1_24_1005754044.arc
ORA-00280: change 1101146 for thread 1 is in sequence #24
ORA-00278: log file '/home/oracle/arch2/arch_1_23_1005754044.arc' no longer needed for this
recovery

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

ORA-00308: cannot open archived log '/home/oracle/arch2/arch_1_24_1005754044.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3


SYS@orcl2> recover database until cancel;
ORA-00279: change 1101146 generated at 04/17/2019 11:11:14 needed for thread 1
ORA-00289: suggestion : /home/oracle/arch2/arch_1_24_1005754044.arc
ORA-00280: change 1101146 for thread 1 is in sequence #24


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
==> Cancel 할 번호를 몰라서 실패하면 다시 recover 명령 수행해서 cancel 하면 된다.



SYS@orcl2> alter database open resetlogs;
Database altered.


SYS@orcl2> @logfile

    GROUP#  SEQUENCE# MEMBER                                      MB ARC STATUS
---------- ---------- ----------------------------------- ---------- --- ----------------
         1          1 /u01/app/oracle/orcl2/redo01.log            50 NO  CURRENT
         2          0 /u01/app/oracle/orcl2/redo02.log            50 YES UNUSED
         3          0 /u01/app/oracle/orcl2/redo03.log            50 YES UNUSED


SYS@orcl2>  select count(*) from hr.copy_emp;

  COUNT(*)
----------
       107

=========================================================================
-- <주의>archive 가 일부 없기 때문에 db 전체 backup 해야 한다.
다음을 반드시 수행 : 전체 DB cold backup 수행
ARCHIVE  LOG  : 전체 DB 백업


SYS@orcl2> @db_list
SYS@orcl2> shutdown immediate


[orcl2:~]$ chmod 755 orcl2_backup.sh   
[orcl2:~]$ . orcl2_backup.sh             -- 전체 DB 백업


[orcl2:~]$ rm /home/oracle/arch1/* /home/oracle/arch2/*  -- 불필요한 archive log 삭제


SYS@orcl2> startup
=========================================================================