| # 요약 | |
| [문제1~2]  << 시나리오 21 >> 모든 데이터파일, 컨트롤파일, 리두파일 손상. 아카이브파일만 남음 << 시나리오 22 >> 백업한 control file 내용과 현재 data file 정보가 다른경우 복구 << 시나리오 23 >> Time Base Recovery : 시간을 기준으로 데이터베이스 복구  | 
|
################################################################################################### 
# Restore : All cold_20240117 
################################################################################################### 
SQL> SHUTDOWN ABORT 
! rm /home/oracle/arch1/*.* 
! cp -av /home/oracle/backup/arch/cold_20240117/*.dbf /u01/app/oracle/oradata/ora11g/ 
! cp -av /home/oracle/backup/arch/cold_20240117/*.ctl /u01/app/oracle/oradata/ora11g/ 
! cp -av /home/oracle/backup/arch/cold_20240117/*.log /u01/app/oracle/oradata/ora11g/ 
*/ 
SQL> STARTUP 
SELECT a.file#, a.name file_name, b.name tbs_name, a.status, a.checkpoint_change# 
FROM v$datafile a, v$tablespace b 
WHERE a.ts# = b.ts#; 
     FILE# FILE_NAME                                          TBS_NAME   STATUS          CHECKPOINT_CHANGE# 
---------- -------------------------------------------------- ---------- --------------- ------------------ 
         1 /u01/app/oracle/oradata/ora11g/system01.dbf        SYSTEM     SYSTEM                     1166667 
         2 /u01/app/oracle/oradata/ora11g/sysaux01.dbf        SYSAUX     ONLINE                     1166667 
         3 /u01/app/oracle/oradata/ora11g/undotbs01.dbf       UNDOTBS    ONLINE                     1166667 
         4 /u01/app/oracle/oradata/ora11g/users01.dbf         USERS      ONLINE                     1166667 
         5 /u01/app/oracle/oradata/ora11g/example01.dbf       EXAMPLE    ONLINE                     1166667 
ALTER SYSTEM ARCHIVE LOG CURRENT; 
--Thread 1 advanced to log sequence 2 (LGWR switch) 
--  Current log# 2 seq# 2 mem# 0: /u01/app/oracle/oradata/ora11g/redo02.log 
# Redo Log 
SELECT thread#,sequence#,archived,status,first_change#,first_time,next_change#,next_time 
FROM v$log; 
   THREAD#  SEQUENCE# ARCHIVED  STATUS          FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# NEXT_TIME 
---------- ---------- --------- --------------- ------------- ----------- ------------ --------- 
         1          1 YES       ACTIVE                1165188 17-JAN-24        1167018 19-JAN-24 
         1          2 NO        CURRENT               1167018 19-JAN-24     2.8147E+14 
         1          0 YES       UNUSED                      0                        0 
# Archive Log 
SELECT name,sequence#,first_change#,first_time,next_change#,next_time 
FROM v$archived_log; 
NAME                                             SEQUENCE# FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# NEXT_TIME 
----------------------------------------------- ---------- ------------- ----------- ------------ --------- 
/home/oracle/arch1/arch_1_1_1158511351.arc               1       1165188 17-JAN-24        1167018 19-JAN-24 
SQL> ! ls /home/oracle/arch* 
arch_1_1_1158511351.arc 
################################################################################################### 
[문제1] user01.dbf, contro01.ctl 파일이 삭제된 경우 복구 수행해주세요. 
################################################################################################### 
SQL> ALTER SYSTEM SWITCH LOGFILE; 
--Thread 1 advanced to log sequence 3 (LGWR switch) 
--  Current log# 3 seq# 3 mem# 0: /u01/app/oracle/oradata/ora11g/redo03.log 
--Archived Log entry 28 added for thread 1 sequence 2 ID 0xf7af1ec dest 1: 
SQL> CREATE TABLE hr.emp_01 AS SELECT * FROM hr.employees WHERE department_id = 100; 
SELECT COUNT(*) FROM hr.emp_01; 
  COUNT(*) 
---------- 
         6 
