반응형

프로그래밍/3. ORACLE 13

프로그램에서 오라클프로시저 호출할때 ORA-06502 오류가 발생할 경우

C#에서 오라클 프로시저를 호출하는데 ORA-06502: PL/SQL: numeric or value error: character string buffer too small 오류가 발생했다. 일반적으로 ORA-06502 오류는 변수의 사이즈보다 큰 값을 할당했을때 발생하는 오류로 해당 변수의 크기를 늘려주면 해결된다. VARCHAR2(20) -> VARCHAR2(40)으로 바꾸면 해결되는데 이번에는 SQLPLUS 에서 해당 프로시저를 호출했을때는 아무 문제가 없었고, 구글 검색을 해봐도 앞서 말한것처럼 변수의 크기를 늘려야한다는 말이 전부였다. 어떤 문제인지 감이 안와서 이리저리 테스해보다가 혹시나 하는 마음에 다른부분을 전부 주석처리하고 리턴값에 강제로 값을 할당했는데도 동일한 문제가 발생했다. 아무..

[오라클/ORACLE] 오라클 메모리

오라클 메모리는 크게 SGA(System Global Area)와 PGA(Program Global Area)로 구분할 수 있습니다. SGA - 모든 사용자가 공유하는 메모리 PGA - 각 사용자가 개별적으로 사용하는 메모리 오라클은 디스크에서 읽어온 데이터를 메모리에 보관한 다음에 데이터를 조회하거나 변경하는 작업을 수행합니다. 이때 데이터가 저장되는 메모리가 SGA입니다. SGA는 5개의 세부영역(공유 풀(Shared Pool), 데이터 버퍼 캐쉬(Data Buffer Cache), 리두 로그 버퍼(Redo Log Buffer), 대형 풀(Large Pool) 및 자바 풀 (Java Pool))로 구분할 수 있습니다. 오라클 서버의 SGA 설정값을 확인하는 방법은 다음과 같습니다. SHOW SGA S..

[오라클/ORACLE] 통계정보 수집방법2

앞전 포스팅에 이어서 STATSPACK을 이용한 통계정보 수집방법을 포스팅 하도록 하겠습니다. STATSPACK을 이용해서 통계정보를 수집하려면 사전준비 작업이 필요한데, 작업의 순서는 다음과 같습니다. 1. SYSDBA로 로그인하여 $ORACLE_HOME/RDBMS/ADMIN/SPCREATE.SQL 스크립트를 실행시킨다. 2. PERFSTAT 유저의 패스워드 지정 3. 작업테이블의 테이블 스페이스와, TEMPORARY 테이블의 테이블 스페이스 지정 다음은 실제 스크립트 실행과정입니다. 위의 과정에서 오류없이 스크립트 실행이 완료되었다면 다음의 명령문이 들어가있는 SQL문을 파일로 만듭니다. variable snapshot_id number begin :snapshot_id := statspack.sna..

[오라클/ORACLE] 통계정보 수집방법1

Oracle 통계수집 방법 1 Oracle에서 시스템의 통계정보를 수집하는 방법은 크게 2가지가 있습니다. 1. v$sysstat뷰, v$sessio 뷰를 조회하는 방법 2. statspack을 이용하는 방법 뷰를 이용하는 방법은 간단하지만 인스턴스 기동시점부터 누적된 데이터만 조회 할 수 있습니다. 따라서 시계열 분석을 하려면 개별적인 계산이 필요합니다. 또한 인스턴스가 중간에 재가동되면 지금까지 누적된 결과 역시 초기화 됩니다. 바면 statspack을 이용하면 두 기준 시간의 차이를 쉽게 파악할 수 있으며, 인스턴스를 중간에 재가동 하여도 정보가 남아있습니다. 하지만 statspack을 이용하려면 전용 유저와 전용 스크립트를 준비해야 합니다. v$sysstat 뷰 Oracle 시스템에서 수집한 통계..

[오라클/ORACLE] ORACLE 서버 구성정보 확인하기.

Oracle 서버에 관련된 정보는 주로 딕셔너리 테이블에서 확인할 수 있습니다. DBA(데이터베이스 관리자)는 'DBA_' 접두사를 가진 딕셔너리 테이블과 V$접두사를 가진 동적 퍼포먼스 뷰를 조회 함으로써 Oracle 서버에 관련된 정보를 획득할 수 있습니다. 1. Oracle Server Instance 정보 확인하기. Select instance_name, version, status from V$Instance; 쿼리를 이용하여 오라클 서버 인스턴스의 인스턴스 명, 오라클 데이터베이스 버전, 상태 정보를 확인할 수 있습니다. 2. Oracle Database 정보 확인하기 Select name, open_mode from v$database; 쿼리를 이용하여 오라클 데이터베이스의 식별명, 데이터데..

[오라클/ORACLE] DBA (데이터베이스 관리자)의 업무

DBA(데이터베이스 관리자)의 업무는 크게 데이터베이스 설계, 데이터베이스 도입, 데이터베이스 운용 3가지로 구분할 수 있습니다. 각 업무를 좀 더 자세히 살펴보면 아래와 같습니다. 설계 : 업무에 필요한 정보 정의, 정의된 정보를 이용할 수 있도록 테이블 구조설계, 데이터베이스 제품선정, 사용자 교육 등의 업무를 수행합니다. 도입 : 하드웨어 및 OS를 도입하고 데이터베이스를 설치합니다. 또한 설계단계에서 작선된 데이블 설계도를 바탕으로 데이터베이스에 테이블 구현을합니다. 운용 : 데이터베이스가 이상없이 작동하고 있는지 , 문제점은 없는지 확인하여 사고를 예방하고 그래도 일어나는 사고를 대비하여 대비책을 수립합니다. 또한 정기적으로 HW/SW 업그레이드를 수행하여 데이터베이스가 항상 최적의 상태를 유지..

[오라클/ORACLE] FLASH BACK을 이용한 데이터 복구

오라클을 이용하다면 보면 의도치 않게 데이터를 삭제하거나 변경을 하고 커밋을 해버리는 경우가 종종 발생하는데요. 이런 경우 데이터를 COMMIT을 한지 얼마 안 되었거나 메모리를 넉넉하게 잡아놓은 경우 FLASHBACK 기술을 이용해서 데이터 복원이 가능합니다. 1. 먼제 임시 테이블과 데이터를 생성합니다. 2. 데이터를 삭제하고 COMMIT을 합니다. 3. FLASHBACK에 데이터가 존재하는 확인합니다. 본 포스팅에서 사용할 명령어는 AS OF TABLE 입니다. 자세히 기술하면 다음과 같습니다. SELECT * FROM TEMP_TABLE AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '8' MINUTE); 여기에서 '8'은 몇분전에 데이터를 조회할지를 표시하는 것으로 본..

반응형