Controlfile다중화, Redologfile다중화, 데이터베이스로그모드
Controlfile다중화
- Controlfile은 DB당 하나만 존재하면 됨.
- Control file다중화
- 최대 8개까지 다중화 기능이 제공되고 오라클 3개 권장
- 다중화가 많을 수록 안정성, 성능↓ (3개든 5개든 다중화 갯수만큼 동시에 기록해야해서 성능떨어짐)
- 다중화가 적을 수록 안정성↓, 성능
- 다중화시킬때는 경로를 나눠서 운영해야함. 예를 들어 c드라이브와 d드라이브에 하나씩.
현재 controlfile 정보조회
- controlfile은 다른 경로로 다중화해야지 안정성
1 | //현재 controlfile정보조회 |
다중화 순서
- DB에 Controlfile 추가
- 지금 두개 등록되어있다고 하나만 등록하게되면 2개에서 1개로 바뀌어버린다. => 3개로 다중화하고싶다면 3개 다 작성해야한다.
- scope옵션 3가지
- memory : 지금 당장 적용. 현재 DB의 parameter 만 수정하며, spfile 은 수정하지 않는다. 재시작 하면 원래 spfile 설정값으로 돌아간다. 3번째 컨트롤파일 추가하는 과정에서는 현재 3번째 컨트롤파일을 존재하지않기때문에 현 시점에서 사용 불가능.
- both : 현재 DB 의 parameter 와 spfile 모두 수정한다. default 값. 3번째 컨트롤파일 추가하는 과정에서는 현재 3번째 컨트롤파일을 존재하지않기때문에 현 시점에서 사용 불가능.
- spfile : Spfile만 수정한다. (정적인 파라미터 수정에서는 필수다)
- DB 종료
SQL> ! -> 작업후 -> $> exit
: 지금 sys접속된 상태에서 잠시 나갔다가 다시 들어오는 명령어SQL> exit -> 작업후 -> $>sqlplus "sys/oracle as sysdba"
: 아예 DB나간 뒤 다시 접속
- OS에 Controlfile 추가
- DB 시작
- 정상적으로 처리되는 경우 아무런 출력 값이 나타나지않는다.
- 에러발생하는 경우
- Error의 의미는 mount가 되지 않았다는 의미
- 파라미터(
SQL> show parameter control_files;
)를 확인하여 오타난 부분을 찾은 뒤 1번부터 다시 진행한다.
- 다중화가 잘 되었는지 확인(DB가 open되어 있어야 확인가능)
1 | //1.DB에 Controlfile 추가(다중화) |
- 참고로 DB 켜져있는 지 확인
- 결과값이 open이면 인스턴스 생성완료 = DB가 켜짐
- 다른 결과값은 링크 확인할 것.
1 | SQL> select status from v$instance; |
Redologfile다중화
- Redologfile은 DB에서발생된 변경 작업의 로그정보(Redo data)가 기록된 공간
- 다중화 개수 제한 없음
- 다중화가 많을 수록 안정성, 성능↓
- 로그스위칭 : 순환형으로 관리되는 파일로 덮어써진다.
- 그룹번호는 항상 순차적이어야 로그스위칭이 정상적으로 일어난다.
- 새로 추가할 그룸 멤버들은 기존에 있는 멤버와 같은 size이어야한다. => 다중화시 굳이 명시할 필요가 없어서 해당 명령어가 없다.
- 그룹안의 멤버수는 서로 동일하거나 비슷하게 디자인한다.
Redologfile 확인 : 쿼리구문 두가지로 확인해야한다.
1 | SQL> select group#, members |
다중화 순서
- redo log group 추가
- redo log member 추가
- 멤버 만들고 싶은 그룹만 만들어도 된다. ex to group 1과 to group 3만 생성 가능
- 하지만 실무에선 그룹별 멤버수를 동일하게 관리하는 편이다.
1 | //1.redo log group 추가 |
Database log mode
- Database log mode는 2가지가 있다
- Noarchive log mode : redologfile에 로그스위치 발생시 순환하면서 덮어씀
- Archive log mode : redologfile에 로그스위치 발생시 offline 복사본 생성함. 즉 archive log file 운영함
DB log mode 조회
1 | //첫번째 조회방법 |
순서
- DB 종료
- DB MOUNT
- DB LOG MODE 설정
SQL> alter database archivelog;
: Archive log mode모드로 변경SQL> alter database noarchivelog;
: Noarchive log mode로 변경
- DB OPEN
- 처리결과확인
1 | //1. DB 종료 |