SELECT e.segment_name,f.tablespace_name, f.file_name 
FROM dba_extents e, dba_data_files f WHERE f.file_id = e.file_id 
AND e.owner = 'HR' AND e.segment_name = 'EMP_01'; 
SEGMENT_NAME           TABLESPACE_NAME FILE_NAME 
---------------------- --------------- -------------------------------------------------- 
EMP_01                 USERS           /u01/app/oracle/oradata/ora11g/users01.dbf 
# 장애 발생 
! rm /u01/app/oracle/oradata/ora11g/users01.dbf 
! rm /u01/app/oracle/oradata/ora11g/control01.ctl 
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT; 
System altered. 
--Thread 1 advanced to log sequence 4 (LGWR switch) 
--  Current log# 1 seq# 4 mem# 0: /u01/app/oracle/oradata/ora11g/redo01.log 
--Errors in file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_16299.trc: 
--ORA-00202: control file: '/u01/app/oracle/oradata/ora11g/control01.ctl' 
--ORA-27037: unable to obtain file status 
--Linux Error: 2: No such file or directory 
--Additional information: 3 
--Control file expansion from 594 blocks to 596 blocks denied by OS 
--The following controlfile record is overwritten: 
-- RECID #1 Recno 1 Record timestamp 
-- Thread=1 Seq#=49 
--  Flags: 
-- <produced by archive operation> 
-- <created by the ARCH process> 
--  Resetlogs scn and time 
--scn: 0x0000.0009b07a 
--  filename /home/oracle/arch1/arch_1_49_1154915502.arc 
--  Low 
--scn: 0x0000.00117a2e 
-- Next 
--scn: 0x0000.0011804a 
--  Block count=1680  Blocksize=512 
--Archived Log entry 29 added for thread 1 sequence 3 ID 0xf7af1ec dest 1: 
--Errors in file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_m000_16467.trc: 
--ORA-00210: cannot open the specified control file 
--ORA-00202: control file: '/u01/app/oracle/oradata/ora11g/control01.ctl' 
--ORA-27041: unable to open file 
--Linux Error: 2: No such file or directory 
--Additional information: 3 
SQL> ALTER SYSTEM SWITCH LOGFILE; 
System altered. 
--Thread 1 advanced to log sequence 5 (LGWR switch) 
--  Current log# 2 seq# 5 mem# 0: /u01/app/oracle/oradata/ora11g/redo02.log 
--Errors in file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_arc0_16301.trc: 
--ORA-00202: control file: '/u01/app/oracle/oradata/ora11g/control01.ctl' 
--ORA-27037: unable to obtain file status 
--Linux Error: 2: No such file or directory 
--Additional information: 3 
--Control file expansion from 594 blocks to 596 blocks denied by OS 
--The following controlfile record is overwritten: 
-- RECID #2 Recno 2 Record timestamp 
-- Thread=1 Seq#=49 
--  Flags: 
-- <produced by archive operation> 
-- <created by the ARCH process> 
--  Resetlogs scn and time 
--scn: 0x0000.0009b07a 
--  filename /home/oracle/arch2/arch_1_49_1154915502.arc 
--  Low 
--scn: 0x0000.00117a2e 
-- 01/15/24 04:01:00 
-- Next 
--scn: 0x0000.0011804a 
--  Block count=1680  Blocksize=512 
--Archived Log entry 30 added for thread 1 sequence 4 ID 0xf7af1ec dest 1: 
--Errors in file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_m000_16565.trc: 
--ORA-00210: cannot open the specified control file 
--ORA-00202: control file: '/u01/app/oracle/oradata/ora11g/control01.ctl' 
--ORA-27041: unable to open file 
--Linux Error: 2: No such file or directory 
--Additional information: 3 
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; 
ORA-00210: cannot open the specified control file 
ORA-00202: control file: '/u01/app/oracle/oradata/ora11g/control01.ctl' 
ORA-27041: unable to open file 
Linux Error: 2: No such file or directory 
Additional information: 3 
SQL> ! ls /u01/app/oracle/oradata/ora11g/ 
data01.dbf  example01.dbf  insa_tbs01.dbf  redo01.log  redo02.log  redo03.log   
sysaux01.dbf  system01.dbf  temp01.dbf  undotbs01.dbf 
SQL> ! ls /home/oracle/arch* 
arch_1_1_1158511351.arc  arch_1_2_1158511351.arc  arch_1_3_1158511351.arc  arch_1_4_1158511351.arc 
SQL> SELECT status FROM v$instance; 
STATUS 
--------------- 
OPEN 
SQL> SHUTDOWN ABORT 
! cp -av /home/oracle/backup/arch/cold_20240117/users01.dbf /u01/app/oracle/oradata/ora11g/ 
! cp -av /home/oracle/backup/arch/cold_20240117/*.ctl /u01/app/oracle/oradata/ora11g/ 
*/ 
SQL> STARTUP MOUNT 
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE 
ORA-00279: change 1166664 generated at 01/17/2024 16:57:54 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_1_1158511351.arc 
ORA-00280: change 1166664 for thread 1 is in sequence #1 
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} 
AUTO 
ORA-00279: change 1167236 generated at 01/19/2024 16:30:51 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_2_1158511351.arc 
ORA-00280: change 1167236 for thread 1 is in sequence #2 
ORA-00278: log file '/home/oracle/arch1/arch_1_1_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167402 generated at 01/19/2024 16:36:34 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_3_1158511351.arc 
ORA-00280: change 1167402 for thread 1 is in sequence #3 
ORA-00278: log file '/home/oracle/arch1/arch_1_2_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167451 generated at 01/19/2024 16:37:43 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_4_1158511351.arc 
ORA-00280: change 1167451 for thread 1 is in sequence #4 
ORA-00278: log file '/home/oracle/arch1/arch_1_3_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167669 generated at 01/19/2024 16:43:03 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_5_1158511351.arc 
ORA-00280: change 1167669 for thread 1 is in sequence #5 
ORA-00278: log file '/home/oracle/arch1/arch_1_4_1158511351.arc' no longer needed for this recovery 
ORA-00308: cannot open archived log '/home/oracle/arch1/arch_1_5_1158511351.arc' 
ORA-27037: unable to obtain file status 
Linux Error: 2: No such file or directory 
Additional information: 3 
>> seq#5 = current 상태 = 아카이브 미생성 = redo log file 적용 
SQL> recover database using backup controlfile 
ORA-00279: change 1167669 generated at 01/19/2024 16:43:03 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_5_1158511351.arc 
ORA-00280: change 1167669 for thread 1 is in sequence #5 
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} 
/u01/app/oracle/oradata/ora11g/redo02.log 
Log applied. 
Media recovery complete. 
SQL> ALTER DATABASE OPEN RESETLOGS; 
SELECT COUNT(*) FROM hr.emp_01; 
  COUNT(*) 
---------- 
         6 
SELECT a.file#, a.name file_name, b.name tbs_name, a.status, a.checkpoint_change# 
FROM v$datafile a, v$tablespace b 
WHERE a.ts# = b.ts#; 
     FILE# FILE_NAME                                          TBS_NAME   STATUS          CHECKPOINT_CHANGE# 
---------- -------------------------------------------------- ---------- --------------- ------------------ 
         1 /u01/app/oracle/oradata/ora11g/system01.dbf        SYSTEM     SYSTEM                     1168098 
         2 /u01/app/oracle/oradata/ora11g/sysaux01.dbf        SYSAUX     ONLINE                     1168098 
         3 /u01/app/oracle/oradata/ora11g/undotbs01.dbf       UNDOTBS    ONLINE                     1168098 
         4 /u01/app/oracle/oradata/ora11g/users01.dbf         USERS      ONLINE                     1168098 
         5 /u01/app/oracle/oradata/ora11g/example01.dbf       EXAMPLE    ONLINE                     1168098 
