2015-11-22

Oracle 9i 기초 정리


2004_01_23 정리


   

    0.version 정보 확인

         - define
- select * from v$version


    1 Connection Vs Session

    Connection =  연결
    Session = Connection + 인증 ( response )

    2.  OLTP -Online Transaction Process

                 -update,insert,delete,pga가instance의 large pool로    <--Shared server
-많은 수의 사용자가 각각 적은 작업량을 요구할때  주로 낮에 사용된다

OLAP- Online Analysis Process
-select,dedicated server (user : server  <--data의 이동이 많기 때문에
-적은 수의 사용자가 많은 양의 작업량을 요구할때 주로 밤에   관리자에 의해 사용된다.

   3.  Table Space

----------------------
Oracle DB Instance    <---Oracle은 TableSpace로 인식한다
----------------------
   System O.S        <---O.S 는 ~/oradata/user_sid/DataFile.dbf로  인식한다
    Ex) System.dbf    <--DBA 가 핸들링해야하는  process가 사용함

% : O.S 와 Oracle 맵핑

-tablespace를 분리 시켜 준다.
 DBA 가 사용하는  TableSpace와  user들이  사용한는 Table space 와의  contentionㅇ 줄이기 위해서

  4.  RAC - Real Application cluster

               - 밑의 그림과 같이 물리적 D.B와 논리적 Instance 의 관계가 1:1 이 아니고
         1:n인 분산 처리형 D.B의 형태를 말한다. (Oracle 의 특징 : 분산 처리 D.B는 많이 분산될수록
                                                         속도가 느려진다는 점을 Oralce에서는 Instance끼리의 통
  신을 통해 극복 하였따.)

 ?Instance 1 Instance 2     Instance 3     .......     Instance n
                          |                 |                   |                             |
 ----------------------|-------------------------------
   DataBase   <--D.B의 I/O를 최소화하기 위해   Instance끼리의 정보 이동

---Tip--------------------------------------------------------
|    -한번에 접속하기
|   sqlplus '/as sysdba'
|   sqlplus /nolog 다음 sql>에서 conn /as sysdba
|   sqlplus  id/pass or conn id/pass
|  - Sql에서  Cmd로  나가려면 host 명령어을 수행 시킨다
|    다시 돌아올 결우는  exit ,sql>에서  cmd 명령어를 수행 하려면   어두에 !
|    를 붙인후 실행한다.
--------------------------------------------------------------

   5.  User Manage

-Oracle에서 기본 제공되는  role 은 (Connect,resource,dba)
      %resource role에 있는 unlimited tablespace가 table 의 생성을 가능하게한다.
         table 생성하기만 하려면  resource role을  grant 해준다.


        ----------------------------------------------------
        |TIp  user role ,privilege확인하는법
|     : 현재 열려있는 session의 user 의 롤과 권한 확인
|           select * from session_privs;
|            select * from user_role_privs;
|       :System의 모든 role에대한 정보
|           select * from role_sys_privs;
        |
|     -   Database 생성시의 SQL script file  ex) catalog.sql 의 위치
|               ../../rdbms/admin/
        -----------------------------------------------------
 

   6.  Database

1)Control File : 1개 이상 일관성유지에사용 D.B에 물리적File들과 instance를 맵핑하며 *.ctl의
2)redo log File : 2개이상이 존재해야하며   D.B 에  history 내역을 저장한다    *.log
3)Datafile :  D.B. 내의 모든 DATA를 저장하고있는  .   *.dbf
4)Archived Log File  : Redo Log의 Backup File    % O.S 의 영역에서 ㄱ관리한다.
5)Parameter File : D.B가 startup할때 꼭한번 읽어 정보를 가져온다
       - D.B 가 open 되면 없어져도 된다.
6)Password file : 기존의 o/s인증이 아닌 보다 보안에 강한  Oracle 의 Password인증
                 방식을 사용 한다 .   --sys


    7.  Instance

    1) 메모리 (SGA)
