오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원


★ 오라클 9i + 10g 실무중심 자격증취득 교육

 

오라클 공인 전문가 제도(Oracle Certified Professional)는 오라클 제품 사용자의 관련 업무별 전문

기술 지식 정도를 측정하여 대내외적으로 증명해 주며, 오라클의 제품과 최신 기술을 활용하여 최적의 솔루션을 설계, 개발, 응용하는데 필요한 인력의 역량을 인증해 주는 프로그램입니다.

 

* 교육 담당 & 관리자 : 김 윤 석
* 교육 문의 & 예약 접수 : 02) 6255-8046
* 홈페이지 http://www.itmoya.net/ocp/main_1.htm
- 오라클지정 교육원, 본원 시험실시, 40%바우쳐제공

 

2006 오라클 9I+10G 양성교육 일정은 국비지원 제도 사항으로 혜택을받으실수 있습니다.
자세한 교육내용를 알고 싶으시면 운영자에게 개인상담 / 전화 /메일로 주시면 자세한
세부 교육커리 와 수강료에 대해서 안내해 드리겠습니다.

 

※본원 오라클 지정 취업지원과정 교육 파트너(Oracle Workforce Development Program)

 

오라클의 정규 과정의 강의를 수행할 수 있는 강사를 보유한 기관을 대상으로 오라클의 교육과목에

대하여 공식교재와 S/W를 활용하여 교육과정을 진행하는 교육 기관입니다.

협력교육기관은 자체적으로 과정을 개설하며, 수강생을 모집하고, 강의를 수행하며, 교육 품질에 대한 책임도 협력 교육기관이 소유하는 형태의 교육 협력 파트너입니다.
오라클은 우수 IT인력 양성과 실업자/미취업자의 취업 지원을 위한 취업지원과정을 통해 오라클의 교육과정을 수강하고자 하는 수강희망자에게 폭넓은 기회를 제공하고자 노력하고 있습니다.

 

▶ 교육과정 : ORACL-DBA 9I+10G [WDP공인지정센터]
▶ 개강안내 : 매월 초 개강 / 수시접수 / 교육시간 조정가능 / 평일,주말반 운영
▶ 교육대상 : 데이터베이스 전문가가 되기 원하는 사람
                    OCP 자격증 취득을 원하는 사람
                    오라클을 사용하여 SQL 프로그래밍을 하려는 사람
▶ 모집정원 : 15명[선착순마감]
▶ 교육혜택 : WDP지정센터로 오라클 교육과정 수강신청시 바우처 40% 할인쿠폰 증정 [재수강 무료]
▶ 교육장소 : 강남ITWILL교육센터 7층[오라클 공인 강의장]

 

<강남 국제자격증 시험센터>
전 과정 15명이내 소수 집중 강의와 30석 세미나형 강의
전 강의장 빔 프로젝트 또는 모니터 분배기를 통한 비쥬얼 교육
대학교수(경희대,중앙대,청강대 등) 및 현장경력 6년의 실무진 강사
담임선생님의 철저한 회원관리
1인 1대의 교육시스템
우수수강생중 선별하여 보원 프로젝트 참여기회 부여
노동부 지정 교육기관 - 고용보험 환급제도 실시 교육기관
제1회 KOEX전자상거래박람회 웹마스터대표교육기관선정
매일경제 TV방영
(크리에이티브21,인터넷 전문교육기관선정- 2월 18일 방영)
HOW PC 웹전문 교육기관 선정(1999년 11월호)
정통부,노동부 지정교육원
iMBC 라이프 협력업체 ,
동아일보 donga.com제휴업체
리눅스원지정교육기관
호산나넷 IT 지정교육원
KTF 지정교육기관

 

<시스템>
펜티엄 5 512MB 80GHDD LCD 모니터
최고급 강의 시스템-XGA Beam Projector
최고급 서버
전용 교육서버
HP Netserver LH4 Xeon 55O 4 Way RAID 5
및 Inter PⅢ-866 Dual 8대운영
Ciscon CCNA, CCNP, CCIE 실습용 랙 완비
SUN Ultra 10 10대보유
Unix 전용서버 운영
10M급 전용회선

 

▶ 오라클 9I 교육과정 및 세부내용
---------------------------------------------------------
1)Introduction to Oracle SQL and PL/SQL
2)Oracle9i Database: Fundamentals I
3)Oracle9i Database: Fundamentals II
4)Oracle9i Database: Performance Tuning
5)Oracle Database 10g : New Features for Administrators
---------------------------------------------------------

 

교육과정 세부내용 - 8주교육 [주5일 일일3시간 45분진행]

 

* 1개월


<1,2주차> PL/SQL (1Z0-007)
OCP 자격증 개요
PL/SQL의 기초, 블록(선언부,실행부,예외 처리부)
제어문의 구조(IF문, CASE문, LOOP문, GOTO문, NULL문)
예외 처리(종류, 처리부의 형식, 처리 방식)
오라클 데이터 조작

(DML, CURSOR, CURSOR FOR LOOP, CURSOR Variable, CURSOR 연산식, DCL)
타입(COLLECTION, BULK BINDING, RECORD)
모듈 - 프로시저, 함수, 패키지(PRIVILEGE, 모듈 호출, FUNCTION, 패키지, 오버로딩, 외부 프로시저)
트리거(DML 트리거, INSTEAD OF TRIGGER, 시스템 이벤트 트리거)
Native Dynamic SQL(DBMS_SQL 패키지, 고유 동적 SQL)
객체(Object Type, COLLECTION, 객체 뷰, 이름 분석(Name Resolution)과 엘리어스)
상속

(Inheritance, Step by Step, 치환성(sbsstitutability), 타입의 진화(Type Evolution), 객체 뷰의 상속)

 

<3,4주차> Fundamental Ⅰ (1Z0-031)
Basic of the Oracle Database Architecture
(오라클 서버구조, 오라클 서버 시작하기, Oracle Instance의 관리,오라클 데이터베이스 생성)
Managing the Physical Database Structure
(데이터 딕셔너리의 내용과 용도, 컨트롤 파일의 유지, 리두 로그 파일 유지)
Managing Tablespaces and Datafiles
(데이터베이스의 논리적 구조에 대한 설명)
Storage Structures and Undo Data
(저장 구조 및 관계, 언두 데이터의 관리)
Managing Database Objects
(테이블의 관리, 인덱스 관리, 데이터 무결성 관리)
Managing Database Users
(사용자 관리, 비밀번호 보안 및 리소스 관리, 권한의 관리, 롤의 관리(Managing Roles)

 

* 2개월


<1,2주차> Fundamental Ⅱ (1Z0-032)
Networking 개요
Oracle Net Architecture 기본
Net Server-Side 구성의 기본
Oracle Net Services Client-Side 구성의 기본
오라클 공유 서버의 활용과 구성
Backup과 Recovery 개요
인스턴스와 미디어 복구 개요
Database Archive 모드 구성
Oracle Recovery Manager 개요와 구성
User-Managed Backups
RMAN Backups
User-Managed Complete Recovery
RMAN Complete Recovery
User-Managed Incomplete Recovery
RMAN Incomplete Recovery
RMAN Maintenance
Recovery Catalog 생성과 유지보수
데이터베이스간의 데이터 전송
데이터베이스내로 데이터 로딩

 

<3,4주차> Performance Tuning (1Z0-033)
Oracle DB 10g upgrade : new feature 10g

Database Tuning 개요
오라클 성능 튜닝 방법
진단과 튜닝 도구
동적 성능 뷰의 통계
스태츠팩을 사용한 통계수집
경고 로그와 추적 파일
공유 풀 크기 조정
버퍼 개시의 크기 조정
나머지 SGA 구조의 크기 조정
데이터베이스 구성과 I/O 문제
정렬 작업의 최적화
래치 경합의 진단
롤백
언두세그먼트 튜닝
락 경합의 모니터링과 탐지
오라클 공유 서버의 튜닝
애플리케이션 튜닝
오라클 블록의 효율적 사용
SQL 구문 튜닝
OS 고려사항
데이터베이스 Resource Manager
- Oracle DB 10g DBUA 업그레이드 인터페이스와 업그레이드 인포메이션 툴
- 새로운 SYSAUX 테이블스페이스와 자동화된 저장 관리(ASM) 기능
- 데이터베이스 자원 관리자와 개선된 통계 수집
- 새로운 잡 스케줄러
- 대기 인터페이스에서의 튜닝 개선
- SQL Access 조언자와 SQL 쿼리 개선된 가상 프라이빗 데이터베이스와 오디팅
- RMAN, 플래쉬백, 트랜잭션 복구, 데이터 가드의 새로운 기능
- 새로워진 데이터 웨어하우징, 데이터 마트, 데이터 스토어

추천학원 http://www.itmoya.com

Posted by genesmer
,

오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원

1장 오라클 서버의 구조와 백업/복구원리

주종면 | 플랜정보기술

오라클 데이터베이스를 사용하다 보면 다양한 에러코드와 함께 장애가 발생하는 경우를 한두 번쯤 경험해 보았을 것 입니다. 이런 경우 대부분의 사용자들은 자신이 알고 있는 모든 지식을 기반으로 복구작업을 수행하게 됩니다. 하지만, 막연한 방법과 절차는 복구작업에 도움이 되지 않을 뿐 아니라 오히려 불필요한 시간의 낭비를 초래할 수 있기 때문에 무엇보다도 철저한 계획과 준비가 요구됩니다. 또 한가지 염두에 두어야 할 점은 다양한 장애와 복구방법에 대한 이해를 하기 전에 반드시 오라클 서버 구조에 대한 이해를 하셔야 합니다. 구조에 대한 명확한 이해 없이는 장애에 대한 복구작업을 수행할 수가 없기 때문입니다.

자~ 그럼 오라클 서버의 전체 구조와 복구 원리를 소개하도록 하겠습니다.

  1-1 오라클 서버의 구조

먼저, 오라클 서버에 대한 장애와 복구를 체계적으로 습득하기 위해서는 물리적 구조에 대한 이해를 명확히 하셔야 합니다. 예를 들어, 어느날 여러분이 소유하고 계신 자동차가 갑자기 정상적으로 시동이 걸리지 않는다면 어떻게 하시겠습니까?

만약, 여러분이 자동차 구조에 대한 해박한 지식을 가지고 있다면 직접 원인을 찾기 위해 다양한 점검을 하게 되고, 또한 조치를 하게 될 것 입니다. 하지만, 자동차 구조에 대해 전혀 이해를 못한다면 이러한 경우 여러분이 할 수 있는 것은 아무것도 없을 것 입니다.

이와 같은 원리로 오라클 서버환경에서도 장애가 발생했을 때 적절한 조치와 복구작업이 수행되기 위해서는 장애가 발생한 원인을 분석할 수 있어야 합니다. 또한, 그 원인을 분석하기 위해서는 오라클 서버에 대한 철저한 이해가 요구됩니다. 다음은 오라클 서버의 기본구조에 대한 설명입니다. 오라클 서버는 다음과 같이 3가지 영역으로 구성되어 있습니다.

1) 메모리 영역