SELECT thread#,sequence#,archived,status,first_change#,first_time,next_change#,next_time 
FROM v$log; 
   THREAD#  SEQUENCE# ARCHIVED  STATUS          FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# NEXT_TIME 
---------- ---------- --------- --------------- ------------- ----------- ------------ --------- 
         1          1 NO        CURRENT               1168095 19-JAN-24     2.8147E+14 
         1          0 YES       UNUSED                      0                        0 
         1          0 YES       UNUSED                      0                        0 
################################################################################################### 
# Restore : All cold_20240117 
################################################################################################### 
[문제2] user01.dbf, contro01.ctl, Inactive redo log 파일이 삭제된 경우 복구 수행해주세요. 
################################################################################################### 
SQL> CREATE TABLE hr.emp_19 AS SELECT * FROM hr.employees; 
SELECT COUNT(*) FROM hr.emp_19; 
  COUNT(*) 
---------- 
       107 
SELECT e.segment_name,f.tablespace_name, f.file_name  
FROM dba_extents e, dba_data_files f WHERE f.file_id = e.file_id 
AND e.segment_name = 'EMP_19' AND e.owner = 'HR'; 
SEGMENT_NAME           TABLESPACE_NAME FILE_NAME 
---------------------- --------------- -------------------------------------------------- 
EMP_19                 USERS           /u01/app/oracle/oradata/ora11g/users01.dbf 
ALTER SYSTEM SWITCH LOGFILE; 
ALTER SYSTEM SWITCH LOGFILE; 
ALTER SYSTEM SWITCH LOGFILE; 
--Thread 1 advanced to log sequence 5 (LGWR switch) 
--  Current log# 2 seq# 5 mem# 0: /u01/app/oracle/oradata/ora11g/redo02.log 
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 ARCHIVED  STATUS 
---------- ---------- -------------------------------------------------- ---------- --------- --------------- 
         1          4 /u01/app/oracle/oradata/ora11g/redo01.log                  50 YES       INACTIVE 
         2          5 /u01/app/oracle/oradata/ora11g/redo02.log                  50 NO        CURRENT 
         3          3 /u01/app/oracle/oradata/ora11g/redo03.log                  50 YES       INACTIVE 
# 장애 발생 
! rm /u01/app/oracle/oradata/ora11g/users01.dbf 
! rm /u01/app/oracle/oradata/ora11g/control01.ctl 
! rm /u01/app/oracle/oradata/ora11g/redo01.log 
! rm /u01/app/oracle/oradata/ora11g/redo03.log 
SQL> ALTER SYSTEM SWITCH LOGFILE; 
--Thread 1 advanced to log sequence 6 (LGWR switch) 
--  Current log# 3 seq# 6 mem# 0: /u01/app/oracle/oradata/ora11g/redo03.log 
SQL> SHUTDOWN IMMEDIATE 
ORA-00210: cannot open the specified control file 
ORA-00202: control file: '/u01/app/oracle/oradata/ora11g/control01.ctl' 
ORA-27041: unable to open file 
Linux Error: 2: No such file or directory 
Additional information: 3 
 SQL> ! ls /u01/app/oracle/oradata/ora11g 
data01.dbf  example01.dbf  insa_tbs01.dbf  redo02.log  sysaux01.dbf  system01.dbf  temp01.dbf  undotbs01.dbf 
SQL> ! ls /home/oracle/arch1 
arch_1_1_1158511351.arc  arch_1_2_1158511351.arc  arch_1_3_1158511351.arc  arch_1_4_1158511351.arc   
arch_1_5_1158511351.arc 
SQL> SHUTDOWN ABORT 
! cp -av /home/oracle/backup/arch/cold_20240117/*.ctl /u01/app/oracle/oradata/ora11g/ 
! cp -av /home/oracle/backup/arch/cold_20240117/users01.dbf /u01/app/oracle/oradata/ora11g/ 
*/ 
SQL> STARTUP MOUNT 
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE 
ORA-00279: change 1166664 generated at 01/17/2024 16:57:54 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_1_1158511351.arc 
ORA-00280: change 1166664 for thread 1 is in sequence #1 
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} 
AUTO 
ORA-00279: change 1167018 generated at 01/19/2024 16:59:24 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_2_1158511351.arc 
ORA-00280: change 1167018 for thread 1 is in sequence #2 
ORA-00278: log file '/home/oracle/arch1/arch_1_1_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167423 generated at 01/19/2024 17:03:31 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_3_1158511351.arc 
ORA-00280: change 1167423 for thread 1 is in sequence #3 
ORA-00278: log file '/home/oracle/arch1/arch_1_2_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167443 generated at 01/19/2024 17:04:19 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_4_1158511351.arc 
ORA-00280: change 1167443 for thread 1 is in sequence #4 
ORA-00278: log file '/home/oracle/arch1/arch_1_3_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167448 generated at 01/19/2024 17:04:28 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_5_1158511351.arc 
ORA-00280: change 1167448 for thread 1 is in sequence #5 
ORA-00278: log file '/home/oracle/arch1/arch_1_4_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167678 generated at 01/19/2024 17:10:22 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_6_1158511351.arc 
ORA-00280: change 1167678 for thread 1 is in sequence #6 
ORA-00278: log file '/home/oracle/arch1/arch_1_5_1158511351.arc' no longer needed for this recovery 
ORA-00308: cannot open archived log '/home/oracle/arch1/arch_1_6_1158511351.arc' 
ORA-27037: unable to obtain file status 
Linux Error: 2: No such file or directory 
Additional information: 3 
>> seq#3 = redo03.log 인데 파일 삭제된 상태 = 복구불가 
SQL> RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE 
ORA-00279: change 1167678 generated at 01/19/2024 17:10:22 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_6_1158511351.arc 
ORA-00280: change 1167678 for thread 1 is in sequence #6 
17:19:39 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} 
CANCEL 
Media recovery cancelled. 
SQL> ALTER DATABASE OPEN RESETLOGS; 
SELECT COUNT(*) FROM hr.emp_19; 
  COUNT(*) 
---------- 
       107 