2)Process  ---SERVER Process (incude Personal process)
|-Background Process : Pmon - Process Monitoring
  Smon - Instance monitoring
          -전전되었을때 redolog를 조사해  다시 setting
  DBwr - D.B buffer cache 의 Duty Data를  직접
            물리적인 D.B file 에 내려쓴다..
  LGwr - RedoLog buffer 의 내용을
             Redolog File 에 내려쓴다
  Ckpt -  check point시점을 발생시켜  각 파일들관의 일관성을 맞추어준다.

    ----Tunning Target -----
      * SGA  -----    shared Pool     ----- Libarary cache  --- SQL statement
                           1)문법체크               DataDcitionary cache  --- dataDictionary 의 내용
  2)권한체크
  3)실행계힉
  4)실행

- Data buffer Cache - 질의 에서 사용된 data
- Redo log Buffer    - 변경사항
?

  -----Tip-----------------------------------
  Data의 record 가 많을경우 끊어서 보여준다 ..
       set pause on/off
  SQLPLUS 의 현재 설정된 환경설정 을 볼때
        show all

   8. Oracle D.B의 Startup 단계


                                                                   ___________
                                                                   |   OPEN
                                                 __________|
                                                     |   MOUNT   <-Control file 필요 D.B file 들과 연동하여 D.B open
                                __________|                    -alter database open
                               | NOMOUNT      <- Instance start,D.B생성 ,(약간의)control file 생성
              ___________|                        -alter database mount
  ______|  CLOSE

      nomount : instance의 startup,sga 할당및 background process startup
      mount     : 사용할 D.B.를 찾아 물리적 Architecture를 확인
      open       : D.B를 open 하여 user의 접속이 가능

       - startup force   : shutdown 후  startup
       - startup read only   : System 복적상의파일(control,alert,background등 )만 쓰기가 가능하다
                                      : mount단계에서 변형 할수있다   alter database read only
       - startup restrict   : restricted session 권한을 가진 사용자만 로그인이 가능하다.
                                      : mount단계에서 변형 할수있다   alter database restrict
    : alter system restricted session 명령으로 동적으로 nornal모드 변형이 가능하다


     Shutdown Transactional :ckpt 발생
                     Normal :ckpt 발생
    Abort : ckpt 미발생    <--startup때 smon process에 의해 instance recovery
    immediate  :ckpt 발생



  Diagnostic file (alter session set 으로 변경,pfile 조작후 spfile사용,  )

      alertSID.log                                         위치보기 : show parameter background_dump_dest
      Background Process trace file             위치보기 : show parameter background_dump_des
      sql_trace file                                       위치보기 : show parameter sql_trace
                                                                 변경 : alter system set sql_trace=true scope=spfile

 

  9. Parameter File   (  spfile 과 pfile )



   1.우선순위 : spfile > pfile   <-둘중하나만있어도 start up은 가능하다 .

   2.spfile은 동적 할당이 가능하다
          alter system set process=200 scope =(memory,spfile,both)
                                                       memory= 현재 instance에만 적용
spfile = spfile 에만 적용
both = nl의 두개다 적용
  slter session          "               " "

   2. spfile과 pfile은   서로변환이 가능하다 .

        Ex. create spfile from pfile
         - pfile 이 ../../dbs 안에 initSID.ora의 형태로 있을때가능하다.
 - pfile은 기본적으로 ../../admin/sid/pfile 에 하나 존재한다 (지우지말것 )
 - pfile 여러가지있는것이 좋고 필요할때마다 spfile 로 바꾸어 사용한다.

   3. Data Dictonary

             ALL_          <-- 내가 원한을 위임받은 객체 (접근가능한 모든 객체 )
             USER_       <-- 내가 직접 생성한 객체
    DBA_         <--database 의 모든 정보
    V$_            <--동적성능 view(D.B. 정보를 실시간으로 .)

   3. ㅤControl File 

        1) Control file 의 Mirroring
    1> 먼저  select * from v$ controlfile로 controlfile의 개수와 위치를 파악한후
         Shutdown 한다 .
    2> 물리적으로 현재의 control file을 복사 ㅤMirroring 하려는 disk의 위치에 복사한다 ,
        후 이름을 바꾸어준다.
    3> Parameter file 의 control_file에 새로 복사한 file의 이름과 위치를 정확히 기입한다.
    4> sql>에서 create spfile from pfile로 spfile을 갱신한다.
    5> startup 한후 select * from v$controlfile로 추가 여부확인한다.


   4. Archived log file

            목적지 확인 : show parameter arch
            D.P.V 확인  : select * from dict where table_name like '%log%'
             Archive 확인 : Archive log list

           1) Archivelog mode 변경

            1. Archive log mode 확인
               sql> archive log list -D.B log mode와 automatic log가 있다
          Archive를 위해서는 두가지 모두 바뀌어져야한다

   2.D.B. log mode  변경 ( D.B shutdown 후에만 )
                                      (변경전에 는 full backup을 해두는 편이 좋다 )
               sql> shutdown immediate
                               startup mount
      alter database (archivelog/noarchivelog)
      alter database open
   3.Automatic log 변경 (online 상에서도 가능하다)

  sql>archive log (start/stop)

