급하신 분은 보라색 글씨만 보시면 됩니다.
= root 계정으로 명령어 입력    $  = 사용자계정 (ex. oracle) 으로 명령어 입력
SQL>  = 오라클 DB에 접속해 쿼리 문 입력




컨트롤파일

- small binary file
- 내용
  : 데이터파일, redo로그파일,컨트롤파일 들의 현재 상태(이상유무)
    모든 데이터파일, 모든 redo로그파일에 대한 정보 - 이정표 역할

    Cf) 사람:좌뇌,우뇌 = 오라클:파라미터파일,컨트롤 파일

- 데이터베이스가 문제가 있는지 없는지 정보를 가지고 있어서, DB유지보수할때 컨트롤 파일 참고하여 고친다.

- DB만들때 생성됨.

※ 참고 : 파라미터파일 안에(컨트롤파일정보), 컨트롤파일 안에(데이터파일,redo로그파일,DB전체정보) 들어있다.


- 컨트롤 파일은 중요 하기 때문에, 내부의 내용을 고치거나 할수없다.
 우리가 할일 : 지워지지 않도록 관리해주기

하나만 있거나, 한곳에 뭉쳐 있으면 loss될 확률이 너무 크다.
- 안전하게 관리 방법 : 컨트롤 파일 여러군데 분산시키기
                        = 디스크 1,2번에 나누어놓고 파라미터 파일에, 위치 적어주기

컨트롤 파일 여러개(8개까지 만들수 있다) - 모두 내용이 같다.
- 내용이 다르다 = 장애. nomount까지만 올라감.





※ 연습 많이 하기
SPFILE 이용해서 컨트롤파일 가동
PFILE 이용해서 컨트롤파일 가동

※ 마운트 단계 이상(컨트롤 파일 올라온상태)부터는 내용이 실시간으로 바뀌기때문에 컨트롤 파일 내용이 달라짐.




현재 : DB Open상태, 컨트롤 파일1개
목표 : 컨트롤 파일 두개 만들기

1. DB OPEN - SPFILE의 상태

순서 : SPFILE 수정 → shutdown → 컨트롤파일 복사 → DB시작


SQL> ALTER SYSTEM SET control files = '경로1/컨트롤파일1', '경로2/컨트롤파일2' SCOPE=SPFILE;
                                                                   → spfile에 컨트롤파일 경로지정
                                     ※ 참고 : scope=spfile 꼭쓰기 → 안쓰면 디폴트값 both(지금즉시 적용)
                                                                      - 현재 없기에 에러. DB뻗는다..
SQL> shutdown immediate
SQL> !cp 경로1/컨트롤파일1 경로2/컨트롤파일2
SQL> startup





2. DB OPEN - PFILE
순서 : shutdown → PFILE 수정 → 컨트롤파일 복사 → DB시작


SQL> shutdown immediate
SQL> !cp 경로1/컨트롤파일1 경로2/컨트롤파일2
SQL> vi 경로/init디비이름.ora
:: CONTROL_FILES = '경로1/컨트롤파일1','경로2/컨트롤파일2'
SQL> startup

Posted by 딩구르
,