################################################################################################### 
# Restore : All cold_20240117 
################################################################################################### 
<< 시나리오 21 >> 모든 데이터파일, 컨트롤파일, 리두파일 손상. 아카이브파일만 남음 
################################################################################################### 
- 어쨌든 리두 파일 손상  
    > Restore : DataFile, ControlFile  
    > Recover : ArchiveLog  
    > Resetlogs 
CREATE TABLE hr.new_20240119 AS SELECT * FROM hr.employees; 
SELECT COUNT(*) FROM hr.new_20240119; 
  COUNT(*) 
---------- 
       107 
ALTER SYSTEM SWITCH LOGFILE; 
ALTER SYSTEM SWITCH LOGFILE; 
ALTER SYSTEM SWITCH LOGFILE; 
--Thread 1 advanced to log sequence 5 (LGWR switch) 
--  Current log# 2 seq# 5 mem# 0: /u01/app/oracle/oradata/ora11g/redo02.log 
# 장애발생 
! rm /u01/app/oracle/oradata/ora11g/*.dbf 
! rm /u01/app/oracle/oradata/ora11g/*.ctl 
! rm /u01/app/oracle/oradata/ora11g/*.log 
*/ 
SQL> conn hr/hr 
ORA-00604: error occurred at recursive SQL level 2 
ORA-01116: error in opening database file 1 
ORA-01110: data file 1: '/u01/app/oracle/oradata/ora11g/system01.dbf' 
ORA-27041: unable to open file 
Linux Error: 2: No such file or directory 
Additional information: 3 
Warning: You are no longer connected to ORACLE. 
--Errors in file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_m000_12518.trc: 
--ORA-00210: cannot open the specified control file 
--ORA-00202: control file: '/u01/app/oracle/oradata/ora11g/control01.ctl' 
--ORA-27041: unable to open file 
--Linux Error: 2: No such file or directory 
--Additional information: 3 
SQL> SELECT status FROM v$instance; 
SP2-0640: Not connected 
SQL> conn / as sysdba 
SQL> shutdown abort 
! cp -av /home/oracle/backup/arch/cold_20240117/*.dbf /u01/app/oracle/oradata/ora11g/ 
! cp -av /home/oracle/backup/arch/cold_20240117/*.ctl /u01/app/oracle/oradata/ora11g/ 
*/ 
SQL> startup mount 
SQL> recover database until cancel using backup controlfile 
ORA-00279: change 1166664 generated at 01/17/2024 16:57:54 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_1_1158511351.arc 
ORA-00280: change 1166664 for thread 1 is in sequence #1 
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} 
AUTO 
ORA-00279: change 1167008 generated at 01/19/2024 17:26:03 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_2_1158511351.arc 
ORA-00280: change 1167008 for thread 1 is in sequence #2 
ORA-00278: log file '/home/oracle/arch1/arch_1_1_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167301 generated at 01/19/2024 17:28:20 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_3_1158511351.arc 
ORA-00280: change 1167301 for thread 1 is in sequence #3 
ORA-00278: log file '/home/oracle/arch1/arch_1_2_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167305 generated at 01/19/2024 17:28:23 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_4_1158511351.arc 
ORA-00280: change 1167305 for thread 1 is in sequence #4 
ORA-00278: log file '/home/oracle/arch1/arch_1_3_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167308 generated at 01/19/2024 17:28:27 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_5_1158511351.arc 
ORA-00280: change 1167308 for thread 1 is in sequence #5 
ORA-00278: log file '/home/oracle/arch1/arch_1_4_1158511351.arc' no longer needed for this recovery 
ORA-00308: cannot open archived log '/home/oracle/arch1/arch_1_5_1158511351.arc' 
ORA-27037: unable to obtain file status 
Linux Error: 2: No such file or directory 
Additional information: 3 
SQL> recover database until cancel using backup controlfile 
ORA-00279: change 1167308 generated at 01/19/2024 17:28:27 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_5_1158511351.arc 
ORA-00280: change 1167308 for thread 1 is in sequence #5 
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} 
CANCEL 
Media recovery cancelled. 
SQL> ALTER DATABASE OPEN RESETLOGS; 
--... 
--Clearing online redo logfile 1 /u01/app/oracle/oradata/ora11g/redo01.log 
--Clearing online log 1 of thread 1 sequence number 1 
--Clearing online redo logfile 1 complete 
--Online log /u01/app/oracle/oradata/ora11g/redo01.log: Thread 1 Group 1 was previously cleared 
--... 
--Thread 1 opened at log sequence 1 
--  Current log# 1 seq# 1 mem# 0: /u01/app/oracle/oradata/ora11g/redo01.log 
--... 
SQL> ! ls /u01/app/oracle/oradata/ora11g/ 
control01.ctl  example01.dbf  redo01.log  redo02.log  redo03.log   
sysaux01.dbf  system01.dbf  temp01.dbf  undotbs01.dbf  users01.dbf 
select count(*) from hr.new_20240119; 
  COUNT(*) 
---------- 
       107 
################################################################################################### 
# Restore : All cold_20240117 
################################################################################################### 
<< 시나리오 22 >> 백업한 control file 내용과 현재 data file 정보가 다른경우 복구 
################################################################################################### 
- 백업 이후 테이블스페이스 및 데이터파일의 추가 삭제 등 정보가 변경된 경우 
> cp ctl 
> db mount 
> recovery > current redo log file 적용 > 변경된 datafile 오류 발생 
> controlfile to trace 또는 v$datafile 여기서 깨진 파일 주소 체크 > rename 
> v$datafile 수정여부 체크 
> recovery > current redo log file 다시 적용 
> DB open 
참고) 시나리오 17 : 테이블스페이스 및 데이터파일의 추가 삭제 등 정보 변경이 없을 경우 
> cp ctl > db mount > controlfile to trace > db open > add tempfile 
CREATE TABLE hr.emp_20 AS SELECT * FROM hr.employees WHERE department_id = 20; 
SELECT COUNT(*) FROM hr.emp_20; 
  COUNT(*) 