2)online redo log group  추가
 1> select * from v$log를 통해 상태와 수 그룹 확인
 2> alter database add logfile
 '../.././xxxxxxxxxxxxxx' size 1M;    <--status unused로 추가된다 .
3) Onlineredo log member 추가
1> alter dbatabase aaa logfile member './../xxxxxx' to group 1
        4) online redo log group 삭제
     1>alter database drop logfile group 1 '../../xxxxxxxx'
5) online redo log member 삭제
     1> alter database drop logfile member '../../xxxxxxx'


  5.  Password File

      목적 : D.B를 startup,shutdown시킬수있는 sys유저에 password 설정해주기
      1) Password fie의 생성
              ../../bin/orapwdSID file =../../dbs/orapw password= xxxxx entries =10
      생성되면 ./dbs의 위치에 암호xxxxxx 동시 접속자 10명을 정의한  file이 생성
      2) password 파일을 생성하면  접속방식이 달라진다 .
            sqlplus ' sys/xxxxxx as sysdba' 로 접속해야합니다.
      3) 그러면 현재 Oracle 은 o/s 인증방식과 Password인증방식 모두를 사용하고 있기 때문에
          conn /as sysdba 같은 명령으로 sysdba로 접근이 가능하다 그렇기 때문에 o/s 인증을
 완전히 막아 주어야한다 .
 /../network/admin/sqlnet.ora에  다음 구문 추가 없으면 생성
          SQLNET_AUTENTICATION_SERVICES = NONE
 으로 o/s 인증을 막아준다 .

      %%% Password File 설정할때 Paramer File 의 parameter를
       REMOTE_LOGIN_PASSWORD=EXCLUSIVE 설정하면 <-- 1:1 환경
         하나의 Database 에 하나의 instrance 사용시 sys,system이외의 다른 user가
 sys 권한을 갖을수있다.
       REMOTE_LOGIN_PASSWORD=SHARED 설정하면   <-- RAC환경
             RAC에서 하나의 D.B에 여러가지
          ㅤInstance 사용시 오직 SYS만이 sysdba권한을 갖는다.. 사용하면
    grant sydba to USER 를 사용할수 없음

  6.Chekpoint 발생

     sql> alter system checkpint

  7. log switch 발생

     sql> alter system switch logfile

  8. Sys와 System의 차이

      Sys <--sysdba privileage,startup,shutdown가능, Dictionary의 소유자
      System <-- dba role privileage

 9.D.B를 완전 수동으로 생성하면 D.B가 생성된후에

       ../rdbms/admin 안의
            (catalog.sql  ,    pupbld.sql     ,    catproc.sql  ) 3가지를
    실행해주어야한다.

  각 table 과 그의 속하는 column의 constraints 조건을 나타내는 명령.
       select  distinct a.owner,b.table_name,a.constraint_type,b.constraint_name,b.column_name,a.r_owner,a.r_constraint_name
from dba_constraints a,dba_cons_columns b
where a.owner='WAS1' and
 b.owner='WAS1'  and
 a.constraint_name=b.constraint_name


 Tip --------------------------------
 help function <--linux,solaris등에서만 지원
   for ex error message is ora-01034 일때
        sql> !oerr ora 01034


Module 10

Table 관리

단일 Data Type                                                 복합 DataType

char (max 255)
varchar2(max 4000bytes)
nchar(n),nvarchar2(n)  <-각나라에따라길이변경
number(p,s)
date <- 날짜 형식이 data
timestamp <-소수점 9자리 정밀도있는 시간제공
raw  <-2진 data max 2000bytes
long <-가변길이문자data max 20G
long raw <-2G까지의 2진 데이타 저장





No comments:

Post a Comment