일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- SQL 명령어가 올바르게 종료되지 않았습니다.
- 우편번호검색
- JDK1.5
- ASP.NET
- 스크립트릿
- RowCount 폐이징
- json
- 객체생성
- ORA-00942
- prototype.js
- Oracle 10g
- 웹표준
- DataList컨트롤
- hyperlink 쿼리스트링 바인딩
- Ajax한글 처리문제
- 자동완성기능
- jsp
- 이벤트 처리
- Ajax댓글
- ASP.NET 회원가입
- ASP.NET 방명록
- XML
- ASP.NET Error
- JavaScript
- 자바스윙
- 테이블또는 뷰가 존재하지 않습니다.
- ajax
- Repeater
- prototype
- 페이지 간 게시
- Today
- Total
IT 쟁이
7월 2일 Administration Workshop 1 본문
첫번째 실습 -인트로->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
성공한 경우 에만 감사 , 실패한경우에만 감사, 생략하면 성공, 실패 모두 감사