---------- 
         2 
alter system switch logfile; 
alter system switch logfile; 
alter system switch logfile; 
--Thread 1 advanced to log sequence 5 (LGWR switch) 
--  Current log# 2 seq# 5 mem# 0: /u01/app/oracle/oradata/ora11g/redo02.log 
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 ARCHIVED  STATUS 
---------- ---------- -------------------------------------------------- ---------- --------- --------------- 
         1          4 /u01/app/oracle/oradata/ora11g/redo01.log                  50 YES       INACTIVE 
         2          5 /u01/app/oracle/oradata/ora11g/redo02.log                  50 NO        CURRENT 
         3          3 /u01/app/oracle/oradata/ora11g/redo03.log                  50 YES       INACTIVE 
SELECT name,sequence#,first_change#,first_time,next_change#,next_time 
FROM v$archived_log; 
NAME                                             SEQUENCE# FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# NEXT_TIME 
----------------------------------------------- ---------- ------------- ----------- ------------ --------- 
/home/oracle/arch1/arch_1_1_1158511351.arc               1       1165188 17-JAN-24        1167009 19-JAN-24 
/home/oracle/arch1/arch_1_2_1158511351.arc               2       1167009 19-JAN-24        1167311 19-JAN-24 
/home/oracle/arch1/arch_1_3_1158511351.arc               3       1167311 19-JAN-24        1167314 19-JAN-24 
/home/oracle/arch1/arch_1_4_1158511351.arc               4       1167314 19-JAN-24        1167317 19-JAN-24 
SQL> ! ls /home/oracle/arch1 
arch_1_1_1158511351.arc  arch_1_2_1158511351.arc  arch_1_3_1158511351.arc  arch_1_4_1158511351.arc 
CREATE TABLESPACE data_tbs 
    DATAFILE '/u01/app/oracle/oradata/ora11g/data01.dbf' SIZE 5M 
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M 
    SEGMENT SPACE MANAGEMENT AUTO; 
SELECT a.file#, a.name file_name, b.name tbs_name, a.status, a.checkpoint_change# 
FROM v$datafile a, v$tablespace b 
WHERE a.ts# = b.ts#; 
     FILE# FILE_NAME                                          TBS_NAME   STATUS          CHECKPOINT_CHANGE# 
---------- -------------------------------------------------- ---------- --------------- ------------------ 
         1 /u01/app/oracle/oradata/ora11g/system01.dbf        SYSTEM     SYSTEM                     1167317 
         2 /u01/app/oracle/oradata/ora11g/sysaux01.dbf        SYSAUX     ONLINE                     1167317 
         3 /u01/app/oracle/oradata/ora11g/undotbs01.dbf       UNDOTBS    ONLINE                     1167317 
         4 /u01/app/oracle/oradata/ora11g/users01.dbf         USERS      ONLINE                     1167317 
         5 /u01/app/oracle/oradata/ora11g/example01.dbf       EXAMPLE    ONLINE                     1167317 
         6 /u01/app/oracle/oradata/ora11g/data01.dbf          DATA_TBS   ONLINE                     1167366 
ALTER SYSTEM SWITCH LOGFILE; 
--Thread 1 advanced to log sequence 6 (LGWR switch) 
--  Current log# 3 seq# 6 mem# 0: /u01/app/oracle/oradata/ora11g/redo03.log 
CREATE TABLE hr.emp_50 TABLESPACE data_tbs 
    AS SELECT * FROM hr.employees WHERE department_id = 20; 
SELECT COUNT(*) FROM hr.emp_50; 
  COUNT(*) 
---------- 
         2 
SELECT e.segment_name,f.tablespace_name, f.file_name 
FROM dba_extents e, dba_data_files f WHERE f.file_id = e.file_id 
AND e.owner = 'HR' AND e.segment_name IN ('EMP_20','EMP_50'); 
SEGMENT_NAME           TABLESPACE_NAME FILE_NAME 
---------------------- --------------- -------------------------------------------------- 
EMP_20                 USERS           /u01/app/oracle/oradata/ora11g/users01.dbf 
EMP_50                 DATA_TBS        /u01/app/oracle/oradata/ora11g/data01.dbf 
# DB 작업 중 정상 종료 
SQL> SHUTDOWN IMMEDIATE 
  
# 장애 발생 
! rm /u01/app/oracle/oradata/ora11g/control01.ctl 
SQL> STARTUP 
ORACLE instance started. 
ORA-00205: error in identifying control file, check alert log for more info 
--... 
--ORA-00210: cannot open the specified control file 
--ORA-00202: control file: '/u01/app/oracle/oradata/ora11g/control01.ctl' 
--ORA-27037: unable to obtain file status 
--Linux Error: 2: No such file or directory 
--Additional information: 3 
--ORA-205 signalled during: ALTER DATABASE   MOUNT... 
SQL> SELECT status FROM v$instance; 
STATUS 
--------------- 
STARTED 
SQL> SHUTDOWN ABORT 
SQL> ! ls /u01/app/oracle/oradata/ora11g/ 
data01.dbf  example01.dbf  redo01.log  redo02.log  redo03.log  sysaux01.dbf   
system01.dbf  temp01.dbf  undotbs01.dbf  users01.dbf 
# Restore 
! cp -av /home/oracle/backup/arch/cold_20240117/*.ctl /u01/app/oracle/oradata/ora11g/ 
*/ 
SQL> STARTUP MOUNT 
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE 
ORA-00279: change 1166664 generated at 01/17/2024 16:42:31 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_1_1158511351.arc 
ORA-00280: change 1166664 for thread 1 is in sequence #1 
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} 
AUTO 
ORA-00279: change 1167009 generated at 01/19/2024 18:00:00 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_2_1158511351.arc 
ORA-00280: change 1167009 for thread 1 is in sequence #2 
ORA-00278: log file '/home/oracle/arch1/arch_1_1_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167311 generated at 01/19/2024 18:01:13 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_3_1158511351.arc 
ORA-00280: change 1167311 for thread 1 is in sequence #3 
ORA-00278: log file '/home/oracle/arch1/arch_1_2_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167314 generated at 01/19/2024 18:01:16 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_4_1158511351.arc 
ORA-00280: change 1167314 for thread 1 is in sequence #4 
ORA-00278: log file '/home/oracle/arch1/arch_1_3_1158511351.arc' no longer needed for this recovery 
ORA-00279: change 1167317 generated at 01/19/2024 18:01:19 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_5_1158511351.arc 
ORA-00280: change 1167317 for thread 1 is in sequence #5 
ORA-00278: log file '/home/oracle/arch1/arch_1_4_1158511351.arc' no longer needed for this recovery 
ORA-00283: recovery session canceled due to errors 
ORA-01244: unnamed datafile(s) added to control file by media recovery 
ORA-01110: data file 6: '/u01/app/oracle/oradata/ora11g/data01.dbf' 
ORA-01112: media recovery not started 
>> 오류로 인해 복구 세션이 취소되었습니다. 
>> 미디어 복구에 의해 제어 파일에 명명되지 않은 데이터 파일이 추가되었습니다 
>> 미디어 복구가 시작되지 않았습니다 
>> Recovoery 시도 후에 확인가능하다. 
>> 6번 DataFile에 대한 Control File 정보와 Data File 정보가 달라 발생 > Data File을 확인해보자 
방법 1. v$datafile 
SELECT a.file#, a.name file_name, b.name tbs_name, a.status, a.checkpoint_change# 
FROM v$datafile a, v$tablespace b 
WHERE a.ts# = b.ts#; 
     FILE# FILE_NAME                                          TBS_NAME   STATUS          CHECKPOINT_CHANGE# 