오라클 서버가 사용 가능한 상태가 되면 모든 사용자들은 데이터베이스에 접속할 수 있으며, 또한 테이블을 통해 데이터를 검색할 수 있게 됩니다. 이때, 읽혀진 테이블 정보들이 잠시 저장되는 공간이 메모리 영역 입니다. 이 공간은 SGA (System Global Area) 영역이라고 부르며 다음과 같이 4가지 영역으로 구성되어 있습니다.

공유-풀 영역 (Shared Pool Area)
데이터버퍼 캐시 영역 (Data Buffer Cache Area)
로그버퍼 영역 (Log Buffer Area)
라지-풀 영역 (Large Pool Area)
자바-풀 영역 (Java Pool Area)
스트림-풀 영역 (Stream Pool Area)
2) 프로세스 영역

사용자가 오라클 서버에 접속하기 위해서는 SQL*PLUS 또는 사용자의 애플리케이션 프로그램을 통해 접속하게 됩니다. 이때, 활성화 되는 영역을 사용자 프로세스(User Process)라고 합니다. 그리고, 사용자가 실행한 SQL문이 실행되기 위해서는 서버 프로세스(Server Process)에 의해 분석되며 테이블로부터 읽기 또는 쓰기 작업을 수행하게 됩니다.

또한, 오라클 서버가 효과적으로 운영되기 위해서 다음과 같은 백그라운드 프로세스(Background Process)가 기본적으로 제공됩니다.

DBWR (Database Writer Process)
LGWR (Log Writer Process)
PMON (Process Monitor Process)
SMON (System Monitor Process)
CKPT (Check-Point Process)
ARCH (Archive Process)
RVWR
MMAN (Memory Manager Process)
RBAL
ORBn
RFS (Remote File System Proces)
MRO
3) 파일 영역

사용자 또는 오라클 서버에 의해 생성되는 모든 테이블 정보가 저장되는 물리적 구조를 파일 영역 또는 데이터베이스(Database) 영역이라고 합니다.

다음은 오라클 서버의 기본 파일구조 입니다.

파라메터 파일 (Parameter File)
데이터 파일 (Data-File)
리두로그 파일 (Redo-Log File)
컨트롤 파일 (Control File)
플래시-백 데이터베이스 로그 파일 (Flash-Back Database Log File)
아카이브 리두로그 파일 (Archive Redo-Log File)


자~ 그럼 보다 구체적으로 오라클 서버의 각 구조를 알아 보도록 하겠습니다.


1-2 SELECT문의 처리과정

이번에는 SELECT문의 처리과정을 통해 오라클 서버의 구조를 보다 구체적으로 알아 보도록 하겠습니다. 사용자들이 실행하는 SELECT문의 결과가 리턴될 때 오라클 서버의 각 구조를 어떻게 사용하는지를 이해해 보십시오.

1) STEP-1 : Parsing

SQL*PLUS 툴을 통해 SCOTT 사용자 계정과 TIGER 암호로 오라클 서버에 접속합니다.

사용자가 실행한 SELECT문은 사용자 프로세스를 거쳐 서버 프로세스로 전송이 됩니다. 서버 프로세스는 사용자가 실행한 SELECT문에 대해 다음과 같이 구문분석(Parsing) 작업을 수행합니다.

<구문분석>
(1) 메모리 영역 중에 공유-풀 영역을 검색하여 사용자가 실행한 문장과 동일한 문장이 존재하는지 확인합니다. 동일한 문장이 발견되면 구문분석 작업을 중단하고, 동일한 문장이 발견되지 않으면 다음 단계의 작업을 계속 수행합니다.
(2) 사용자가 실행한 SELECT문의 문법을 확인합니다.
(3) SELECT문에 작성된 테이블과 컬럼 들이 사용가능한지 확인합니다.
(4) 해당 사용자가 테이블과 컬럼 들을 검색할 수 있는 권한이 있는지 확인합니다.
(5) 모든 검증작업이 완료되고 나면 구문 분석된 결과를 공유-풀 영역에 저장합니다. 분석결과를 저장하는 이유는 다른 사용자에 의해 동일한 문장이 재 실행되는 경우 구문분석 작업을 재 수행하는 불필요한 작업을 피하게 함으로써 SELECT문의 실행성능을 빠르게 하기 위함 입니다.

2) STEP-2 : Execution

해당 테이블이 저장되어 있는 데이터 파일로부터 데이터를 읽어서 메모리 영역인 데이터-버퍼 캐시 영역(Data-Buffer Cache Area)에 저장해 둡니다. 먼저, 테이블과 데이터 파일과의 관계를 이해하기 위해서는 다음 문장에 대한 이해가 필요합니다.

SQL> CREATE TABLESPACE insa
         DATAFILE 'C:\ORACLE\ORADATA\ORA92\INSA01.DBF' SIZE 10M;
→ 인사 업무에 관련된 테이블이 저장될 공간

SQL> CREATE TABLE emp
         (EMPNO NUMBER(4),
          ENAME VARCHAR2(15))
          TABLESPACE insa;
→ EMP 테이블이 저장될 공간은 INSA 테이블스페이스 입니다. 다른 의미로 표현한다면
    EMP 테이블이 저장될 공간은 INSA01.DBF 파일입니다.

3) STEP-3 : Fetch

STEP-2 단계에 의해 데이터 버퍼 캐시영역에 저장되어 있는 데이터를 읽어서 사용자의 SQL*PLUS 화면에 출력해 주는 단계를 인출(FETCH)라고 합니다. 이 단계는 SELECT문을 실행하는 경우에만 수행되며 UPDATE, DELETE, INSERT문을 실행할 때는 수행되지 않습니다. 즉, SQL문을 실행한 후 처리된 결과가 화면에 출력되는 것을 인출이라고 합니다.

1-3 DML문의 처리과정

이번에는 DML문 (UPDATE, INSERT, DELETE)의 처리과정에 대해 자세히 알아 보도록 하겠습니다. 사용자가 실행한 DML문에 대해 구문분석을 수행하는 단계까지는 SELECT문과 동일한 방법과 절차에 의해 수행됩니다.

먼저, 처리과정에 대해 알아보기 전에 DML문에서 만 사용되는 오라클 서버의 기본구조에 대해 알아 보겠습니다.

