본문 바로가기

ORA

오라클 에러 정보 (ORA-01031) - 권한부족에 의한 단순 에러 (insufficient privileges) Oracle DBMS 에서 이런 저런 작업을 하다 보면 자주 만나게 되는 에러가 ORA-1031 권한부족 에러 입니다. 권한이 없는 유저에서 남의 유저의 테이블에 작업을 하려고 하는 경우에도 ORA-1031 에러가 발생하고, SQL> delete from scott.emp; delete from scott.emp * ERROR at line 1: ORA-01031: insufficient privileges DBA 유저가 아닌데, DBA 권한이 필요한 작업을 하려고 하는 경우에도 ORA-1031 에러가 발생합니다. SQL> alter tablespace TS1 read only; alter tablespace TS1 read only * ERROR at line 1: ORA-01031: insuffici.. 더보기
오라클 에러 정보 (ORA-12913, ORA-25143) - 테이블스페이스 작업중 만나게되는 ORA-12913, ORA-25143 에러들은 Create Tablespace 작업중 종종 만나게 되는 에러입니다. SQL> create tablespace TS1 datafile '/u03/oradata/ORA19/TS1_01.dbf' size 100M extent management dictionary; ERROR at line 1: ORA-12913: Cannot create dictionary managed tablespace $ oerr ora 12913 12913, 00000, "Cannot create dictionary managed tablespace" // *Cause: Attemp to create dictionary managed tablespace in database // whi.. 더보기
오라클 에러 정보 (ORA-00604) - 내부 SQL 처리에러, 다음 에러를 봐야하는 ORA-00604 에러는 Alertlog 상에서 종종 발견되는 에러입니다. $ oerr ora 604 00604, 00000, "error occurred at recursive SQL level %s" // *Cause: An error occurred while processing a recursive SQL statement // (a statement applying to internal dictionary tables). // *Action: If the situation described in the next error on the stack // can be corrected, do so; otherwise contact Oracle Support. 내부 recursive SQL 을 실행하다.. 더보기
오라클 에러 정보 (ORA-06532, ORA-06533) - PL/SQL에서 Arrary(배열) 범위를 벗어난 경우 Oracle DB 내에 있는 프로시저, 함수를 호출할때 아래와 같이 ORA-06532, ORA-06512 에러가 발생하는 경우, 이는 프로시저, 함수내에서 Arrary(배열) 변수를 사용했는데, 이 부분에서 에러가 발생한 것입니다. 배열로 선언해놓은 범위를 벗어나서 호출하는 경우에 발생합니다. PL/SQL 에서 배열 첫번째 인자는 0 이 아닌, 1 부터 시작하는 것을 주의할 필요가 있습니다. 아래의 PL/SQL 문의 경우 v_arrary 변수는 3개의 데이터(배열멤버)를 가진 배열 변수입니다. 따라서, 배열의 멤버들을 접근하려면 v_array(1), v_arrary(2), v_arrary(3) 처럼 사용해야 합니다. SQL> set serveroutput on SQL> declare type V_ARR .. 더보기
오라클 에러 정보 (ORA-01144) - 데이터파일 최대크기를 초과한 경우 Oracle 에서 데이터파일(datafile)을 크게 새로 만들려고 하거나, 기존 데이터파일의 크기를 변경(resize) 하려고 할때, ORA-01144 에러를 만날 수 있습니다. Oracle 에서 데이터는 블록(block) 단위로 저장됩니다. 하나의 데이터파일이 가질 수 있는 최대 블록의 갯수 제한이 있는데, 이게 2^22-1 입니다. 즉, 4,194,303 개. 오라클DB에서 블록크기를 보통 8k (8,192) 를 많이 사용합니다. 8k * 4,194,303 = 32GB 16k * 4,194,303 = 64GB 32k * 4,194,303 = 128GB 8k 짜리 블록 4백만개는 32GB 크기가 됩니다. 그래서 datafile 최대크기는 32GB 로 제한됩니다. 이런 제한때문에 ORA-01144 에러.. 더보기
오라클 에러 정보 (ORA-01110) - 데이타파일 관련된 에러시 부가정보를 제공하는 ORA-01110 에러는 부가적인 정보를 제공하는 Information 메시지 입니다. 특정 데이타파일(Datafile) 관련해서 다른 중요한 에러가 발생한 경우, 해당 데이터파일에 대한 파일정보를 제공합니다. 따라서, 함께 발생하는 다른 에러가 뭔지 함께 확인해야 정확한 에러의 원인을 찾을 수 있습니다. 데이터파일에 I/O 를 할 수 없는 상황이 발생한 경우, ORA-01114, ORA-17510, ORA-01157 에러 등이 발생하게 되는데, 이때 에러가 발생한 파일 위치와 이름을 ORA-01110 에러에서 확인할 수 있습니다. 위의 경우처럼, 데이터파일 정보가 표시될 때, +DATA/.. 와 같이 경로가 플러스기호(+)로 시작되는 경우는 Oracle ASM 파일입니다. 참고) 오라클 Alertlog.. 더보기
오라클 Alertlog 파일 분석 프로그램 다운로드 - Oracle 무료 DB관리툴 Oracle Alertlog 파일을 분석해서 ORA-xxxxx 에러를 집계해주는 프로그램입니다. 기능도 단순하고, 사용법도 단순합니다. 아래와 같이 윈도우즈 커맨드창(도스창)에서 alertlog 한칸 띄고 파일명(*.log) 을 입력해주면 현재 디렉토리에 alertlog 명과 같은 이름 + html 형태로 파일이 생성됩니다. 아래와 같이 alertlog.exe 파일과 샘플 alertlog 파일(alert_ORCL1.log)이 있습니다. 윈도우즈에서 커맨드창을 열고 " alertlog alert_ORCL1.log " 라고 치면 아래와 같이 alert_ORCL1.log.html 파일이 만들어 집니다. 이 html 파일을 더블 클릭해서 브라우저에서 열면 alertlog 파일에 기록되어 있는 ORA-xxxxx .. 더보기
오라클 에러 정보 (ORA-65096) - 공통 사용자 또는 롤 이름이 부적합합니다. Oracle 멀티테넌트DB (Multi-Tenant DB) 에서 DB 유저를 만들려고 하면 아래와 같이 ORA-65096 에러를 만나는 경우가 있습니다. 영어로는 아래와 같이 "Invalid common user or role name" 이라고 나오고, 한글로는 "공통 사용자 또는 롤 이름이 부적합합니다." 라고 나옵니다. 멀티테넌트 DB 에서 그냥 "sqlplus / as sysdba" 와 같이 기존처럼 접속하면 CDB(Container DB)로 접속하게 됩니다. 이 CDB는 여러개의 PDB(Pluggable DB)들을 담고 있는 그릇(Container)입니다. 따라서 사용자 계정은 PDB 안에서 만들어야 합니다. PDB로 접속할때는 tnsname 을 미리 만들고 그것을 사용해서 접속하는 방법이 있고,.. 더보기