---------- -------------------------------------------------- ---------- --------------- ------------------ 
         1 /u01/app/oracle/oradata/ora11g/system01.dbf        SYSTEM     SYSTEM                     1166664 
         2 /u01/app/oracle/oradata/ora11g/sysaux01.dbf        SYSAUX     ONLINE                     1166664 
         4 /u01/app/oracle/oradata/ora11g/users01.dbf         USERS      ONLINE                     1166664 
         5 /u01/app/oracle/oradata/ora11g/example01.dbf       EXAMPLE    ONLINE                     1166664 
         3 /u01/app/oracle/oradata/ora11g/undotbs01.dbf       UNDOTBS    ONLINE                     1166664 
         6 /u01/app/oracle/product/11.2.0.4/db_1/dbs/UNNAMED0 DATA_TBS   RECOVER                    1167365 
           0006 
방법 2. ControlFile To Trace 
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/home/oracle/20240119.spl'; 
SQL> ! vi /home/oracle/20240119.spl 
Set #1. NORESETLOGS case > DATAFILE 목록 
'/u01/app/oracle/product/11.2.0.4/db_1/dbs/UNNAMED00006' 
>> 컨트롤 파일이 가지고 있는 Data File 6 의 정보 > Rename 
ALTER DATABASE RENAME FILE '/u01/app/oracle/product/11.2.0.4/db_1/dbs/UNNAMED00006' 
                        TO '/u01/app/oracle/oradata/ora11g/data01.dbf'; 
SELECT a.file#, a.name file_name, b.name tbs_name, a.status, a.checkpoint_change# 
FROM v$datafile a, v$tablespace b 
WHERE a.ts# = b.ts#; 
     FILE# FILE_NAME                                          TBS_NAME   STATUS          CHECKPOINT_CHANGE# 
---------- -------------------------------------------------- ---------- --------------- ------------------ 
         1 /u01/app/oracle/oradata/ora11g/system01.dbf        SYSTEM     SYSTEM                     1166664 
         2 /u01/app/oracle/oradata/ora11g/sysaux01.dbf        SYSAUX     ONLINE                     1166664 
         4 /u01/app/oracle/oradata/ora11g/users01.dbf         USERS      ONLINE                     1166664 
         5 /u01/app/oracle/oradata/ora11g/example01.dbf       EXAMPLE    ONLINE                     1166664 
         3 /u01/app/oracle/oradata/ora11g/undotbs01.dbf       UNDOTBS    ONLINE                     1166664 
         6 /u01/app/oracle/oradata/ora11g/data01.dbf          DATA_TBS   RECOVER                    1167365 
# 다시 recover 시도 
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE 
ORA-00279: change 1167367 generated at 01/19/2024 18:02:17 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_5_1158511351.arc 
ORA-00280: change 1167367 for thread 1 is in sequence #5 
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} 
AUTO 
ORA-00279: change 1167637 generated at 01/19/2024 18:02:37 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_6_1158511351.arc 
ORA-00280: change 1167637 for thread 1 is in sequence #6 
ORA-00278: log file '/home/oracle/arch1/arch_1_5_1158511351.arc' no longer needed for this recovery 
ORA-00308: cannot open archived log '/home/oracle/arch1/arch_1_6_1158511351.arc' 
ORA-27037: unable to obtain file status 
Linux Error: 2: No such file or directory 
Additional information: 3 
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE 
ORA-00279: change 1167637 generated at 01/19/2024 18:02:37 needed for thread 1 
ORA-00289: suggestion : /home/oracle/arch1/arch_1_6_1158511351.arc 
ORA-00280: change 1167637 for thread 1 is in sequence #6 
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} 
/u01/app/oracle/oradata/ora11g/redo03.log 
Log applied. 
Media recovery complete. 
SQL> ALTER DATABASE OPEN RESETLOGS; 
SELECT e.segment_name,f.tablespace_name, f.file_name 
FROM dba_extents e, dba_data_files f WHERE f.file_id = e.file_id 
AND e.owner = 'HR' AND e.segment_name IN ('EMP_20','EMP_50'); 
SEGMENT_NAME           TABLESPACE_NAME FILE_NAME 
---------------------- --------------- -------------------------------------------------- 
EMP_20                 USERS           /u01/app/oracle/oradata/ora11g/users01.dbf 
EMP_50                 DATA_TBS        /u01/app/oracle/oradata/ora11g/data01.dbf 
> Trace로 복구한게 아니니 Temp File은 정상 
################################################################################################### 
# Restore : All cold_20240117 
################################################################################################### 
<< 시나리오 23 >> Time Base Recovery : 시간을 기준으로 데이터베이스 복구 
################################################################################################### 
CREATE TABLESPACE insa_tbs 
    DATAFILE '/u01/app/oracle/oradata/ora11g/insa_tbs01.dbf' SIZE 10M 
    AUTOEXTEND ON NEXT 1M MAXSIZE 20M 
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M 
    SEGMENT SPACE MANAGEMENT AUTO; 
