가끔씩 인덱스를 지우고 새로 만들고 나서 토드에서 인덱스를 타는 지 확인하기 위해서 쿼리 실행계획 (Ctrl + E)를 실행하면 에러가 발생할 때가 있다. ORA-04045: errors during recompilation/revalidation of PUBLIC.TOAD_PLAN_TABLE ORA-00980: synonym translation is no longer valid 한글로 나올때가 있는데 컴파일/재실행 오류라는 내용으로 뜬다. 이는 오라클에서 toad_plan_table 이라는 테이을을 만들어서 사용하고 있기 때문이다. 테이블이 생성이 되어있지 않으면 plan을 보고자 할때 테이블이 없다는 메시지가 나올것이다. 이게 애매한게 인덱스를 수정하고 새로 생성하면 synonym 을 못잡아서 발생..
인터넷에서 열심히 검색을 하다 보면 암호화 패키지 에 대한 내용이 정말 많이 나오고 있습니다. ㅎㅎ 요즘 개발자들을 괴롭히고 있는 개인정보 보호 때문인 듯 한데요...머 오라클 디비 암호화 패키지 자체가 승인되지 않은 암호화 방식이라는 향간의 소문이 있기는 하지만 일단 급한 불이라도 끄려고 하게 됩니다. (만약 암호화 안 했다가 유출이라도 된다면 ㅜㅜ) 아무튼 검색을 해 보면 오라클에서 제공하는 암호화 패키지인 DBMS_OBFUSCATION_TOOLKIT 을 사용하라고 나옵니다. 내용은 간단히 sys 어드민 권한으로 패키지 혹은 Function을 만들어서 사용하라고 합니다. 보통 sys.XXX.encrypt("암호대상", "hash코드값") 이렇게 들어가게 되는데요 문제는 요놈이 UTF-8 환경에서 에러..
SGA (System Global Area) : 모든 서버 및 백그라운드 프로세스에 의해 공유되는 메모리 영역 데이터베이스 버퍼 캐시 리두 로그 버퍼 : 데이터베이스에서 검색된 데이터 블록을 캐시에 저장 shared Pool : instance recovery에 사용되는 리두 정보가 저장된 물리적 리두로그 파일에 기록이 될 때까지 해당정보를 캐시에 저장 Large Pool : 유정들 간에 공유 할 수 있는 다양한 구성요소를 캐시에 저장 Java Pool : JVM(Java Virtual Machine) 내의 모든 세션별 Java 코드 및 데이터에 사용 Streams Pool : Oracle Stream에서 사용 PGA (Program Global Area) : 각 서버 프로세스에 대한 데이터 및 제어 정..
실행중인 각 오라클 데이터베이스는 Oracle instance와 연관이 있습니다. 데이터베이스 서버에서 데이터베이스가 시작되면 Oracle소프트웨어는 SGA(System Global Area) 라는 공유 메모리 영역을 할당하고 여러 가지 Oracle 백그라운드 프로세스를 시작합니다. 이와 같이 SGA와 Oracle 프로세스가 결합한 것을 Oracle instance라고 합니다. instance를 시작한 후 Oracle 소프트웨어는 해당 instance를 특정 데이터베이스와 연관시킵니다. 이를 데이터베이스를 마운트 한다고 합니다. 그런 다음 데이터베이스가 열릴 준비가 되고 승인된 유저가 엑세스할 수 있는 상태가 됩니다. 다중 instance의 물리적 데이터베이스에 각각 엑세스하여 동일한 컴퓨터에서 동시에 ..
SQLPLUS에서 오라클 디비에 대한 Shutdown 명령을 내릴 수 있다. 이때 여러개의 옵션을 줘서 종료에 대한 처리를 할 수 있다. SHUTDOWN NORMAL - 기본 종료 모드 이다. 종료되는 순간까지 새 연결을 생성할 수 없으며 현재 접속되어 있는 모든 유저가 연결을 종료하기 전까지 SHUTDOWN하지 않고 기다리게 된다. 또한 현재 작업된 데이터페이스 파일 (온라인 리두로그 파일) 을 물리적인 디스크에 기록되며 백그라운드 프로세스가 종료되고 SGA가 메모리에서 제거된다. ORACLE서버는 INSTANCE를 종료하기 전에 데이터베이스를 닫고 마운트를 해제한다. 다음번 시작시 INSTANCE RECOVERY가 필요없음 SHUTDOWN TRANSACTIONAL - 클라이언트의 현재 작업 결과를 포..
오라클 교육 1일차 -- OFA (Optimal Flexible Architecture) 오라클 데이터베이스 및 다른 데이터 베이스를 구성하는 하나의 방식 OS 및 디스크 서브 시스템 기능을 활용하여 확장되는 고성능 데이터베이스를 최대한 유연하고 쉽게 관리할 수 있는 구성을 구현 -- OFA 용도 장치 병목 현상 및 성능 저하를 방지할 수 있는 방식으로 디스크에 대량의 복잡한 소프트웨어 및 데이터 구성 데이터가 손상될 가능성이 높은 소프트웨어 및 데이터 백업과 같은 일상적인 관리 업무 간소화 여러 오라클 데이터베이스 간의 효율적 전환 데이터베이스 확장의 적절한 관리 데이터 딕셔너리에 있는 사용 가능 영역의 단편화 제거, 다른 단편화 분리 및 리소스 경합 최소화
Oracle 10g 오라클의 버전 뒤에 붙는 g, i 는 그 시대의 트랜드를 나타낸다. 8i, 9i ==> internet 10g, 11g ==> grid 현재 트렌드를 그리드로 보고 있다. ASM: Automatic Storage Management (자동 저장 영역 관리 ) 모든 디스크에 데이터를 분배하고 저장영역 그리드를 생성 및 유지 관리하며, 최소 관리 비용으로 가장 높은 수준의 입출력(I/O) 처리 능력을 제공 디스크가 추가되거나 삭제되면 ASM은 데이터를자동으로 재분배 RAC (Real Application Clusters) 서버 클라스터에서 모든 응용프로그램 작업 로드를 실행하고 조정 oracle 의 병렬 데이터베이스 클러스트링 기술 여러개의 노드들을 병렬로 연결한다. 그 다음 들어오는 입..
PROCEDURE란 DB에서 작동하는 일종의 기능이라고 생각하면 됩니다. JAVA의 메소드와 같은.. 간단하게 정의가 되네요 ㅎㅎ;; 물론 다르게 생각하시는 분들도 있겠지만 저는 그렇게 생각합니다. DB에서 동작하는 기능이기 때문에 속도는 프로그램에서 사용하는 것보다 훨~씬더 빠르게 DB상에이루어 집니다. 처음에 PROCEDURE를 배우고 개발에 들어갔을때는 왠만하면 DB에 이런 PROCRDURE를 만들지 않고 왠만하면 웹에서 JAVA로 기능을 만들었습니다. 왜냐면 제 상사의 말을 따르면 형상관리가 안되기 때문에 소스관리적인 측면에서 안좋다는게 이유였죠.... 하지만 몇년이 지나고...전 수시로 DB에 PROCEDURE를 만듭니다. 왜냐면....편해서죠.. 그냥 웹에서는 호출만 하면 끝나니깐요 ㅎㅎ 그리..