# 요약 | |
[문제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 |