SELECT a.file#, a.name file_name, b.name tbs_name, a.status, a.checkpoint_change# 
FROM v$datafile a, v$tablespace b 
WHERE a.ts# = b.ts#; 
     FILE# FILE_NAME                                          TBS_NAME   STATUS          CHECKPOINT_CHANGE# 
---------- -------------------------------------------------- ---------- --------------- ------------------ 
         1 /u01/app/oracle/oradata/ora11g/system01.dbf        SYSTEM     SYSTEM                     1197967 
         2 /u01/app/oracle/oradata/ora11g/sysaux01.dbf        SYSAUX     ONLINE                     1197967 
         3 /u01/app/oracle/oradata/ora11g/undotbs01.dbf       UNDOTBS    ONLINE                     1197967 
         4 /u01/app/oracle/oradata/ora11g/users01.dbf         USERS      ONLINE                     1197967 
         5 /u01/app/oracle/oradata/ora11g/example01.dbf       EXAMPLE    ONLINE                     1197967 
         6 /u01/app/oracle/oradata/ora11g/insa_tbs01.dbf      INSA_TBS   ONLINE                     1201982 
>> DB구조 변경되었다면 > 백업하자 
                     > controlfile to trace 만들어놓자 
Fri Jan 19 18:32:35 2024 
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/home/oracle/control_20240119.spl'; 
##### Cold Backup 20240119 
SQL> ! mkdir -p /home/oracle/backup/arch/cold_20240119 
SELECT thread#,sequence#,archived,status,first_change#,first_time,next_change#,next_time 
FROM v$log; 
   THREAD#  SEQUENCE# ARCHIVED  STATUS          FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# NEXT_TIME 
---------- ---------- --------- --------------- ------------- ----------- ------------ --------- 
         1          1 YES       ACTIVE                1165188 17-JAN-24        1167000 19-JAN-24 
         1          2 NO        CURRENT               1167000 19-JAN-24     2.8147E+14 
         1          0 YES       UNUSED                      0                        0 
SQL> SHUTDOWN IMMEDIATE 
Fri Jan 19 18:34:38 2024 
! cp -av /u01/app/oracle/oradata/ora11g/*.dbf /home/oracle/backup/arch/cold_20240119/ 
! cp -av /u01/app/oracle/oradata/ora11g/*.ctl /home/oracle/backup/arch/cold_20240119/ 
! cp -av /u01/app/oracle/oradata/ora11g/*.log /home/oracle/backup/arch/cold_20240119/ 
*/ 
SQL> ! ls /home/oracle/backup/arch/cold_20240119/ 
control01.ctl  data01.dbf  example01.dbf  initora11g_20240119.ora  insa_tbs01.dbf   
redo01.log  redo02.log  redo03.log  sysaux01.dbf  system01.dbf  temp01.dbf  undotbs01.dbf  users01.dbf 
SQL> STARTUP 
Fri Jan 19 18:35:50 2024 
CREATE PFILE ='/home/oracle/backup/arch/cold_20240119/initora11g_20240119.ora' FROM SPFILE; 
SQL> ALTER SYSTEM SWITCH LOGFILE; 
--Thread 1 advanced to log sequence 3 (LGWR switch) 
--  Current log# 3 seq# 3 mem# 0: /u01/app/oracle/oradata/ora11g/redo03.log 
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 ARCHIVED  STATUS 
---------- ---------- -------------------------------------------------- ---------- --------- --------------- 
         1          1 /u01/app/oracle/oradata/ora11g/redo01.log                  50 YES       INACTIVE 
         2          2 /u01/app/oracle/oradata/ora11g/redo02.log                  50 YES       ACTIVE 
         3          3 /u01/app/oracle/oradata/ora11g/redo03.log                  50 NO        CURRENT 
SELECT a.file#, a.name file_name, b.name tbs_name, a.status, a.checkpoint_change# 
FROM v$datafile a, v$tablespace b WHERE a.ts# = b.ts#; 
     FILE# FILE_NAME                                          TBS_NAME   STATUS          CHECKPOINT_CHANGE# 
---------- -------------------------------------------------- ---------- --------------- ------------------ 
         1 /u01/app/oracle/oradata/ora11g/system01.dbf        SYSTEM     SYSTEM                     1167875 
         2 /u01/app/oracle/oradata/ora11g/sysaux01.dbf        SYSAUX     ONLINE                     1167875 
         3 /u01/app/oracle/oradata/ora11g/undotbs01.dbf       UNDOTBS    ONLINE                     1167875 
         4 /u01/app/oracle/oradata/ora11g/users01.dbf         USERS      ONLINE                     1167875 
         5 /u01/app/oracle/oradata/ora11g/example01.dbf       EXAMPLE    ONLINE                     1167875 
         6 /u01/app/oracle/oradata/ora11g/insa_tbs01.dbf      INSA_TBS   ONLINE                     1167875 
SELECT thread#,sequence#,archived,status,first_change#,first_time,next_change#,next_time 
FROM v$log; 
   THREAD#  SEQUENCE# ARCHIVED  STATUS          FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# NEXT_TIME 
---------- ---------- --------- --------------- ------------- ----------- ------------ --------- 
         1          1 YES       INACTIVE              1165188 17-JAN-24        1167000 19-JAN-24 
         1          2 YES       ACTIVE                1167000 19-JAN-24        1168190 19-JAN-24 
         1          3 NO        CURRENT               1168190 19-JAN-24     2.8147E+14 