[C:\] sqlplus SCOTT/TIGER
SQL> UPDATE emp
SET sal = sal * 1.1
WHERE empno = 7934;
SQL> SELECT * FROM emp WHERE empno = 7934;
7934 KING 1100
SQL> ROLLBACK;
SQL> SELECT * FROM emp WHERE empno = 7934;
7934 KING 1000

SQL 문장 중에 DML문들은 항상 실행한 후 COMMIT 또는 ROLLBACK문을 실행해야 해당 트랜잭션이 종료됩니다. 위 예제와 같이 UPDATE 문을 실행한 후 ROLLBACK문을 실행하게 되면 변경되었던 모든 행 정보는 취소됩니다. 이러한 과정을 처리하기 위해서는 UPDATE문이 실행될 때 마다 변경 전 데이터 (7934 KING 1000)와 변경 후 데이터(10 KING 1100)를 모두 어딘가에 저장해 두었다가 ROLLBACK문을 만나는 순간 변경 전 데이터로 변경 후 데이터를 복구해야 할 것 입니다. 이때 변경 전 데이터를 잠시 저장해 두는 공간을 롤백-세그멘트(Rollback Segment) 또는 언두 세그멘트(Undo Segment)라고 합니다. 위 그림에서 데이터 파일에 생성되어 있는 RBS01은 언두 세그멘트 입니다. 현재, 위 그림의 공유-풀 영역을 보면 사용자가 실행한 UPDATE문의 구문 분석된 결과가 저장되어 있으므로 UPDATE문이 파싱까지 수행되어 있는 것을 알 수 있습니다.


1) STEP-1/STEP-2

데이터 파일로부터 해당 테이블을 읽어 행 데이터를 데이터 버퍼 캐시영역에 저장합니다.
이때, 메모리에 저장되는 행 데이터에 대한 변경 작업을 수행하기 위해서는 만약 변경 작업 후 ROLLBACK문을 수행할 것을 대비하며 변경 전 데이터를 저장해 둘 수 있는 언두 세그멘트의 공간을 확보해 두어야 합니다. 위 그림에서 RBS01 데이터 파일과 데이터 버퍼 캐시영역에 일정한 공간을 확보합니다.

2) STEP-3

공유-풀 영역을 구성하는 데이터 딕션어리 캐시영역 (Data Dictionary Cache Area)은 사용자가 실행한 DML문의 구문분석을 수행하기 위한 테이블 정보와 락(Lock) 정보를 저장해 주는 메모리 영역입니다.
UPDATE문을 실행했을 때 어떤 행에 락(LOCK)이 발생하였는지를 기록해 두었다가 다른 사용자들이 똑 같은 행 데이터에 대해 변경작업을 수행하려고 하면 더 이상 작업을 수행하지 못하도록 DML문을 대기상태로 만들게 됩니다.

3) STEP-4

마지막 단계는 리두로그 버퍼영역에 변경 전 데이터(1 주종면 100)와 변경 후 데이터(1 주종면 110)를 모두 백업(Backup)하게 됩니다.(이렇게 모든 변경정보를 백업하는 이유는 "백업과 복구 원리"에서 자세히 소개됩니다.)

1-4 COMMIT문의 처리과정

마지막으로 DML문을 수행한 후 트랜잭션(Transaction)을 종료하기 위해 실행하는 COMMIT 문의처리 과정에 대해 자세히 알아보도록 하겠습니다.

1) STEP-1

사용자가 DML문을 실행한 후 COMMIT문을 실행하면 서버 프로세스로 전송됩니다.

2) STEP-2

서버 프로세는 로그버퍼 영역에 백업되어 있는 데이터에 대해 시스템 변경번호(System Change Number)를 부여합니다. 사용자가 COMMIT문을 수행할 때 마다 오라클 서버에 의해 연속적으로 부여되며 해당 트랜잭션이 데이터베이스 생성 후 몇 번째로 COMMIT 된 것인지를 나타냅니다. (SCN의 사용 용도에 대해서는 "백업과 복구 원리"에서 자세히 설명됩니다.)

3) STEP-3

일정한 시점이 되면 LGWR는 로그버퍼 영역에 백업되어 있는 데이터를 리두로그 파일로 저장합니다. 왜냐하면, STEP-2 단계에서 언급한대로 리두로그 버퍼는 사용자들이 실행한 DML문에 의해 발생한 모든 변경된 데이터를 저장하는 공간인데, 만약, 시스템이 갑자기 정전되면 리두로그 버퍼에 저장되어 있던 모든 데이터들이 유실되기 때문입니다. 그래서, 일정시점이 되면 LGWR 프로세는 리두로그 버퍼의 데이터들을 영구히 저장될 수 있는 운영체계 상의 리두로그 파일로 저장하게 되는 것 입니다.

다음은 LGWR가 리두로그 버퍼의 내용을 리두로그 파일로 저장하는 시점의 경우입니다.

사용자가 COMMIT문을 실행하는 경우
매 3초가 지날 때 마다 오라클 서버에 의해 실행되는 경우
CHECKPOINT가 발생하는 경우
오라클 서버가 정상적으로 SHUTDOWN 되는 경우

4) STEP-4

LGWR 프로세스에 의해 리두로그 파일에 백업 데이터가 저장되고 나면 사용자의 화면에 "Commited"라는 메시지를 출력하게 됩니다.
즉, "커밋 되었습니다"라는 메시지의 의미는 변경 데이터를 테이블에 저장했다는 의미가 아니라 관련 데이터를 백업했다는 의미를 가지고 있습니다.

5) STEP-5

LGWR 프로세스가 리두로그 버퍼의 모든 데이터를 리두로그 파일에 기록하지 못한 경우에는 다음 리두로그 파일로 이동하여 계속적으로 데이터를 기록하게 됩니다.

6) STEP-6

LGWR 프로세스가 하나의 리두로그 파일에 모든 로그버퍼의 데이터를 저장하지 못하면 다음 로그파일로 이동하게 되는데 이때 CKPT 프로세스는 체크포인트(CHECKPOINT)를 발생시켜 현재 시점까지의 모든 변경 상태를 컨트롤 파일(Control File)과 데이터 파일(Data File)에 기록하게 됩니다. (모든 변경상태를 기록해 두는 이유는 "백업과 복구 원리"에서 자세히 설명됩니다.)

7) STEP-7

DBWR 프로세스는 데이터 버퍼 캐시영역에 저장되어 있는 테이블의 변경 후 데이터를 최종적으로 테이블에 기록하게 됩니다.


1-5 오라클 서버의 시작과 종료

지금까지 사용자가 실행하는 SELECT문, DML문, COMMIT문의 처리과정을 통해 오라클 서버의 각 구조가 어떤 역할을 하게 되는지 자세히 알아 보았습니다.

이번에는 오라클 서버의 시작과 종료단계에 대해 보다 구체적인 이해를 해 보도록 하겠습니다. 또한, 기본구조를 설명하면서 소개되지 않았던 다른 구조들과 시작과 종료의 기본 원리에 대해서도 함께 소개될 것 입니다.

오라클 데이터베이스를 사용하면서 발생하는 장애에 대한 원인을 쉽게 파악하고 복구 절차를 이해하기 위해서는 지금부터 소개 드리는 내용이 매우 중요합니다.


1)NOMOUNT 단계

STARTUP 명령어에 의해 오라클 서버를 시작하는 첫 번째 단계를 NOMOUNT 단계라고 합니다. 이 단계를 수행하게 되면 오라클 서버의 기본구조 중에 메모리 영역(SGA 영역)과 백그라운드 프로세스가 사용 가능한 상태로 활성화 됩니다.

결론적으로 메모리 영역이 활성화 되기 위해서는 데이터 버퍼 캐시영역과 로그버퍼 영역 그리고, 공유-풀 영역을 활성화 해야 하며 각 영역에 대한 크기를 결정해야 할 것 입니다.

각 메모리 영역의 크기는 init<SID>ora 파라메터 파일을 참조하면 다음과 같은 파라메터 값을 참조하게 됩니다.

[C:\] EDIT initORCL.ora
SHARED_POOL_SIZE = 33000000 ← 공유-풀 영역의 크기를 결정
LOG_BUGGER = 8192 ← 로그버퍼 영역의 크기를 결정
DB_CACHE_SIZE = 33000000 ← 데이터 버퍼 캐시영역의 크기를 결정
(1) init<SID>.ora 파라메터 파일을 읽어 관련된 파라메터 값을 참조합니다.
(2) 관련 파라메터 값을 기반으로 SGA 영역을 활성화 합니다.
(3) 관련 파라메터 값을 기반으로 백그라운드 프로세스를 활성화 합니다.
(4) BACKGROUND_DUMP_DEST 파라메터가 지정하는 경로에 있는 ALERT!_<SID>.LOG 파일에 데이터베이스의 시작과 관련된 모든 로그 정보를 기록해 둡니다.

