사용자 도구

사이트 도구


dbms:oracle:admin:oracletip

문서의 이전 판입니다!


Oracle Administration Tips

Session 제거하기

  1. 현재 Session을 확인한다.
SQL> select sid,serial# from v$session where schemaname = 'SCOTT';

       SID    SERIAL#
---------- ----------
       133         35
  1. Session을 강제로 종료한다.
SQL> alter system kill session '133,35';

사용제 제거하기

SQL> drop user beflydba cascade;

SQLPLUS로 오라클 접근방법

  1. 오라클 사용자는 권한별로 3가지(SYSDBA/SYSOPER/NORMAL)가 있다.
  2. sysdba 권한으로 sys 로 접근하기
oracle@oracle:~$ sqlplus / as sysdba -- OS 인증만으로 sys 권한획득

oracle@oracle:~$ sqlplus sys/***** as sysdba  -- OS인증이 아닌 ID/Passwd 로 인증을 통한 sys 권한획득

oracle@oracle:~$ sqlplus 'sys/***** as sysdba'
  1. system계정(일반계정)으로 접근하기
oracle@oracle:~$ sqlplus system/***** 

oracle@oracle:~$ sqlplus scott/***** 

타 계정에 권한 부여/회수하기

  1. scott 계정에서
  2. beflyt 계정에서 beflys 계정의 모든 테이블에 select 권한을 부여할때
-- beflyt 계정에서
sql> select 'grant select on '||TABLE_NAME||' to BEFLYS;' from user_all_tables;

-- system 계정에서
sql> select 'grant select on '||TABLE_NAME||' to BEFLYS;' from user_all_tables where owner = 'BEFLYT';
  1. beflyt 계정에서 beflys 계정의 모든 테이블에 select 권한을 회수할때


Oracle 10g에서 테이블 Drop/Purge 시키기

  • Purge 옵션을 가지고 테이블 Drop 하기
SQL> DROP TABLE 테이블명 PURGE;
SQL> DROP TABLE 테이블명 CASCADE CONSTRAINTS PURGE;
  • Drop Table '테이블명'만 가지고 삭제했을 경우 잔재테이블을 Purge 하기
SQL> PURGE TABLE "BIN$IIM7B5WPKdLgRAASeZ4XFA==$0";
  • 모든 잔재테이블을 Purge 시키기(휴지통비우기)
SQL> SHOW RECYCLEBIN( or SHOW RECYCLE )
SQL> PURGE RECYCLEBIN

SQLPULS 에서 실행계획 보는 방법

  1. sqlplus 실행
    $ sqlplus userid/passwd
  2. plan table 생성
    SQL> @?/admin/utlxplan.sql
  3. execution plan를 화면에 표시하도록 설정
    SQL> SET autot ON
  4. plan를 보기 원하는 sql 실행
    SQL> SELECT * FROM member;
     
    ...
     
    257 ROWS selected.
     
     
    Execution Plan
    ----------------------------------------------------------
     
    -----------------------------------------------------------------
    | Id  | Operation         | Name   | ROWS  | Bytes | Cost (%CPU)|
    -----------------------------------------------------------------
    |   0 | SELECT STATEMENT  |        |   257 | 37265 |     5   (0)|
    |   1 |  TABLE ACCESS FULL| MEMBER |   257 | 37265 |     5   (0)|
    -----------------------------------------------------------------
     
    Note
    -----
       - 'PLAN_TABLE' IS OLD version
     
     
    Statistics
    ----------------------------------------------------------
            813  recursive calls
              0  db block gets
            184  consistent gets
             10  physical reads
             72  redo SIZE
          43330  bytes sent via SQL*Net TO client
            587  bytes received via SQL*Net FROM client
             19  SQL*Net roundtrips TO/FROM client
              5  sorts (memory)
              0  sorts (disk)
            257  ROWS processed

오라클이 설치된 OS에서 / as sysdba 로 접속 막는방법

  1. 오라클이 설치된 OS에서 connect / as sysdba 접속할때 dba 그룹사용자가 sysdba 권한일때 패스워드 인증없이 접속이 가능합니다.
  2. 보안문제상 sysdba 권한으로 접속하기를 원할때 사용하는 방법입니다.
  3. $ORACLE_HOME/network/admin/sqlnet.ora 을 아래와 같이 처리한다.
#NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
#SQLNET.INBOUND_CONNECT_TIMEOUT = 0
SQLNET.AUTHENTICATION_SERVICES= (NONE) # default는 (NTS) 입니다.
dbms/oracle/admin/oracletip.1174304602.txt.gz · 마지막으로 수정됨: 2007/03/19 20:43 저자 starlits