SELECT name,sequence#,first_change#,first_time,next_change#,next_time 
FROM v$archived_log; 
NAME                                             SEQUENCE# FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# NEXT_TIME 
----------------------------------------------- ---------- ------------- ----------- ------------ --------- 
/home/oracle/arch1/arch_1_1_1158511351.arc               1       1165188 17-JAN-24        1167000 19-JAN-24 
/home/oracle/arch1/arch_1_2_1158511351.arc               2       1167000 19-JAN-24        1168190 19-JAN-24 
SQL> ! ls /home/oracle/arch1/ 
arch_1_1_1158511351.arc  arch_1_2_1158511351.arc 
########## Backup Completed. 
# 장애 발생 : 운영 테이블스페이스를 삭제해버렸다 
Fri Jan 19 18:38:04 2024 
SQL> DROP TABLESPACE insa_tbs including contents and datafiles; 
SQL> CREATE TABLE hr.emp_60 AS SELECT * FROM hr.employees WHERE department_id = 60; 
SQL> SELECT COUNT(*) from hr.emp_60; 
  COUNT(*) 
---------- 
         5 
SELECT e.segment_name,f.tablespace_name, f.file_name 
FROM dba_extents e, dba_data_files f WHERE f.file_id = e.file_id 
AND e.owner = 'HR' AND e.segment_name = 'EMP_60'; 
SEGMENT_NAME           TABLESPACE_NAME FILE_NAME 
---------------------- --------------- -------------------------------------------------- 
EMP_60                 USERS           /u01/app/oracle/oradata/ora11g/users01.dbf 
SQL> SHUTDOWN IMMEDIATE 
# Restore : All data file + control file 
! cp -av /home/oracle/backup/arch/cold_20240119/*.dbf /u01/app/oracle/oradata/ora11g/ 
! cp -av /home/oracle/backup/arch/cold_20240119/*.ctl /u01/app/oracle/oradata/ora11g/ 
*/ 
SQL> ! ls /u01/app/oracle/oradata/ora11g/ 
control01.ctl  data01.dbf  example01.dbf  insa_tbs01.dbf  redo01.log  redo02.log  redo03.log   
sysaux01.dbf  system01.dbf  temp01.dbf  undotbs01.dbf  users01.dbf 
SQL> STARTUP MOUNT 
# 작업 쉽게하기위해 세션레벨에서 날짜 포멧 변경 
SQL> ALTER SESSION SET nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; 
# 시간을 기준으로 복구하자 
SQL> RECOVER DATABASE UNTIL TIME '2024-01-19 18:37:00' 
-- alert log 
--Fri Jan 19 18:38:04 2024 
--DROP TABLESPACE insa_tbs including contents and datafiles 
--Deleted file /u01/app/oracle/oradata/ora11g/insa_tbs01.dbf 
--Completed: DROP TABLESPACE insa_tbs including contents and datafiles 
> 복구하고자 하는 작업시각보다 좀 더 앞에서 복구한다. 
> 해당 시간에 해당하는 아카이브가 있어야 한다. 
SQL> ALTER DATABASE OPEN RESETLOGS; 
SELECT a.file#, a.name file_name, b.name tbs_name, a.status, a.checkpoint_change# 
FROM v$datafile a, v$tablespace b 
WHERE a.ts# = b.ts#; 
     FILE# FILE_NAME                                          TBS_NAME   STATUS          CHECKPOINT_CHANGE# 
---------- -------------------------------------------------- ---------- --------------- ------------------ 
         1 /u01/app/oracle/oradata/ora11g/system01.dbf        SYSTEM     SYSTEM                     1167876 
         2 /u01/app/oracle/oradata/ora11g/sysaux01.dbf        SYSAUX     ONLINE                     1167876 
         3 /u01/app/oracle/oradata/ora11g/undotbs01.dbf       UNDOTBS    ONLINE                     1167876 
         4 /u01/app/oracle/oradata/ora11g/users01.dbf         USERS      ONLINE                     1167876 
         5 /u01/app/oracle/oradata/ora11g/example01.dbf       EXAMPLE    ONLINE                     1167876 
         6 /u01/app/oracle/oradata/ora11g/insa_tbs01.dbf      INSA_TBS   ONLINE                     1167876 
SELECT COUNT(*) from hr.emp_60; 
ORA-00942: table or view does not exist 
> Alert Log 
    - Tablespace Level 이상의 기록이 있다. 
    - Segment Level의 기록은 여기에 없다. > 작업 수행 시 Redo Log 생성 > 로그마이너 이용 > 다음시간에 ... 
> Time Base Recovery
    - 절대 운영DB에서 복구하지 않는다.
        - 복제DB에서 복구 > 복제DB에서 DataFile Export > 기존DB에 Import
    - TABLESPACE 변경 
    - DROP, TRUNCATE  
    - DML 
    - 단, 복구 시간 이후에 작업한 내용은 삭제된다. 
    - Open Resetlogs 수행 > 이전 백업본으로 부분백업 불가하다 
> 다음 TEST를 위해 Restore : All cold_20240117
* 작업소요시간 체크하기
** RESETLOGS 적용 > 즉시 백업
     > 과거 백업본으로는 더 이상의 부분복구를 할 수 없다.
     > 과거 백업본은 운영정책에 따라 별도 보관한다.
'Oracle 11g > Backup & Recovery' 카테고리의 다른 글
| 71 Backup&Recovery, Export & Import, Data Pump (0) | 2024.01.23 | 
|---|---|
| 70 Backup&Recovery, Log Miner, Clone DB, Export & Import (0) | 2024.01.22 | 
| 68 Backup&Recovery, Archive Log Mode, control file 손상 (0) | 2024.01.18 | 
| 67 Backup&Recovery, Archive Log Mode, (0) | 2024.01.17 | 
| 66 Backup&Recovery, Archive Log Mode, Backup (0) | 2024.01.16 |