만약, init<SID>.ora 파라메터 파일을 읽을 수 없다면 어떻게 될까요 ?

[C:\] CD C:\ORACLE\ORA92\DATABASE
[C:\] MOVE initORCL.ora initORCL.bak
[C:\] sqlplus "/as sysdba"
SQL> STARTUP
ORA- ERROR
→ NOMOUNT 단계를 수행하기 위해서 init<SID>.ora 파일을 읽어야 하지만 파라메터 파일은 이미 MOVE 된 상태이기 때문에 읽을 수가 없습니다.

2) MOUNT 단계

오라클 서버의 두 번째 시작 단계를 MOUNT 단계라고 합니다. 이 단계는 현재 데이터베이스의 모든 상태 정보를 읽어오게 됩니다.

(1) 먼저, 오라클 데이터베이스의 모든 상태정보를 저장하고 있는 컨트롤 파일을 읽습니다.
(2) 오라클 데이터베이스의 환경을 결정하는 init.ora 파라메터 파일을 읽습니다.
(3) 컨트롤 파일과 파라메터 파일에 저장되어 있는 여러가지 환경 정보(DB_NAME 명)가 일치하는지를 검증합니다. 만약, 이 단계에서 환경정보가 일치하지 않으면 MOUNT 단계는 실패하게 되고 사용자들은 데이터베이스를 사용할 수 없게 됩니다.
그러므로, init<SID>.ora 파일 내에 환경설정 정보를 임의로 변경해서는 안됩니다.
(4) 기타, 데이터 파일과 리두로그 파일의 이름과 경로, 현재 상태정보도 읽습니다.

만약, control01.ctl 컨트롤 파일을 읽을 수 없다면 어떻게 될까요 ?

[C:\] CD C:\ORACLE\ORADATA\ORA92
[C:\] MOVE control01.ctl control01.bak

[C:\] sqlplus "/as sysdba"
SQL> STARTUP

ORA- ERROR
→ MOUNT 단계를 수행하기 위해서 control01.ctl 파일을 읽어야 하지만 컨트롤 파일은 이미 MOVE 된 상태이기 때문에 읽을 수가 없습니다. NOMOUNT 단계 수행 후 MOUNT 단계를 수행하지 못해 에러가 발생합니다.

3) OPEN 단계

오라클 서버의 마지막 시작 단계를 OPEN 단계라고 합니다. 이 단계는 MOUNT 단계에서 수집한 데이터베이스의 상태정보가 정상적인지 확인하는 작업을 수행하게 됩니다.
예를 들어, 컨트롤 파일 내에는 SYSTEM 테이블스페이스가 c:\oracle\oradata\ora92\users01.dbf 파일로 존재한다는 상태 정보를 가지고 있는데, 실제 운영체계 상의 해당 경로에 해당 파일이 존재하는지를 검증하게 됩니다.
참고로, SQL*PLUS 상에서 테이블스페이스를 생성하게 되면 관련된 모든 정보가 컨트롤 파일에 저장됩니다. 이렇게 저장하는 이유는 데이터베이스의 시작단계에서 사용자가 생성한 테이블스페이스 인지를 검증하기 위해서 입니다. 컨트롤 파일에 정의되어 있는 파일 및 경로가 운영체계 상에 실제 파일 및 경로로 존재하지 않으면 데이터베이스를 더 이상 OPEN 하지 않으며 사용할 수 없게 됩니다.
만약, 모든 상태정보가 일치한다면 사용자들은 오라클 서버에 접속할 수 있게 되고 또한 테이블을 검색 및 조작할 수 있게 됩니다.

만약, system01.dbf 데이터 파일을 읽을 수 없다면 어떻게 될까요 ?

[C:\] CD C:\ORACLE\ORADATA\ORA92
[C:\] MOVE users01.dbf users01.bak
[C:\] sqlplus "/as sysdba"
SQL> STARTUP
ORA- ERROR c:\oracle\oradata\ora92\users01.dbf
→ OPEN 단계를 수행하기 위해서 컨트롤 파일에 정의되어 있는 데이터 파일의 상태정보와 실제 운영체계 상의 파일의 상태정보가 일치 하는지를 확인하게 됩니다. SYSTEM01.DBF 데이터 파일은 이미 MOVE 된 상태이기 때문에 읽을 수가 없습니다.

1-6 백업과 복구 원리

데이터베이스를 운영하다 보면 예상하지 못한 시스템 에러나 사용자의 실수 또는 갑작스런 정전 등과 같은 주변환경의 문제로 인해 더 이상 데이터베이스를 운영할 수 없는 상황에 부딪히게 됩니다. 이런 경우가 발생하더라도 데이터베이스 관리자는 사용자의 데이터를 안전하게 복구할 수 있는 준비를 평소에 해야 하는데 오라클 데이터베이스에서는 여러 가지 백업과 복구방법을 제공하고 있습니다. 자신이 운용하는 데이터베이스가 어떤 성격의 데이터를 가지고 있으며, 얼마나 많은 데이터를 가지고 있는지, 장애가 발생한 경우 데이터의 복구시간이 더 중요한지 아니면 데이터의 복구율이 더 중요한지를 잘 이해하고 분석하여 적절한 백업 방법을 준비해야 합니다.

다음은 오라클 서버구조에서 사용자들이 실행하는 DML문에 의해 변경되는 데이터들에 대한 백업과 복구 원리에 대해서 알아 보도록 하겠습니다.
오라클 데이터베이스의 구조에서 로그버퍼 영역에는 사용자가 DML문을 통해 변경한 모든 데이터가 백업되며 로그기록기(LGWR)에 의해 로그파일에 저장됩니다. 로그버퍼와 로그파일에 변경 전 데이터와 변경 후 데이터 모두를 저장하는 이유는 갑작스런 시스템 에러나 사용자 실수, 정전 등으로부터 데이터베이스가 다운되거나 시스템이 다운될 때 변경된 데이터가 미처 테이블에 저장되지 못 했을 경우를 위해 백업작업을 수행하는 것입니다. 이런 경우, 모든 변경 데이터는 리두로그 파일에 저장되어 있다가 데이터베이스가 다시 정상적으로 시작될 때(STARTUP) 리두로그 파일에 저장되어 있던 데이터를 통해서 데이터를 복구하게 됩니다.

예를 들어, 대부분의 사용자들은 한두 가지의 워드 프로세스 툴을 사용하고 계실 것 입니다. 만약, 여러분이 자신이 수행하고 있는 업무에 대해 담당 관리자에게 보고서를 제출하기 위해 열심히 워드 프로세스 작업을 수행하고 있다고 가정해 보십시오.
약 10장 정도의 보고서를 작성하고 있는데 갑자기 정전이 되었다고 생각해 보십시오. 불행하게도 지금까지 작성한 보고서를 미처 저장도 하기 전에 정전이 되었다면 그때까지 입력한 모든 문서들은 삭제가 되고 말 것입니다. 바로 이런 문제를 해결하기 위해서는 워드 프로세스 툴의 환경설정에서 사용자가 직접 문서에 대해 저장하지 않더라도 툴에서 자동 저장해 주는 기능을 설정해 둘 수 있을 것 입니다.

오라클 데이터베이스 환경은 워드 프로세스와 같이 한명의 사용자가 데이터를 저장하는 구조가 아닙니다. 무수히 많은 사용자들이 데이터를 입력, 수정, 삭제, 조회하는 아주 복잡하고 까다로운 구조를 가지고 있는 시스템 소프트웨어 입니다.
이런 환경에서 어떤 사용자는 입력을 수행하고, 또 다른 사용자는 수정과 삭제를 수행하다가 갑자기 시스템이 정전에 의해 다운된다면 그때까지 처리되고 있던 모든 데이터들은 어떻게 될까요 ?
기본적으로 정전이 되던 시점까지 사용자가 COMMIT문을 수행하였다면 그 모든 데이터들은 리두로그 파일에 백업이 되어 있으며, 만약, COMMIT문을 수행하지 못했다면 모든 데이터들은 자동 롤백(Rollback)이 되게 됩니다.
그리고, COMMIT문을 처리하는 단계에서 보았던 것처럼, 리두로그 파일에는 백업되었지만 테이블에는 저장되지 못한 데이터들은 다시 데이터베이스가 재 시작하게 될 때 SMON 백그라운드 프로세스에 의해 리두로그 파일의 백업 데이터들이 읽혀져서 복구작업이 수행되게 됩니다.

1-7 시스템 변경 번호

