본문 바로가기

빅데이터과정/WORKSHOP 1

#17_140708_WSHOP_INSTANCE

728x90

# INSTANCE


4. Instance 관리
(1) 오라클 DB와 instance 를 관리하는 툴 소개
(2) 오라클 인스턴스의 구조정보를 담고 있는 파일인 파라미터 파일 관리방법
(3) DB startup 옵션
(4) DB의 shutdown 옵션
(5) altert log file : DB에 문제가 생겼을 때 그 문제를 해결하기 위한 정보가 들어있는 파일
(6) 정보
A. 에러번호와 에러 메시지


B. DB를 올렸다 내렸다 할 때 생기는 정보



  1. ALERT LOG FILE


alert log file 의 위치확인

SQL> show parameter dump

NAME                                         TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_core_dump                 string       partial
background_dump_dest                 string       /u01/app/oracle/diag/rdbms/dbd
                                                                 b/dbdb/trace
core_dump_dest                           string       /u01/app/oracle/diag/rdbms/dbd
                                                                 b/dbdb/cdump
max_dump_file_size                     string       unlimited
shadow_core_dump                     string       partial
user_dump_dest                          string       /u01/app/oracle/diag/rdbms/dbd
                                                                 b/dbdb/trace

background_dump_dest 위치로 찾아가면 alert_dbdb.log 파일이 존재한다


[orcl:trace]$ tail -f alert*
n  f – force : 강제로 수행


n  * - 와일드카드
alert의 꼬리부분을 보겠다라는 의미


shutdown, startup 을 하면 지속적으로 log 등록




2. PARAMETER


파라미터 파일 오라클 인스턴스의 구조정보를 담고 있는 파일없으면 인스턴스가 올라오지 않음


위치 확인 : show parameter spfile


파라미터 파일의 종류 2가지
(1)   pfile – tetfile
파일의 내용을 수정해야 한다면
gedit 이나 vi 편집기를 이용해서 수정

(2)   spfile – binary file
파일안의 내용을 수정해야 한다면
alter system 명령어로 파라미터값을 수정


요즘엔 spfile을 더많이 사용함





  • SQL> show parameter spfile


 NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string        /u01/app/oracle/product/11.2.0
                                                      /dbhome_1/dbs/spfiledbdb.ora





  • SQL> show parameter db_files


NAME                            TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_files                           integer     200


data file을 200개까지 사용할 수 있다는 의미


DBA 가 DB 설치 이후에 반드시 수정해야하는 파라미터 – db files
db_files : DB에서 생성할 수 있는 파일의 최대갯수

