1. archive log file 생성되는 디렉터리 생성
[oracle1@oracle ~]$ pwd
/home/oracle1
[oracle1@oracle ~]$ mkdir arch1
[oracle1@oracle ~]$ mkdir arch2
[oracle1@oracle ~]$ ls
arch1 database Downloads p13390677_112040_LINUX_1of7.zip Public Videos
arch2 Desktop Music p13390677_112040_LINUX_2of7.zip Templates
backup Documents ora_data Pictures userdata
2. oracle 접속 (=> sql developer로 확인)
[oracle1@oracle ~]$ sqlplus / as sysdba
SQL> select * from v$parameter where name = 'log_archive_dest_1';
SQL> select * from v$parameter where name = 'log_archive_dest_2';
SQL> select * from v$parameter where name = 'log_archive_format';
3. archive log file이 생성되는 위치 설정
1) mandatory
- 필수, archive 작업이 성공적으로 완료되어야 online redo file 을 겹쳐 사용 할 수 있다.
- 공간 부족할 경우 기다린다(Waiting 단계)
- daily check 를 확인해야 한다.
[oracle1@oracle ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 831M 0 831M 0% /dev
tmpfs 850M 218M 632M 26% /dev/shm
tmpfs 850M 9.6M 840M 2% /run
tmpfs 850M 0 850M 0% /sys/fs/cgroup
/dev/mapper/ol-root 50G 14G 37G 27% /
/dev/mapper/ol-home 67G 13G 55G 20% /home
=> 공간관리 못하면 트랜잭션 속도가 느려진다. 매시간 check
/dev/sda1 1014M 233M 782M 23% /boot
tmpfs 170M 40K 170M 1% /run/user/1001
2) optional (기본값)
- archive 작업이 성공적으로 완료 되지 않은 경우에도 online redo file 을 겹쳐 사용 할 수 있다.
- 공간이 부족하면 archive log file이 생성되지 않는다.
SQL> alter system set log_archive_dest_1 ="location=/home/oracle1/arch1 mandatory" scope=spfile;
SQL> alter system set log_archive_dest_2 ="location=/home/oracle1/arch2 optional" scope=spfile;
4. archive log file 이 생성될 때 이름 포맷을 설정
1) %s : log sequence number => v$log의 SEQUENCE#
2) %t : thread number(instance number) => v$log 의 THREAD#
3) %r : resetlog id, 여러 데이터 베이스에 걸쳐 아카이브된 로그 파일의 유일한 이름을 나타낸다. => DB 처음 생성될때, DB 불안전한 복구 후 open 할 경우
SQL> alter system set log_archive_format='arch_%t_%s_%r.arc' scope=spfile;
5. redo log 정보 확인
select * from v$log;
6. noarchive log mode 에서 archive log mode 로 변경 방법
1) DB 정상적인 종료
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
2) DB mount 단계까지 올리기
SQL> startup mount
3) archive log 로 변경
SQL> alter database archivelog;
tip) 다시 noarchive log mode로 변경하고 싶다면
SQL> alter database noarchivelog;
4) DB open 하기
SQL> alter database open;
5) archive log mode 변경 되었는지 확인
(1) archive log mode 확인
SQL> archive log list
(2) data file 로 archive log mode 확인
SQL> select log_mode from v$database;
7. redo log file 확인해보기
SQL> select * from v$log;
8. archive_dest 확인
(sql developer에서 확인)
SQL> select * from v$archive_dest;
SQL> select binding, destination, status from v$archive_dest;
#) 물리적 위치 확인
SQL> ! ls /home/oracle1/arch1 /home/oracle1/arch2
SQL> select * from v$archived_log;
#) log switch 발생
SQL> alter system archive log current;
#) ACTIVE 확인
SQL> select * from v$log;
#) archive log 위치, seq 번호 확인
SQL> select sequence#, name from v$archived_log;
#) 물리적 위치 확인
SQL> ! ls /home/oracle1/arch1 /home/oracle1/arch2
tip) archive_processes
SQL> select * from v$archive_processes;
-- ACTIVE : 자동 관리, oracle 관리
tip) arc 파일 확인
SQL> ! ps -ef | grep arc : 임시 대기중
■ arachive log mode backup
SQL> select * from v$log;
SQL> select name, checkpoint_change#, status from v$datafile;
SQL> select tablespace_name, logging from dba_tablespaces;
SQL> select name from v$tempfile;
SQL> select name from v$controlfile;
#) 준비작업
=> cold backup 대상 data file, temp file, control file, redo log file
select 'cp -av '||name|| ' /home/oracle1/backup/arch/cold_20240112/' from v$datafile
union all
select 'cp -av '||name|| ' /home/oracle1/backup/arch/cold_20240112/' from v$tempfile
union all
select 'cp -av '||name|| ' /home/oracle1/backup/arch/cold_20240112/' from v$controlfile
union all
select 'cp -av '||member|| ' /home/oracle1/backup/arch/cold_20240112/' from v$logfile;
[결과]
#1) 디렉터리 생성
SQL> ! mkdir -p /home/oracle1/backup/arch/cold_20240112
SQL> ! ls /home/oracle1/backup/arch/cold_20240112
#2) 초기 파라미터 파일 백업
SQL> create pfile ='/home/oracle1/backup/arch/cold_20240112/initora11g_20240112.ora' from spfile;
#3) 생성 되었는지 확인
SQL> ! ls /home/oracle1/backup/arch/cold_20240112
#4) DB 내리기
SQL> shutdown immediate
SQL> !
#5) OS 나오기 pfile 확인
[oracle1@oracle ~]$ cd backup/arch/cold_20240112/
[oracle1@oracle cold_20240112]$ ls
initora11g_20240112.ora
#6) vi 편집기로 backup.sh 생성하기
[oracle1@oracle cold_20240112]$ vi backup.sh
(위에 생성한 cp -av 문장 붙여놓기)
:wq(저장)
[oracle1@oracle cold_20240112]$ ls
backup.sh initora11g_20240112.ora
[oracle1@oracle cold_20240112]$ sh backup.sh > backup.log
#) 내용 확인
[oracle1@oracle cold_20240112]$ cat backup.sh
#) 확인
[oracle1@oracle cold_20240112]$ ls
#) backup 완료
SQL> startup
'Backup > Archive Log Mode' 카테고리의 다른 글
tablespace 에 속한 여러 데이터 파일들 중에 특정한 파일이 손상되었을 경우 (1) | 2024.01.15 |
---|---|
기존 위치가 아닌 새로운 위치로 복구 (0) | 2024.01.15 |
백업 받지 않은 tablespace에 데이터 파일 손상 받았을 경우 (1) | 2024.01.15 |
DB가 종료 후 데이터 파일이 삭제 시키고 DB 올릴 경우 (0) | 2024.01.12 |
DB가 종료된 후 데이터 파일이 삭제 시키고 DB 올릴 경우 (0) | 2024.01.12 |