이번에는 오라클 데이터베이스의 파일구조와 SCN 에 대해서 좀 더 자세히 알아보겠습니다.
먼저, 모든 데이터베이스 파일에는 사용자들이 COMMIT문을 실행할 때마다 발행되는 SCN(SYSTEM CHANGE NUMBER)이 CKPT 프로세스에 의해 모든 데이터 파일과 컨트롤 파일에 저장됩니다. (앞에서 소개 드린 "COMMIT문의 처리과정"을 참조하십시오.) SCN을 파일의 헤드 영역들에 저장하는 이유는 데이터베이스에서 COMMIT된 현재 시점을 구분하기 위해서 입니다. 만약, 향후에 데이터베이스에 문제가 발생하여 복구 작업을 수행해야 할 경우 특정시간, 특정 SCN을 기준으로 복구작업을 수행해야 할 때 경우도 있습니다.

SCN은 데이터베이스가 시작될 때(STARTUP) OPEN 단계에서 데이터 파일의 무결성을 검증할 때 사용되기도 합니다. ("오라클 서버의 시작과 종료"를 참조하십시오.)
예를 들어, 위 그림에서 2001년 6월 30일 백업 당시에 SCN은 100 이었다고 합니다. 그리고, 2001년 7월 31일 백업 당시에 SCN은 101 이었다고 합니다. 2001년 8월 10일 현재 시점에 컨트롤 파일에 장애가 발생하여 마지막에 백업되었던 컨트롤 파일(2001년 7월31일)을 현재 컨트롤 파일 위치로 복사 하였다고 합니다. 이런 경우, 데이터베이스를 다시 재 시작하면 어떻게 될까요 ?
결론적으로 데이터베이스는 정상적으로 시작되지 않습니다.

왜 그럼 정상적으로 사용할 수 없는 걸까요 ? 데이터베이스의 시작단계 중 OPEN 단계는 오라클 서버의 모든 데이터 파일과 컨트롤 파일들이 같은 시점의 데이터들 인지를 검증하기 위해 시스템 변경번호(System Change Number)를 검증하게 되는데, 컨트롤 파일에는 현재 SCN이 101이라고 되어 있고, 다른 데이터 파일들은 102 라고 되어 있기 때문에 이 파일들은 같은 시점의 데이터가 아니라고 판단하여 정상적으로 시작하지 않는 것 입니다.
시스템 변경번호는 COMMIT문을 실행할 때 마다 오라클 서버에 의해 발행되며 데이터베이스의 시작과 종료단계에서 데이터의 무결성을 보장하기 위해 사용되는 중요한 상태 값 중에 하나입니다. SCN은 컨트롤 파일과 데이터 파일의 헤드영역에 항상 기록되어 있습니다.

1-8 오라클 데이터베이스의 파일 구조

자~ 이번에는 오라클 서버의 구조 중에 파일(Files)에 대해 자세히 알아 봅시다.
오라클 데이터베이스를 자동으로 설치해 주는 유니버셜 인스톨러(Universal Installer)에 의해 오라클 서버를 설치하면 위 그림과 같이 CREATE DATABASE~문에 의해 기본적인 파일 구조들이 생성됩니다.

1) 파라메터 파일 CREATE DATABASE ~ ; 문법이 실행되기 전에 생성하며, 오라클 서버의 환경설정과 관련된 정보를 저장해 두는 파일입니다. 사용자가 직접 내용을 편집할 수 있는 텍스트 파일구조 입니다.
2) 리두로그 파일 CREATE DATABASE ~ LOGFILE ~ ; 문법에 의해 생성되며 사용자들이 실행하는 DML문에 의해 발생하는 모든 변경 데이터를 백업해 줍니다.
3) 컨트롤 파일 CREATE DATABASE ~ ; 문법에 의해 생성되며 이 문법에 정의되어 있는 모든 파일들에 대한 이름과 경로,크기,상태에 대한 정보를 저장합니다.
4) 데이터 파일 CREATE DATABASE ~ ; 문법에 의해 기본적으로 SYSTEM.DBF, UNDO.DBF, TEMP.DBF 파일을 생성해 주면 사용자에 의해 추가적으로 데이터 파일이 생성 됩니다.

 

 

* 교육 담당 & 관리자 : 김 윤 석
* 교육 문의 & 예약 접수 : 02) 6255-8046
* 홈페이지 http://www.itmoya.net/ocp/main_1.htm
- 오라클지정 교육원, 본원 시험실시, 40%바우쳐제공

 

 

추천학원 http://www.itmoya.com

Posted by genesmer
,

오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원

No. 10445

ARCHIVE LOG MODE 운영 방법
==========================

Oracle에서 Online Backup을 받거나 완벽한 Recovery 작업을 수행하기
위해서는 DB를 Archive log mode로 운영하여야 한다.


텍스트로 만들어진 파라미터 화일을 사용하는 경우 (Oracle 8i 까지)
Archive log mode로 운영하기 위해서는 다음과 같이 변경하여야 한다.

1.  initSID.ora file과 configSID.ora 에 다음의 parameter가 이미 setting
    되어 있는지 확인한 후에 없을 경우 initSID.ora 에 setting한다.

1) LOG_ARCHIVE_START = TRUE

  * ARCH process 가 기동
  * log switch 발생 시 automatic archive를 수행한다.
    만약 이 parametrer가 false이면 manual archive를 실시하여야 한다.

2) LOG_ARCHIVE_DEST = /home/oracle7/dbs/archive_file/arc

 * archive 장소의 디렉토리와 확장자를 포함하지 않는 파일명을 지정.
 * 여기에서 archive_file까지는 directory이며 마지막에 있는 arc는
   archive log file의 initial 명이다.
              
3) LOG_ARCHIVE_FORMAT = %s.log

 * archive file의 확장자와 log sequence 번호의 형식을 지정.
 * 이는 (2)에서 정의된 archive log의 initial file 명과 함께 나타난다.

   [ 예 ]  arc123.log, arc124.log
          (123과 124는 log sequence number 이다.)
           와 같은 형태의 화일이 생성된다.


2. 다음과 같이 작업하여 archive log mode로 변환한다.

        $ svrmgrl

 SVRMGR> connect internal
 SVRMGR> startup mount                - (1)
 SVRMGR> alter database archivelog;   - (2)
 SVRMGR> archive log list             - (3)
        Database log mode                ARCHIVELOG - (4)
        Automatic archival               ENABLED    - (5)
        Archive destination           ?/dbs_ar/offline_log/offline - (6)
        Oldest online log sequence       123 - (7)
        Next log sequence to archive     125 - (8)
        Current log sequence             125 - (9)
        SVRMGR> alter database open;       - (10)
       
       
(1)  DB를 startup mount까지만 한다.
(2)  이 Command를 이용하여 archivelog mode로 DB를 변경한다.
(3)  Archivelog mode로 변경되었는지를 확인한다.
(4)  DB가 Archivelog mode임을 나타낸다.
     만약 NOARCHIVELOG로 되어 있으면 변경되지 않은 것을 의미한다.
(5)  initSID.ora file에서 LOG_ARCHIVE_START parameter를 TRUE로
     정의하였음을 나타내며 false인 경우에는 DISABLED로 나타난다.
(6)  initSID.ora file의 LOG_ARCHIVE_DEST parameter에서 정의한
     archive할 장소이다.
(7)  3 개의 redo log 중 가장 오래된 redo log의 sequence가 123임을
     의미한다.
(8)  다음에 archive 받을 file의 log sequence 번호를 나타낸다.
(9)  현재 사용 중인 redo log의 sequence가 125임을 의미한다.
     만약 이전부터 archivelog mode로 운영 중이었다면 여기에서 archivelog
     file은 log sequence 124까지 archiveing되어있다는 것을 의미한다.
(10) Archive mode로 변경 후 DB를 open한다.

바이너리로 만들어진 파라미터 화일을 사용하는 경우 (Oracle 9i 부터)
Archive log mode로 운영하기 위해서는 다음과 같이 변경하여야 한다.

1.  Parameter 확인

$sqlplus /nolog

SQL>connect sys/passwd@orcl as sysdba
Connected.
SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Enabled
Archive destination            /u01/oracle/dbs/
Oldest online log sequence     1
Current log sequence           3

SQL> select name, value from v$parameter
     where name = 'log_archive_start'
     or name = 'log_archive_dest'
     or name = 'log_archive_format' ;

2. 다음과 같이 작업하여 archive log mode로 변환한다.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_START = TRUE
     SCOPE=SPFILE;

System altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area   89201304 bytes
Fixed Size                   453272 bytes
Variable Size              67108864 bytes
Database Buffers           20971520 bytes
Redo Buffers                 667648 bytes
Database mounted.
SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Enabled
Archive destination            /u01/oracle/dbs/archive/orcl/arc
Oldest online log sequence     1
Current log sequence           3
SQL> alter database archivelog;

