Backup/Archive Log Mode

data file, control file 손상되었을 경우

잇꼬 2024. 1. 18. 17:32
728x90
반응형
SMALL

[oracle1@oracle cold_20240117]$ ls

[oracle1@oracle cold_20240117]$ pwd
/home/oracle1/backup/arch/cold_20240117/

SQL> select * from v$log;



SQL> 
select a.file#, a.name file_name, b.name file_name, b.name tbs_name, a.status, a.checkpoint_change# 
from v$datafile a, v$tablespace b
where a.ts# = b.ts#;



SQL> create table hr.emp_50 as select * from hr.employees where department_id = 50;
SQL> select count(*) from hr.emp_50;


SQL> select * from v$log;


SQL> alter system switch logfile;
SQL> alter system switch logfile;

System altered.
=> 느려지는 이유?
Thu Jan 18 00:51:29 2024
Archived Log entry 8 added for thread 1 sequence 2 ID 0xf7b3b85 dest 1:
Thread 1 cannot allocate new log, sequence 4
Checkpoint not complete
  Current log# 9 seq# 3 mem# 0: /u01/app/oracle/oradata/ora11g/redo09.log
해결방법) file size 늘리기


SQL> select * from v$log;



SQL> 
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;



=> trace 에서 확인
Thu Jan 18 00:51:42 2024
Beginning log switch checkpoint up to RBA [0x5.2.10], SCN: 846197
Thread 1 advanced to log sequence 5 (LGWR switch)
  Current log# 8 seq# 5 mem# 0: /u01/app/oracle/oradata/ora11g/redo08.log
Completed checkpoint up to RBA [0x5.2.10], SCN: 846197

SQL> ! ls /home/oracle1/arch1



