- 리두 로그 버퍼는 static 한 크기의 버퍼이기 때문에 작업 중에 크기를 변경할 수 없음
- spfileorcl.ora - 우선 순위 1
- initorcl.ora - text file로 만들어둔 것
- 간소화된 초기화 파라미터
- 기본 : 회사마다 변경하여 사용할 수 있는 파라미터
- 고급 : 오라클이 권장하는 파라미터 - 데이터베이스 버퍼 캐시 사이즈, 데이터 읽는 방법
- FULL TABLE SCAN시 한 번에 여러 개의 데이터를 I/O 할 수 있음
- 메모리가 자동으로 관리됨
- 파라미터값 종류에 따라 system 전체 레벨에서도 변경 가능한 값이 존재
- startup 시 기본적으로 모든 절차를 거쳐 OPEN 상태까지 감
- startup nomount;
- instance가 시작됨
- control file이 open 안 됨
- variable size : 다이내믹한 메모리
- database buffers : 별도의 db buffer cache
- v$bgprocess라는 뷰에서 백그라운드 프로세스에 대한 정보를 확인 가능 - 같은 종류의 프로세스 중에서 먼저 실행된 것부터 0, 1, 2... 번의 번호를 가짐
- select status from v$instance; -> NOMOUNT가 아닌 STARTED로 보여짐
- NOMOUNT에서 할 수 있는 일
- DB 생성 - instance가 구성되어 있어야 함
- control file 재생성
- MOUNTED 상태로 변경됨
- control file이 open 된 상태
- instance와 db가 연결됨
- db_name이 control file과 일치하지 않으면 mount 되지 않음
- db운영 mode변경
- Noarchivelog : 변경된 것에 대한 히스토리를 기록하지 않고 체크포인트(DB에 변경사항들이 내려써짐)가 발생하면 바로 log switch를 하여 덮어씀
- Archivelog
- checkpoint 완료
- Archiving 완료 - redo log(online redo log file)를 읽어서 백업을 해두는 것(ARCH) -> Archived log file 혹은 offline redo log file
- recover db : archived file이 존재해야 복구 가능
- rename file
- data file과 log file들이 open 됨
- db_name
- control_files
- NEWDB 추가 - vi /etc/oratab
- $ORACLE_HOME/dbs에서 initNEWDB.ora 파일 생성하여 db_name과 control file 위치를 작성
- shared_pool_size=32m -> 공유 풀 최소한의 크기는 64m
- db_cache_size=48m - 데이터베이스 버퍼 캐시 최소 4m
- log_buffer=12m - 로그 버퍼
- create spfile from pfile -> 오류 발생 -> !oerr ora 발생한 오류 숫자 -> 원인이 무엇인지 보여줌
- initNEWDB.ora에서 log_buffer를 지우고 다시 spfile을 생성
- startup -> shared pool의 사이즈가 최소 120m 이어야 한다는 오류 출력
- alter system set shared_pool_size=120m;
- !rm spfileNEWDB* 하여 제거한 후 재생성
- 다시 startup -> control file에 에러가 있으니 alert log를 찾아보라는 오류
- database를 만드는 sql문 작성 - cre_db.sql
- control file의 위치는 파라미터 파일에 존재하므로 datafile과 logfile을 생성
- logfile은 2개가 있어야 하므로 2개 생성, 또한 disk의 고장으로 데이터가 날아갈 수 있으므로 동일한 데이터를 다른 디스크에도 생성
- reuse - 동일한 파일이 있더라도 재생성하라는 의미
- system이라는 이름의 tablespace 생성 - datafile 50m, autoextend on(사이즈를 자동으로 늘려줌)
- sysaux라는 이름의 tablespace 생성 - datafile 50m, autoextend on
- undo tablespace undotbs 생성 - datafile 50m, autoextend on
- temporary tablespace temp 생성 - tempfile 50m, autoextend on
- 나머지는 기본값으로 설정되어 생성
- 작성한 폴더는 미리 만들어 놓아야 함
- ORACLE_SID
- ORACLE_HOME
- ORACLE_BASE
- ADR_BASE <- diagnostic_dest
- ADR_HOME
- /u01/app/oracle/diag/rdbms/newdb/NEWDB/trace 아래의 alert파일을 실시간으로 확인 -> tail -f alert_NEWDB.log
- system tablespace는 안 써줘도 oracle에서 알아서 연결, 지정도 할 수 없음
- sysaux tablespace는 tablespace 없이 sysaux만 설정 - system과 구분이 안되기 때문
- temporary tablespace에서 temporart tablespace가 설정되지 않은 sort 작업 시 default로 쓰이도록 설정해야 함
- @cre_db -> database created.
- select * from dba_tablespaces; -> 존재하지 않음 -> dictionary table 까지만 만들어지기 때문
- shutdown immediate -> startup mount restrict;(제한 모드)
- drop database; -> OS상의 파일도 모두 삭제됨
- 다시 startup
- user 추가, character set 추가
- national character set은 character set으로 표현할 수 없는 문자를 설정하고자 할 때 사용