Database altered.

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/oracle/dbs/archive/orcl/arc
Oldest online log sequence     1
Next log sequence to archive   3
Current log sequence           3
SQL> alter database open
  2  ;

Database altered.

반대로, archivelog mode에서 no archivelog mode로 전환하는 방법은 다음과
같습니다. archivelog mode에서 no archivelog mode로 전환하기 전에
데이터베이스는 반드시 immediate 또는 normal 로 셧다운 되어야만 전환이
가능 합니다.

먼저, 위에서 setting 했던 initSID.ora file 와 configSID.ora 에 있는
다음 parameter 앞에 # 을 넣고 저장합니다.

#LOG_ARCHIVE_START = TRUE
#LOG_ARCHIVE_DEST = /home/oracle7/dbs/archive_file/arc
#LOG_ARCHIVE_FORMAT = %s.log

  $ svrmgrl
  SVRMGR> connect internal;
  SVRMGR> shutdown immediate
  SVRMGR> startup mount
  ORACLE instance started.
  Database mounted.
  SVRMGR> alter database noarchivelog;
  Statement processed.
  SVRMGR> alter database open;
  Statement processed.

바이너리로 만들어진 파라미터 화일을 사용하는 경우 (Oracle 9i 부터)
Noarchive log mode로 운영하기 위해서는 다음과 같이 변경하여야 한다.

1.  Parameter 확인

$sqlplus /nolog

SQL>connect sys/passwd@orcl as sysdba
Connected.
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/oracle/dbs/archive/orcl/arc
Oldest online log sequence     1
Next log sequence to archive   3
Current log sequence           3

SQL> select name, value from v$parameter
     where name = 'log_archive_start'
     or name = 'log_archive_dest'
     or name = 'log_archive_format' ;

2. 다음과 같이 작업하여 Noarchive log mode로 변환한다.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_START = FALSE
     SCOPE=SPFILE;
System altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area   89201304 bytes
Fixed Size                   453272 bytes
Variable Size              67108864 bytes
Database Buffers           20971520 bytes
Redo Buffers                 667648 bytes
Database mounted.
SQL> alter database noarchivelog;

Database altered.
SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Enabled
Archive destination            /u01/oracle/dbs/archive/orcl/arc
Oldest online log sequence     1
Current log sequence           3
SQL> alter database open
  2  ;

Database altered.

    

 


아카이브 데스티네이션 경로 변경
-- db archive mode 로 변경시키는 방법
-- archive mode : redo log file 을 백업을 받는 방식

SQL> archive log list
데이터베이스 로그 모드              아카이브 모드가 아님
자동 아카이브             사용 안함
아카이브 대상            C:\oracle\ora92\RDBMS
가장 오래된 온라인 로그 순서     48
현재 로그 순서           51

SQL> alter system set log_archive_start = true scope=spfile;
시스템이 변경되었습니다.

-- os directory 설정
-- oracle 에선 파일은 자동으로 만들어주는데 디렉토리는 무조건
-- 사용자가 수동으로 만들어줘야 한다.

SQL> alter system set log_archive_dest_1 ='location=c:\arch1';

시스템이 변경되었습니다.

SQL> alter system set log_archive_dest_2 = 'location=c:\arch2';

시스템이 변경되었습니다.

-- log_archive_dest 확인
SQL> show parameter log_archive_dest


-- archive file 형식 지정
SQL> alter system set log_archive_format ='%t_%s.arc' scope=spfile;

-- %s 는 로그 시퀀스 번호

시스템이 변경되었습니다.

SQL> shutdown immediate

SQL> startup mount
-- control file 을 읽는다.

ORACLE 인스턴스가 시작되었습니다.

Total System Global Area  101784276 bytes
Fixed Size                   453332 bytes
Variable Size              75497472 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
데이터베이스가 마운트되었습니다.

-- control file 의 속성을 바꾼다.
-- archivelog mode 로 변경

SQL> alter database archivelog;

데이타베이스가 변경되었습니다.

SQL> archive log list
데이터베이스 로그 모드              아카이브 모드
자동 아카이브             사용
아카이브 대상            c:\arch2
가장 오래된 온라인 로그 순서     48
아카이브할 다음 로그   51
현재 로그 순서           51

SQL> alter database open;

데이타베이스가 변경되었습니다.

SQL> alter system switch logfile;

시스템이 변경되었습니다.

-- 그러면 c:\arch1, c:\arch2 밑에 로그파일이 생성된다.

 

* 교육 담당 & 관리자 : 김 윤 석
* 교육 문의 & 예약 접수 : 02) 6255-8046
* 홈페이지 http://www.itmoya.net/ocp/main_1.htm
- 오라클지정 교육원, 본원 시험실시, 40%바우쳐제공

 

 

추천학원 http://www.itmoya.com

Posted by genesmer
,

오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원


PL/SQL 이란 ?

 
- PL/SQL 은 Oracle's Procedural Language extension to SQL. 의 약자 입니다.

 - SQL문장에서 변수정의, 조건처리(IF), 반복처리(LOOP, WHILE, FOR)등을 지원하며,
   오라클 자체에 내장되어 있는 Procedure Language입니다

 - DECLARE문을 이용하여 정의되며, 선언문의 사용은 선택 사항입니다.  

 - PL/SQL 문은 블록 구조로 되어 있고 PL/SQL 자신이 컴파일 엔진을 가지고 있습니다.



PL/SQL의 장점

 - PL/SQL 문은 BLOCK 구조다수의 SQL 문을 한번에 ORACLE DB 로 보내서 처리하므로
   수행속도를 향상 시킬수 있습니다.

 - PL/SQL 의 모든 요소는 하나 또는 두개이상의 블록으로 구성하여 모듈화가 가능하다.

 - 보다 강력한 프로그램을 작성하기 위해서 큰 블록안에 소블럭을 위치시킬 수 있습니다.

 - Variable, Constant, Cursor, Exception을 정의하고, SQL문장과 Procedural 문장에서
   사용합니다. .

 - 단순, 복잡한 데이터형태의 변수를 선언합니다.

 - 테이블의 데이터 구조와 DataBase의 컬럼럼에 준하여 동적으로 변수를 선언 할 수 있습니다.

 - Exception 처리 루틴을 이용하여 Oracle Server Error를 처리합니다.

 - 사용자 정의 에러를 선언하고 Exception 처리 루틴으로 처리 가능 합니다.

추천학원 http://www.itmoya.com

Posted by genesmer
,

오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원


PL/SQL Block Structure

 - PL/SQL은 프로그램을 논리적인 블록으로 나누는 구조화된 블록 언어 입니다.

 - PL/SQL 블록은 선언부(선택적), 실행부(필수적),예외 처리부(선택적)로 구성되어 있고,  
   BEGIN과 END 키워드는 반드시 기술해 주어야 합니다.

 - PL/SQL 블록에서 사용하는 변수는 블록에 대해 논리적으로 선언할 수 있고 사용할 수 있습니다.

 

● DECLARE
    - Optional
    - Variables, cursors, user-defined exceptions

● BEGIN
    - Mandatory
    - SQL Statements
    - PL/SQL Statements

● EXCEPTION
    - Actions to perform when errors occur

● END;
    - Mandatory



  ◈ Declarative Section(선언부)

   -  변수, 상수, CURSOR, USER_DEFINE Exception선언


  ◈ Executable Section(실행부)

   -  SQL, 반복분, 조건문실행
   -  실행부는 BEGIN으로 시작하고 END 로 끝납니다.
   -  실행문은 프로그램 내용이 들어가는 부분으로서 필수적으로 사용되어야 합니다.


  ◈ Exception Handling Section(예외처리)

    - 예외에 대한 처리.
    - 일반적으로 오류를 정의하고 처리하는 부분으로 선택 사항입니다.



PL/SQL 프로그램의 작성 요령

 
 - PL/SQL 블록내에서는 한 문장이 종료할 때마다 세미콜론(;)을 사용합니다. .

  - END뒤에 ;을 사용하여 하나의 블록이 끝났다는 것을 명시 합니다.

  - PL/SQL 블록의 작성은 편집기를 통해 파일로 작성할 수도 있고,
    SQL프롬프트에서 바로 작성할 수도 있습니다.

  - SLQ*PLUS환경에서는 DELCLARE나 BEGIN이라는 키워드로 PL/SQL블럭이 시작하는 것을
    알 수 있습니다.

 - 단일행 주석 : --

 - 여러행 주석 : /* */

 - PL/SQL 블록은 행에 / 가있으면 종결 됩니다.

추천학원 http://www.itmoya.com

Posted by genesmer
,

오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원

UTL_SMTP PACKAGE을 사용하여 E-MAIL을 GENERATE하는 과정

======================================================

 

PURPOSE