#) data file, control file 위치 확인
SQL> ! ls /u01/app/oracle/oradata/ora11g/*.dbf


SQL> ! ls /u01/app/oracle/oradata/ora11g/*.ctl



# 장애 유발 # 
SQL> ! rm /u01/app/oracle/oradata/ora11g/*.dbf


SQL> ! rm /u01/app/oracle/oradata/ora11g/*.ctl


SQL> ! ls /u01/app/oracle/oradata/ora11g/*.dbf
ls: cannot access /u01/app/oracle/oradata/ora11g/*.dbf: No such file or directory

SQL> ! ls /u01/app/oracle/oradata/ora11g/*.ctl
ls: cannot access /u01/app/oracle/oradata/ora11g/*.ctl: No such file or directory



SQL> alter system switch logfile;
=> trace 확인 
Thu Jan 18 01:00:57 2024
Errors in file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_m000_13432.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;


<HR SESSION>
[oracle1@oracle ~]$ sqlplus hr/hr



# 확인해보기
SQL> ! ls /u01/app/oracle/oradata/ora11g/*.dbf
ls: cannot access /u01/app/oracle/oradata/ora11g/*.dbf: No such file or directory

SQL> ! ls /u01/app/oracle/oradata/ora11g/*.ctl
ls: cannot access /u01/app/oracle/oradata/ora11g/*.ctl: No such file or directory


SQL> shutdown abort


SQL> !
[oracle1@oracle ~]$ cd backup/arch/cold_20240117/
[oracle1@oracle cold_20240117]$ cp -av *.dbf /u01/app/oracle/oradata/ora11g/
‘example01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/example01.dbf’
‘sysaux01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/sysaux01.dbf’
‘system01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/system01.dbf’
‘temp01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/temp01.dbf’
‘undo01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/undo01.dbf’
‘users01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/users01.dbf’
[oracle1@oracle cold_20240117]$ cp -av *.ctl /u01/app/oracle/oradata/ora11g/
‘control01.ctl’ -> ‘/u01/app/oracle/oradata/ora11g/control01.ctl’


[oracle1@oracle cold_20240117]$ sqlplus / as sysdba


SQL> startup mount



SQL> recover database using backup controlfile
ORA-00279: change 845132 generated at 01/18/2024 00:41:25 needed for thread 1
ORA-00289: suggestion : /home/oracle1/arch1/arch_1_1_1158531164.arc
ORA-00280: change 845132 for thread 1 is in sequence #1


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
=> (enter) 적용


ORA-00279: change 846186 generated at 01/18/2024 00:51:28 needed for thread 1
ORA-00289: suggestion : /home/oracle1/arch1/arch_1_2_1158531164.arc
ORA-00280: change 846186 for thread 1 is in sequence #2
ORA-00278: log file '/home/oracle1/arch1/arch_1_1_1158531164.arc' no longer
needed for this recovery


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
=> (enter) 적용
ORA-00279: change 846189 generated at 01/18/2024 00:51:29 needed for thread 1
ORA-00289: suggestion : /home/oracle1/arch1/arch_1_3_1158531164.arc
ORA-00280: change 846189 for thread 1 is in sequence #3
ORA-00278: log file '/home/oracle1/arch1/arch_1_2_1158531164.arc' no longer
needed for this recovery


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
=> (enter) 적용
ORA-00279: change 846193 generated at 01/18/2024 00:51:34 needed for thread 1
ORA-00289: suggestion : /home/oracle1/arch1/arch_1_4_1158531164.arc
ORA-00280: change 846193 for thread 1 is in sequence #4
ORA-00278: log file '/home/oracle1/arch1/arch_1_3_1158531164.arc' no longer
needed for this recovery


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
=> (enter) 적용
ORA-00279: change 846197 generated at 01/18/2024 00:51:42 needed for thread 1
ORA-00289: suggestion : /home/oracle1/arch1/arch_1_5_1158531164.arc
ORA-00280: change 846197 for thread 1 is in sequence #5
ORA-00278: log file '/home/oracle1/arch1/arch_1_4_1158531164.arc' no longer
needed for this recovery


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
=> (enter) 적용
ORA-00279: change 846465 generated at 01/18/2024 01:01:00 needed for thread 1
ORA-00289: suggestion : /home/oracle1/arch1/arch_1_6_1158531164.arc
ORA-00280: change 846465 for thread 1 is in sequence #6
ORA-00278: log file '/home/oracle1/arch1/arch_1_5_1158531164.arc' no longer
needed for this recovery


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
=> (enter) 적용
ORA-00279: change 846468 generated at 01/18/2024 01:01:03 needed for thread 1
ORA-00289: suggestion : /home/oracle1/arch1/arch_1_7_1158531164.arc
ORA-00280: change 846468 for thread 1 is in sequence #7
ORA-00278: log file '/home/oracle1/arch1/arch_1_6_1158531164.arc' no longer
needed for this recovery


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
=> (enter) 적용 실패
ORA-00308: cannot open archived log
'/home/oracle1/arch1/arch_1_7_1158531164.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3


# recover 다시 시도
SQL> recover database using backup controlfile
ORA-00279: change 846468 generated at 01/18/2024 01:01:03 needed for thread 1
ORA-00289: suggestion : /home/oracle1/arch1/arch_1_7_1158531164.arc
ORA-00280: change 846468 for thread 1 is in sequence #7


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/oradata/ora11g/redo07.log <<- current 한 redo log file 찾아서 직접  filename 으로 적용
Log applied.
Media recovery complete.


=> trace 에서 확인
Thu Jan 18 01:01:00 2024
Archived Log entry 11 added for thread 1 sequence 5 ID 0xf7b3b85 dest 1:
Beginning log switch checkpoint up to RBA [0x7.2.10], SCN: 846468
Thread 1 advanced to log sequence 7 (LGWR switch)
  Current log# 7 seq# 7 mem# 0: /u01/app/oracle/oradata/ora11g/redo07.log


SQL> alter database open resetlogs;



SQL> select count(*) from hr.emp_50;


SQL> select * from v$log;

728x90
반응형
LIST