SQL> alter system set db_files=500 scope=spfile;
spfile(파라미터 파일안의 내용만을 변경
SQL> show parameter db_files
현재 인스턴스의 파라미터 구성 내용

NAME                                 TYPE        VALUE
------------------------------------ ----------- 
db_files                             integer       200


파라미터 파일의 내용을 변경해도 현재 인스턴스의 내용이 그대로 올라오기 때문에 200 으로 그대로 인 것을 확인할 수있다
500으로 할려면 DB를 내렸다가 올리거나 both 옵션을 해줘야 한다





  • UNDO_RETENTION


undo_retention – data를 delete 하고 commit 했어도 지운 테이블을 과거로 되돌릴 수 있는 시간
900초 = 15분으로 설정되어 있음
SQL> show parameter undo_retention
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_retention                       integer     900



문제25. undo_retention 을 1시간으로 변경하시오

SQL> alter system set undo_retention=3600 scope=spfile;
SQL> show parameter undo retention

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     3600
undo_tablespace                      string      UNDOTBS1






마지막문제35. 파라미터 이름을 넣고 프로시져를 수행하면 아래와 같이 결과가 출력되게 하시오
파라미터 : db_files
현재 인스턴스 값 : 500
현재 spfile 값 : 1000
both 가능 여부 : false

CREATE OR REPLACE PROCEDURE pro_para
(p_name varchar2)
IS
 v_value VARCHAR2(10);

 CURSOR pro_cursor IS
  SELECT NAME, issys_modifiable, VALUE
  FROM v$parameter
  WHERE name=p_name;
 
 BEGIN
  SELECT VALUE INTO v_value
  FROM v$spparameter
  WHERE name=p_name;
 
  FOR pro_record IN pro_cursor LOOP
   dbms_output.put_line('PARAMETER : ' || pro_record.name);
   dbms_output.put_line('INSTANCE VALUE : ' || pro_record.VALUE);
   dbms_output.put_line('SPFILE INSTANCE VALUE : ' || v_value);
   dbms_output.put_line('BOTH OR NOT : ' || pro_record.issys_modifiable);
  END LOOP;
 END;


/



3. SCOPE


scope=spfile : 변경작업을 spfile 에만 반영하겠다(내렸다 올려야됨)
scope에 쓸 수 있는 옵션 3가지
1.     spfile : 현재 메모리에 반영하지 않고 spfile 에만 반영하겠다
2.     memory : 파라미터 파일에 반영하지 않고 현재 메모리에만 반영하겠다
3.     both : 둘다 반영하겠다(디폴트 옵션)


현재 인스턴스(메모리)에 변경된 파라미터 값을 확인하는 방법
SQL> show parameter 파라미터명
spfile(파라미터 파일에 반영된 파라미터 값을 확인
SQL> select name, value from v$spparameter


where name = ‘db_files’;



문제26. db_file_multiblock_read_count(full table scan 에서 한번의 I/O로 읽어들이는 블록의 개수)를 확인하고 128로 변경하시오. spfile과 메모리 둘다 변경하시오

SQL> alter system set db_file_multiblock_read_count=128;
SQL> show parameter db_file_multiblock_read_count
NAME                           TYPE      VALUE
------------------------------------ ----------- ---------------
db_file_multiblock_read_count     integer     128
SQL> select name, value from v$spparameter where name='db_file_multiblock_read_count';
NAME                         VALUE
------------------------------------------------
db_file_multiblock_read_count     128



scope 옵션이 적용가능한 것이 각각 다르다
SQL> col name for a25
SQL> select name, issys_modifiable
  2  from v$parameter
  3  where name='db_file_multiblock_read_count';



NAME                 ISSYS_MOD
------------------------- ---------
db_file_multiblock_read_c IMMEDIATE
ount
immediate : memory, both 둘다 사용가능



SQL> select name, issys_modifiable
  2  from v$parameter
  3  where name='db_files';


NAME                  ISSYS_MOD
------------------------- ---------
db_files                  FALSE


false : spfile만 가능



4. PROCESSES


문지27. processes 파라미터를 200개로 변경하시오(DB에서 생성할 수 있는 프로세서의 최대갯수)

SQL> select issys_modifiable from v$parameter where name='processes';
ISSYS_MOD
---------
FALSE
SQL> alter system set processes=200 scope=spfile;





5. SPFILE & PFILE


문제28. spfile 을 가지고 pfile을 생성하시오

SQL> create pfile from spfile;

문제29. spfile과 pfile이 같이 있으면 startup 할 떄 어떤 파일을 먼저 읽겠는가?
답 : spfile

문제30. 지금 올라온 인스턴스가 spfile로 올라온 인스턴스인지 pfile로 올라온 인스턴스인지 확인하시오

SQL> show parameter spfile

NAME                           TYPE        VALUE
------------------------------------ ----------- ------------------
spfile                            string                 
values에 아무 값이 없으면 pfile로 올라온 것이다

문제31. 현재 pfile로 spfile 을 생성하는 방법?

SQL> create spfile from pfile;
SQL> show parameter spfile
NAME                          TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                           string      /u01/app/oracle/product/11.2.0

                                                 /dbhome_1/dbs/spfiledbdb.ora


6. STARTUP







startup nomount : nomount 단계로 올림
SQL> select status from v$instance; - startup 단계 확인
started – nomount 상태
alter database mount; - nomount 단계에서 mount 단계로 올림
mounted – mount 상태
alter database open



문제34. 지금 mount 상태에서 open 으로 올리시오
alter database open;



문제35. v$parameter – 현재 인스턴스의 파라미터값 확인, v$spparameter – spfile 안의 파라미터값 확인
alter system set db_files=1000 scope=spfile;

select name, value
from v$parameter
where name=’db_files’;
db_files 는 500 이다

select name, value
from v$spparameter
where name=’db_files’;
db_files 는 1000이다