---------

 

UTL_SMTP package는 Oracle8i Release 2 (8.1.6)이상에서 UTL_TCP package을 이용하여 e-mail 을 PL/SQL에서 generate하는 것이 가능하게 하였다.

 

Explanation

-----------

 

UTL_SMTP packag을 사용하기 위해서는 Database에 Java option이 install되어 있어야 하며 TCPConnection class인 $ORACLE_HOME/plsql/jlib/plsql.jar file이 load되어 있어야 한다. 그리고 JAVA_POOL_SIZE는 40M이상을 권장한다.

 

UTL_SMTP package을 사용하여 E-mail을 generate하는 과정을 살펴보자.

 

1. SMTP server을 이용하여 connection을 맺는다. (보통 25번 port을 사용한다)

이것은 UTL_SMTP.OPEN_CONNECTION() function call을 통해 가능하다.

 

Ex) utl_smtp.open_connection(mailhost,25)

 

2. SMTP server와 UTL_SMTP.HELO() call을 통해 초기화을 한다.

 

Ex) utl_smtp.helo(mail_conn,mailhost);

 

3. UTL_SMTP.MAIL()을 이용하여 'From' mail ID 를 지정한다.

 

Ex) utl_smtp.mail(mail_conn,sender);

 

4. UTL_SMTP.RCPT()을 이용하여 'To' mail ID 를 지정한다.

 

Ex) utl_smtp.rcpt(mail_conn,recipient);

 

5. Body의 message을 정렬시에는 <CR><LF>에 의해 line을 나눌 수 있다.

 

Ex) CHR(13)||CHR(10)

 

6. UTL_SMTP.DATA() 응 이용하여 UTL_SMTP buffer로 message을 pass한다.

 

Ex) utl_smtp.data(mail_conn,message);

 

7. UTL_SMTP.QUIT()을 call함으로써 SMTP connection을 끝내게 된다.

 

Ex) utl_smtp.quit(mail_conn);

 

좀더 자세한 sample은 bulletin : 12130에서 보기로 하고 여기선 간단히 E-mail을 보내는 sample을 보여주기로 한다.

 

Example 
-------- 

      CREATE OR REPLACE PROCEDURE send_email 
      ( sender    IN VARCHAR2, 
        recipient IN VARCHAR2, 
        message   IN VARCHAR2) 
      AS 
       
        mailhost VARCHAR2(100) := 'gmapacsmtp.oraclecorp.com'; 
        mail_conn utl_smtp.connection; 

      BEGIN 

         mail_conn :=utl_smtp.open_connection(mailhost,100);  
         utl_smtp.helo(mail_conn,mailhost);  
         utl_smtp.mail(mail_conn,sender);  
         utl_smtp.rcpt(mail_conn,recipient);  
         utl_smtp.data(mail_conn,message);  
         utl_smtp.quit(mail_conn); 

     END; 
/ 

 

SQL> exec send_email('Oracle','TTT@oracle.com','This sample is education purpose only');

 

 Sample2) 한글 data을 mail로 보낼때는 bulletin : 12130을 자세히 보면  
          알 수 있듯이 Sample1의 utl_smtp.data(mail_conn,message);  
          부분을 바꾸어 주어야 한다. 

      CREATE OR REPLACE PROCEDURE send_email 
      ( sender    IN VARCHAR2, 
        recipient IN VARCHAR2, 
        message   IN VARCHAR2) 
      AS 
       
        mailhost VARCHAR2(100) := 'gmapacsmtp.oraclecorp.com'; 
        mail_conn utl_smtp.connection; 

      BEGIN 

         mail_conn :=utl_smtp.open_connection(mailhost,100);  
         utl_smtp.helo(mail_conn,mailhost);  
         utl_smtp.mail(mail_conn,sender);  
         utl_smtp.rcpt(mail_conn,recipient);  
--         utl_smtp.data(mail_conn,message);  

         utl_smtp.open_data(mail_conn); 
         utl_smtp.write_raw_data(mail_conn, UTL_RAW.CAST_TO_RAW(message)); 
         utl_smtp.close_data(mail_conn); 

         utl_smtp.quit(mail_conn); 

     END; 
/ 

 

SQL> exec send_email('Oracle','TTT@oracle.com','이 샘플은 교육목적입니다.');

 

추천학원 http://www.itmoya.com

Posted by genesmer
,

오라클 교육 파트너(Oracle Workforce Development Program)

취업지원과정 오라클 교육 파트너(Oracle Workforce Development Program)

오라클의 정규 과정의 강의를 수행할 수 있는 강사를 보유한 기관을 대상으로 오라클의 교육과목에 대하여 공식교재와 S/W를 활용하여 교육과정을 진행하는 교육 기관입니다.

협력교육기관은 자체적으로 과정을 개설하며, 수강생을 모집하고, 강의를 수행하며, 교육 품질에 대한 책임도 협력 교육기관이 소유하는 형태의 교육 협력 파트너입니다.오라클은 우수 IT인력 양성과 실업자/미취업자의 취업 지원을 위한 취업지원과정을 통해 오라클의 교육과정을 수강하고자 하는 수강희망자에게 폭넓은 기회를 제공하고자 노력하고 있습니다.

지역
협력 기관명
주소
연락처
서울
서울 강남구 역삼동 648-23 여삼빌딩 7층 (강남역)
02-6255-8066
서울
서울 마포구 대흥동 12-20 중앙 5층
02-313-1711
서울
서울 중구 서소문동 57-10 정안빌딩 4층
02-2000-6457
서울
서울 서초구 서초동 1330-3
02-3486-4600
서울
서울 강남구 삼성동 무역센터 코엑스 오피스 4층
02-6000-5189
서울
서울 중구 태평로 1가 62-4 조선일보 광화문빌딩 4층
02-3701-2722
서울
서울 강남구 역삼동 826-22 동인빌딩
02-561-1911
서울
캐드뱅크
CADBANK
서울특별시 종로구 숭인동 280 진선빌딩 2F (주) 캐드뱅크 IT 교육센터
02-1588-7712
대전
대전시 대덕구 오정동 133
042-629-8117
대구
대구 북부 복현동 218번지
053-940-5186
광주
광주 광산구 서봉동 59-1
062-940-5706

 오라클 ocp 오라클자격증 오라클학원 ocp자격증 ocp학원 데이터베이스관리자 데이터베이스 db db관리자

오라클 ocp 오라클자격증 오라클학원 ocp자격증 ocp학원 데이터베이스관리자 데이터베이스 db db관리자

오라클 ocp 오라클자격증 오라클학원 ocp자격증 ocp학원 데이터베이스관리자 데이터베이스 db db관리자

오라클 ocp 오라클자격증 오라클학원 ocp자격증 ocp학원 데이터베이스관리자 데이터베이스 db db관리자

Posted by genesmer
,

오라클전문가의 전망과 OCP10g에 대한 FAQ



1. 오라클이란 무엇인가?


Oracle은 Oracle Corporation이란 미국의 기업에서 만든 데이터 베이스 관리 시스템입니다. Oracle 은 Database 에서 가장 많이 쓰이며, 기능 또한 가장 좋은 것으로 알려진 최고의 Database 입니다.


Oracle 을 잘 다룬다고 하면 Database 에 대해서 전문적인 지식을 가지고 있다고 할 만큼 Database = Oracle 이라는 인식이 저변에 확대되어 있는 것이 사실입니다.





2. 그럼 OCP는 무엇인가? OCP8i, 9i, 10G는?


오라클의 활용능력을 인증해 주는 데이터베이스 국제자격증입니다.

뒤에붙는8i, 9i, 10G는 버전을 말합니다.현재 8i는 폐지되어 시험을 치루실수가 없고 9i와 10g를 응시하셔야 합니다. 9i는 4과목을 보셔야 하고 10g는 2과목을 패스하시면 됩니다.현재 9i가 있으시다면 10g 업그레이시험 1과목을 보시면 되겠습니다.





3. OCP를 취득하면 취업이 잘되나요?


꼭 그렇습니다.. 라고는 말씀드릴 수 없습니다.

라이센스가 없는것과 있는것에는 확실히 차이가 있습니다. 우선은 신입의 경우 그 사람의 실무능력을 일일이 평가해 볼 수는 없으므로, 같은 오라클을사용한다 하더라도 자격증이 있는사람을 더 인정해 줍니다. 그렇지만 막상 입사하고 실무에서 현저히 그 능력이 떨어지면 도퇴당할 수 밖에 없습니다.


앞서 말씀드렸다시피 데이터베이스 하면 오라클이라는 인식과 같이 데이터베이스 관련 분야에 있어 오라클은 최고라고 생각하셔도 무관합니다. DB전문가를 생각하신다면, 프로그래머를 생각하신다면, 오라클은 언젠가 넘어야 할 산과도 같습니다.




