관리 메뉴

IT 쟁이

7월 2일 Administration Workshop 1 본문

Oracle10g/Admin Workshop1

7월 2일 Administration Workshop 1

클라인STR 2008. 7. 2. 21:59

첫번째 실습 -인트로->WS1-1-ch10.FGA LAB

SQL> show parameter undo;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900      <--900초동안 유지한다.
undo_tablespace                      string      UNDOTBS1 <--지정된 놈만 사용가능

SQL> ed
Wrote file afiedt.buf

  1  create undo tablespace undotbs2  --undo테이블스페이스를 생성한다.
  2* datafile '/u01/oradata/orcl/undotbs02.dbf' size 50m
SQL> /

Tablespace created.


> ed
Wrote file afiedt.buf

  1  select a.name, b.status
  2  from v$rollname a, v$rollstat b
  3  where a.name in (select segment_name
  4  from dba_segments
  5  where tablespace_name = 'UNDOTBS1')
  6* AND a.usn = b.usn
  7  /
  --활성화된 트랜잭션 조회
NAME                           STATUS
------------------------------ ---------------
_SYSSMU1$                      ONLINE
_SYSSMU2$                      ONLINE
_SYSSMU3$                      ONLINE
_SYSSMU4$                      ONLINE
_SYSSMU5$                      ONLINE
_SYSSMU6$                      ONLINE
_SYSSMU7$                      ONLINE
_SYSSMU8$                      ONLINE
_SYSSMU9$                      ONLINE
_SYSSMU10$                     ONLINE

10 rows selected.

9. Managing Undo Data - 언제 생성되는가?  DML실행시 생성되며, Undo Tablespace 안에 Undo

Segment에
저장된다.  Undo Data- 읽기 일관성을 보장한다.

DML실행시 Undo data 파일이 생성된다.

Undo Data
 - 변경되기전의 data 원본데이터의 복사본이다.
 - 모든 트랜잭션의 변경을 캡쳐(스냅샷)한다.
 - 롤백, 읽기 일관성, 복구 시 사용
 - flshback queries를 이용해 commit된 데이터를 살릴수있다.(단 900초안에)

‌instance recover - Undo data Rollback
   - Redo data 복구


Transactions and Undo Data
트랜잭션 - 논리적인 작업의 단위
각각의 트랜잭션 하나의 세그먼트에 저장될 수 있다.
Undo segment가 가득찰경우 동적으로 확장이 가능하다. (최대 테이블스페이스 범위까지)

Undo 저장정보는 undo Tablespace에 저장된다.
-  일반세그먼트 에서는 사용될수 없다.(Are used only for undo segements)
-  특정한 복구 수행시 고려되어야 함
-  하나의 인스턴스와 연관되어 있다.
-  하나의 Undo tablespace만 쓸 수 있다.

Undo segment는 Sys가 소유하고있다.


   Undo Data     VS    Redo Data
 
   Undo   Redo
-----------------------------------------------
Record of     데이터를 다시 돌림 복구하는 정보 저장
-----------------------------------------------
Used   for    롤백   DB변경사항을 재적용함
-----------------------------------------------
Stored in     Undo Segments  Redo log files
-----------------------------------------------
Protects      읽기일관성을  사용자와 환경적인 원인에서
against  보호한다.  발견된 loss를 막기위해서
-----------------------------------------------

Monitoring Undo
- Undo tablespace 충분한 공간이 있는지 확인하라
  만약 50GB 테이블을 Delete 구문으로 삭제할 경우 어떤 현상이 발생할 것인가?
  SQL>Delete from reallybigtable ;

 ORA-01650 : unable to extend rollback segment
 50GB의 여유공간을 가진 테이블 스페이스가 존재하지 않으므로 에러가 발생한다.


Snapshot - 과거 특정한 시점의 data

특정한 시점에서 Undo Segment에 새로운 DML이 무한정 유입될때의
2가지 방법으로 대처할수 있는데 한가지는 DML의 유입을 막는것이고 다른 한가지는 기존의 영역

에 덮어쓰게된다. 이때 활성화된 트랜잭션이 존재하는 위치에 덮어쓰기가 될경우 Snapshot to 

olderror 가 발생하게된다.


Undo Data의 관리

-적정한 크기의 테이블스페이스를 유지한다.
- 큰 트랜잭션은 주지적으로 commit을 보증해라
 Snapshot too old errors
 - 적정한 주기마다 처리를 한다.
 - undo retention 보증하는것을 고려해라

Automatic undo management :
 UNDO_MANAGEMENT=AUTO
 UNDO_TABLESPACE=UNDOTBS1


-  Snapshot too old errors를 방지하라.

Guaranteeing Undo Retention


SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;

SQL> ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE;

일반 테이블 스페이스에서는 RETENTION GUARANTEE;구문은 사용이 불가능하다.



Chpater 10. Implementing Oracle Database Security

Separation of Responsibilities  책임의분리(견제와 균형의 원리를 지키기 위한 하나의 수단)

- 사용자가 부여한 DBA 권한은 신뢰되어야 한다.
- DBA의 권한이 공유되어야 한다.
- 계정을 절대 공유해서 쓰지말것
- DBA와 SYSTEM 관리자는 서로다른 사람의 부여해라.
- 운영자와 DBA도 책임을 분리할 수 있다.


Database security

confidentiality (기밀성)
기밀성을 보장해야 한다
 -데이터와 서비의스 접근을 제한을 둔다.
 - 인증받은 사용자많이 접속할 수 있다.
 - 의심가는 사용자를 모니터링 한다.


Principle of Least Privilege
최소 권한의 원칙

- 요구되는 소프트웨어만 설치한다.
- 요구되는 서비스이외의 것은 설치하지 않는다.
- 액세스가 필요한 사람만 권한을 준다.
- root계정이나 administrator 계정을 사용을 제한한다.
- sysdba나 sysoper 같은 최고관리자의 사용을 적당하게 제한한다.
- 필요한 부분에만 접근해서 사용할 수 있게한다.


Applying the Principle of Least Privilege

07_DICTIONARY_ACCESSIBILITY=FALSE -Data Dictionary 에 접근 제한두기

Revoke unnecessary privileges from PUBLIC:

REVOKE EXECUTE ON UTL_SMTP, UTL_TCP, UTL_HTTP, UTL_FILE FROM PUBLIC;
- 필요한 사람에게만 관리자 권한을 준다.
- 디렉토리에 제한을 둔다.


Monitoring for Suspicious Activity

 - Mandatory auditing - 필수적인감시 , alert.log ?/rdbms/audit
 - 표준 검사 - 문장검사, 권한검사, 객체검사 (AUDIT_TRAIL)
 - Value-based auditing - App., Triggers - 값이 변하는 검사
 - Fine - grained auditing( FGA) - 상세검사, 조건과 정책을 세울 수 있다.
 - DBA auditing - SYSDBA 검사(권한에 대한에 대한남용을 방지)

 
 AUDIT_TRAIL은 $ORACLE_HOME/rdbms/audit 에 저장되있다.
 잘못관리된 AUDIT_TRAIL은 성능이 저하에 영향을 준다. 반드시 감사로그는 감사 담당자 만 접근이 허용되어야 한다.

AUDIT Statement [문장|권한|객체] 검사
[BY USER [.user ] ]  미지정시  모든 유저 (ALL)
[BY {SESSION | ACESSION}] - 미지정지 BOTH
[WHENEVER [NOT] SUCCESSFULL] - BOTH

성공한 경우 에만 감사 , 실패한경우에만 감사, 생략하면 성공, 실패 모두 감사






Comments