• 리두 로그 버퍼는 static 한 크기의 버퍼이기 때문에 작업 중에 크기를 변경할 수 없음
  • 초기화 파라미터 파일
  • spfileorcl.ora - 우선 순위 1
  • initorcl.ora - text file로 만들어둔 것
  • 간소화된 초기화 파라미터

  1. 기본 : 회사마다 변경하여 사용할 수 있는 파라미터
  2. 고급 : 오라클이 권장하는 파라미터 - 데이터베이스 버퍼 캐시 사이즈, 데이터 읽는 방법
  3. FULL TABLE SCAN시 한 번에 여러 개의 데이터를 I/O 할 수 있음
  • show parameter recovery

  1. 메모리가 자동으로 관리됨
  • 파라미터값 종류에 따라 system 전체 레벨에서도 변경 가능한 값이 존재

  • 오라클 데이터베이스 Instance 시작

  • startup 시 기본적으로 모든 절차를 거쳐 OPEN 상태까지 감
  • startup nomount;

  1. instance가 시작됨
  2. control file이 open 안 됨
  3. variable size : 다이내믹한 메모리
  4. database buffers : 별도의 db buffer cache
  5. v$bgprocess라는 뷰에서 백그라운드 프로세스에 대한 정보를 확인 가능 - 같은 종류의 프로세스 중에서 먼저 실행된 것부터 0, 1, 2... 번의 번호를 가짐
  6. select status from v$instance; -> NOMOUNT가 아닌 STARTED로 보여짐
  7. NOMOUNT에서 할 수 있는 일
    • DB 생성 - instance가 구성되어 있어야 함
    • control file 재생성
  • alter database mount;

  1. MOUNTED 상태로 변경됨
  2. control file이 open 된 상태
  3. instance와 db가 연결됨
  4. db_name이 control file과 일치하지 않으면 mount 되지 않음
  5. db운영 mode변경
    • Noarchivelog : 변경된 것에 대한 히스토리를 기록하지 않고 체크포인트(DB에 변경사항들이 내려써짐)가 발생하면 바로 log switch를 하여 덮어씀
    • Archivelog
      • checkpoint 완료
      • Archiving 완료 - redo log(online redo log file)를 읽어서 백업을 해두는 것(ARCH) -> Archived log file 혹은 offline redo log file
  6. recover db : archived file이 존재해야 복구 가능
  7. rename file
  • alter database open;

  1. data file과 log file들이 open 됨
  • 꼭 필요한 것
  1. db_name
  2. control_files
  • 수동으로 DB 생성
  • NEWDB 추가 - vi /etc/oratab

  • $ORACLE_HOME/dbs에서 initNEWDB.ora 파일 생성하여 db_name과 control file 위치를 작성

  • sys로 접속 -> startup 안됨

  • 다시 initNEWDB.ora 파일을 수정

  1. shared_pool_size=32m -> 공유 풀 최소한의 크기는 64m
  2. db_cache_size=48m - 데이터베이스 버퍼 캐시 최소 4m
  3. log_buffer=12m - 로그 버퍼
  4. 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

  1. control file의 위치는 파라미터 파일에 존재하므로 datafile과 logfile을 생성
  2. logfile은 2개가 있어야 하므로 2개 생성, 또한 disk의 고장으로 데이터가 날아갈 수 있으므로 동일한 데이터를 다른 디스크에도 생성
  3. reuse - 동일한 파일이 있더라도 재생성하라는 의미
  4. system이라는 이름의 tablespace 생성 - datafile 50m, autoextend on(사이즈를 자동으로 늘려줌)
  5. sysaux라는 이름의 tablespace 생성 - datafile 50m, autoextend on
  6. undo tablespace undotbs 생성 - datafile 50m, autoextend on
  7. temporary tablespace temp 생성 - tempfile 50m, autoextend on
  8. 나머지는 기본값으로 설정되어 생성
  9. 작성한 폴더는 미리 만들어 놓아야 함
  10. ORACLE_SID
  11. ORACLE_HOME
  12. ORACLE_BASE
  13. ADR_BASE <- diagnostic_dest
  14. ADR_HOME
  15. /u01/app/oracle/diag/rdbms/newdb/NEWDB/trace 아래의 alert파일을 실시간으로 확인 -> tail -f alert_NEWDB.log

  • @cre_db -> 오류 확인

  1. system tablespace는 안 써줘도 oracle에서 알아서 연결, 지정도 할 수 없음
  2. sysaux tablespace는 tablespace 없이 sysaux만 설정 - system과 구분이 안되기 때문
  3. temporary tablespace에서 temporart tablespace가 설정되지 않은 sort 작업 시 default로 쓰이도록 설정해야 함
  4. @cre_db -> database created.

  • select * from dba_tablespaces; -> 존재하지 않음 -> dictionary table 까지만 만들어지기 때문

  • shutdown immediate -> startup mount restrict;(제한 모드)
  • drop database; -> OS상의 파일도 모두 삭제됨
  • 다시 startup
  • user 추가, character set 추가

  1. national character set은 character set으로 표현할 수 없는 문자를 설정하고자 할 때 사용

'Oracle > DataBase 개념' 카테고리의 다른 글

undo tablespace 생성, 다른 DB 접속  (0) 2020.02.25
DB 수동 생성 - 3(테이블 스페이스)  (0) 2020.02.24
Network 구성  (0) 2020.02.21
수동으로 DB 생성 - 2  (0) 2020.02.20
DataBase 개념  (0) 2020.02.17

+ Recent posts