4. 초보자도 OCP를 취득할수 있을까요? 그전에 알아햐 할것이 있는지?


네. 초보자가 공부하신다고 해도 별 무리는 없습니다. 개개인의 이해력에 따라 조금 달라질수 있지만 일반적으로 오라클의 경우 선수지식으로 딱 정해진 과정은 없습니다.


물론 기본적인 언어와 OS, SQL에 대한 지식이 있으시다면야 상당히 수월하지만 오라클은 데이터베이스라는것 그 자체이기 때문에 처음부터 오라클을 시작하셔도 무관합니다. 다만 분명 초보자이라는 것을 잊지마시고, 더 열심히 하셔야 합니다.


그러나 전혀 관련되지 않는 분야로 일을하셨다면(예를 들면 이공계나 컴퓨터 계열이 아니고,컴퓨터 사용에 있어서도 완전 초보이고) 기초교육부터 단계를 밟아나가셔야 할것입니다.





5. 교육내용은 어떠하며 총 몇과목을 응시해야 하나요?


9i는 응시때에는 아래 4과목..

- Introduction to Oracle : SQL 9i (SQL9i)

- Oracle 9i Database Administration Fundamental 1 (ADM9i)

- Oracle 9i Database Administration Fundamental 2 (NBR9i)

- Oracle 9i Performance Tuning Workshop (PTW9i)


10g 응시때에는 아래 2과목

- [시험과목] Oracle Database 10g: Administration Workshop I

- [시험과목] Oracle Database 10g: Administration Workshop II

을 응시하시면 됩니다.



+ 취득조건:

OCP-DBA9i는 총4개의 시험을, OCP-DBA10g는 촟2개의 시험을 모두 합격하셔야 합니다. 정식 교육업체(WDP)나 최소 1과정 이상을 오라클 공인교육센터에서 오프라인 강의로수강하셔야 응시자격이 주어집니다.





6. 그럼 오라클교육은 어디에서 배워야 하나요?  
<오라클지정 교육센터 http://www.itwill.org
>


오라클교육은 여의도의 한국오라클교육센터와 오라클지정 공인교육센터에서 최소 한과목 이상을 이수하시고, 공인교재를 필히 구입하셔야만 OCP9i 시험에 응시하실 수 있는 자격이 주어집니다.


OCP 8i와 크게 달라진 점이 바로 이 부분입니다. 8i때는 없었던 제약이 9i인증에서는 위와같이 바뀌었습니다.

확실하진 않지만 오라클 자격증의 남용을 막기위한(?) 오라클의 정책이 아닐까 싶습니다. 오라클 본사에서 제시한 사항에 적합시에만 시험응시의 자격이 주어집니다. 오라클 본사에서 진행하는 교육은 고가의 교육비용을 필요로 합니다.


OCP9i 인증은 총4과목의 시험을 패스하셔야 나오게 되는데 워낙 고가이다 보니 아무래도 개인적으로 준비하시는 분들에게는 부담이 될 수 있습니다. 공인교재비 또한 금액이만만치 않기 때문입니다. 때문에 오라클에서는 미취업자나 대학생을 대상으로 저렴한 비용으로 응시를 할수 있도록 몇군데에 오라클 교육을 허용하여 수강하실 수 있는 제도를 만들었습니다.

오라클에서 지정해준 교육센터만이 교육과 시험응시가 가능토록 만들었습니다. 지정교육센터에서의 수강과 교재구입 여부는 오라클 사 리스트로 보내집니다.


 

7. 시험은 언제 볼수 있으며 어디에서 접수및 응시를 할수 있나요?

 

국제자격증 시험은 거의 수시검정입니다.

때문에 본인이 준비된 아무때나 시험응시가 가능하십니다. 시험은 프로메트릭에서 지정해준 기관에서 치루실 수있는데요, 국제공인 시험센터라고 표시된 교육원이나 학교등에서 응시하시면 되고, 응시후 결과까지 바로 받아보실 수 있습니다.


그러나 앞서 말씀드렸듯이 오라클의 경우에는 오라클사에서 지정된 센터에서만 교육 및 응시가 가능합니다. 통상 시험 보시려는 날짜의 3일전 예약을 하시고 보시면 수월합니다.





8. OCP자격증 취득후 이점은 어떠한 것이 있을까요?


- IT업계에서 전세계적으로 인정하는 공인 엔지니어로서 활동할 수 있습니다.

- 오라클의 세미나 및 기술교육에 초대됩니다.

- 한국오라클 교육 협력사로 등록 시 자격 요건이 됩니다.

- 한국오라클 입사 채용 심사 시 우대기준이 됩니다.

- 본인 희망 시 소정의 절차를 거쳐 한국오라클의 계약강사로 활동 할 수 있습니다.



 

9. 오라클을 공부하면서 혹은, 오라클을 마스터 한후에 병행할수 있는 과정은 어떠한 것이 있을까요?


오라클이 아무리 데이터베이스 자체라 하지만 요즘같이 멀티플레이어를 원하는 시대에다른것들도 같이 다룰줄 안다면 플러스 될수 있는 요인이 많습니다. 대다수의 기업에서는 한가지만 잘하는 사람보단 '이것도 잘하지만 저것도 잘하는 사람'을더 선호하는 것이 사실입니다. 물론 자기전공 분야를 확실히 마스터 했을때의 이야기 입니다.


서버를 아셔야 합니다.

MS던 Linux이던 혹은 Solaris이던,, 오라클이 돌아가는 서버를 아신다면 도움이 많이 될것입니다. 오라클은 유닉스 시스템에서 가장 잘 돌아갑니다. 오라클이 규모가 큰 관계형 데이터베이스 이다보니 아무래도 대용량 시스템인 유닉스 계열에서 잘 돌아가기 때문에 어떤 서버이던 상관은 없지만 솔라리스 시스템 정도 알고계시면 유용합니다.


오라클은 자바언어로 이루어져 있습니다.

기본적인 자바의 개념정도 문법정도 알고계신다면 도움이 됩니다.

좀더 여유가 되신다면 오라클을 기반으로 JSP Web Application 개발을 위해 JSP까지 알고계신다면 좋습니다.


그리고 자바의 최고 과정인 EJB를 공부하시어 오라클과 연동을 할수 있으시다면 기업에서 상당히 우대를 받을수 있는 요인이 충분히 될수 있습니다. 때문에 보통 오라클을 공부 하시는 분들은 솔라리스와 자바를 병행하여 공부하시는 분들이 많습니다.





10. 데이터베이스의 중요성은 어느 정도이며 전망은 어떻습니까?


기업의 정보와 데이터는 앞으로 더욱 더 많이 늘어나게 될 것입니다.

이 수많은 정보를 효과적으로 관리하기 위해서는 Database라는 것이 꼭 필요 합니다.


Database 라는 것이 이제는 몰라서는 안 되는 IT 기술의 하나 이고, Database를 사용하는곳이 많다 보니, DBA의 중요성은 높아진다고 할 수 있습니다.


Database중에서도 가장 많이 사용하는 것이 Oracle 이고, 물론 MS SQL Server나 Sybase, DB2들도 많이 사용하지만 우리나라의 대기업에서는 현재 Oracle을 많이 사용합니다.


산업 전 분야에 걸쳐 IT인력의 요구가 증가함에 따라, 매년 많은 기업체 및 금융 기관 등에서 취업인력을 요청하고 있고, 요즘은 어느 기업체든 컴퓨터 전공자를 필요로 할 뿐 아니라 많은 업무가 컴퓨터로 이루어지므로 기업체마다 많은 인력을 필요로 합니다.


그러한 만큼 전세계적으로 많은 사람들이 도전하고 있고, 현 종사자도 무수하나 그런데도불구하고 현재 ORACLE DataBase 전문가는 절대적으로 공급이 부족한 상태입니다. 배우면 배울수록 어렵고, 재미를 느낄수 있는 메리트있는 직업중에 하나입니다.

오라클,OCP,오라클자격증,OCP자격증,데이터베이스,DB,오라클학원,OCP학원,DB관리자,DATABASE,

오라클,OCP,오라클자격증,OCP자격증,데이터베이스,DB,오라클학원,OCP학원,DB관리자,DATABASE,

오라클,OCP,오라클자격증,OCP자격증,데이터베이스,DB,오라클학원,OCP학원,DB관리자,DATABASE,

오라클,OCP,오라클자격증,OCP자격증,데이터베이스,DB,오라클학원,OCP학원,DB관리자,DATABASE,

오라클,OCP,오라클자격증,OCP자격증,데이터베이스,DB,오라클학원,OCP학원,DB관리자,DATABASE,

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

Posted by genesmer
,