ORA-07217 : sltin : environment variable cannet be evaluated

ORA-07217 : sltin : environment variable cannet be evaluated


ORACLE_SID 설정이 안됐을때 나오는 에러


ORA-00257: archiver error. Connect internal only, until freed.

archive Destination Full 로 인해 DB가 Hang이 걸리고 더이상 작업을 할 수 없는 경우가 발생 할 경우,

해당 directory의 Free space영역을 늘리더라도 여전히 Hang이 걸려 있게 됩니다.

이때, sqlplus 로 login 시

ORA-00257: archiver is stuck. CONNECT INTERNAL only, until freed

에러가 발생


이후 

$ sqlplus internal

SQL> alter system archive log all;

를 하여도

ORA-16020: less destinations available than specified by

LOG_ARCHIVE_MIN_SUCCEED_DEST

와 같은 에러를 계속 발생



<원인>

Archive Destination이 Full 나면 Arch process의 작업이 중단되고 이후 directory에

여유공간이 있다 하더라도 자동으로 archiving을 재시작할 수 없기 때문.


SQL> select * from V$archive_dest;

.....

해당 Archive destination에

ORA-19504: failed to create file %s



<조치사항>

SQL> alter system set LOG_ARCHIVE_DEST_1 = 'location=/archivelogpath reopen';

INS-30060 : Check for group existence failed.


solution


./runInstaller -ignoreSysPrereqs –ignoreInternalDriverError


Reference:

Cause: Unexpected error occurred while trying to check for group existence.

Action: Refer to the logs or contact Oracle Support Services. Note for advanced users: Launch the installer by passing the following flag 

-ignoreInternalDriverError.



DBCA 구동 에러

xhost +local:oracle로 넘겨서 엔진 설치를 끝내고 나면

 

Xlib: connection to ":0.0" refused by server 에러

 

가 뜨면서 DBCA 구동이 안됩니다.

 

일반사용자가 GUI프로그램을 실행시키니 나타난 것으로, root계정으로 전환해서

# xhost +local:root
# export XAUTHORITY=/home/oracle/.Xauthority

그리고 다시 오라클계정에서 실행하면 됩니다.

ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []

ORA-00600: internal error code, arguments: [string], [string], [string], [string], [string], [string], [string], [string]

원인 : 이는 오라클 프로그램 예외에 대한 일반적인 내부 에러 번호이다. 이는 프로세스가 로우레벨의 예상치 못한 상황에 놓였음을 뜻한다. 이 메세지의 원인은 다음과 같다.

타임아웃
파일 파손(corruption)
메모리상의 데이터 체크 실패
하드웨어, 메모리 또는 I/O 에러
잘못 저장된 파일들

처음 인자(argument)는 내부 메세지 번호이고, 다음 인자들은 다양한 숫자, 이름, 문자열이다. 그 숫자들은 오라클 버전에 따라 그 의미가 다르다.

조치방법 : 오라클 지원 서비스에 다음 정보를 첨부하여 이 에러를 보고한다.

이 에러를 유발시킨 사건들(event)
이 에러를 유발시킨 오퍼레이션
이 에러가 발생했을 당시의 운영체제와 데이터베이스 상태
ORA-00600 메세지를 받기전에 발생한 특별한 상황이나 문제점
이 에러로 인해 생성된 trace 파일 내용
Alert 파일에 이 에러와 관계된 부분

Cause: This is the generic internal error number for Oracle program exceptions. It indicates that a process has encountered a low-level, unexpected condition. Causes of this message include:

timeouts
file corruption
failed data checks in memory
hardware, memory, or I/O errors
incorrectly restored files
The first argument is the internal message number. Other arguments are various numbers, names, and character strings. The numbers may change meanings between different versions of Oracle.

Action: Report this error to Oracle Support Services after gathering the following information:

events that led up to the error
the operations that were attempted that led to the error
the conditions of the operating system and databases at the time of the error
any unusual circumstances that occurred before receiving the ORA-00600 message
contents of any trace files generated by the error
the relevant portions of the Alter files

Note: The cause of this message may manifest itself as different errors at different times. Be aware of the history of errors that occurred before this internal error.

ORA-01092: ORACLE instance terminated. Disconnection forced

1. 오라클 10g 패치 후(10.2.0.2 -> 10.2.0.5) startup 명령어로 DB를 open 하려고 할 때,

ORA-01092: ORACLE instance terminated. Disconnection forced 에러 발생

 

발생 원인

오라클 엔진만 패치되고 DB에 패치가 제대로 적용되지 않았을 경우

 

SQL> sqlplus / as sysdba

 

SQL> startup upgrade;

SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql

                             

                     시간 약 15~20분걸림

                             

SQL> shutdown immediate;

 

SQL> startup;

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

 

SQL> !

 

$ORACLE_HOME/bin에 존재하는 파일에 권한 부여

[oracle@localhost ~] cd $ORACLE_HOME/install

[oracle@install ~] ./changePerm.sh  

SQL> select * from v$version;



2. pfile 이용시 tablespace 경로 설정이 적용이 안되어 DB가 구동이 안될때 발생


initSID.ora 파일을 수정해 준다.

ORA-01400 : NULL을 ("DB명"."테이블명"."칼럼") 삽입할 수 없습니다

ORA-01400 : NULL을 ("DB명"."테이블명"."칼럼") 삽입할 수 없습니다 


 ◆ 문제 원인


  cannot insert NULL into ("eai"."test_table"."name")

  해당 에러는 데이터를 insert 할 때, eai.test_table 의 name 컬럼의 속성이 not null 인데 데이터를 넣지 않아서 (null) 발생



 ◆ 문제 해결


  * 데이터를 insert 하기 전에 not null 컬럼을 확인하여 해당 컬럼들에는 데이터를 필수적으로 입력하면 된다.

  * 데이터가 있음에도 not null 이 발생할 경우, 값이 null 인 이유를 확인한다. 



  1. 계산에서 null 이 발생할 경우 null 이 발생하는 경우를 없애야 한다.

     cnt_no 라는 not null 컬럼에 max(cnt_no) + 1 를 했을 경우, 테이블에 값이 없다면 (레코드가 0인 경우) null 이 되므로 에러가 발생한다.

     그런 경우 max( nvl(cnt_no, 0) + 1 ) 를 해서, 레코드가 0일 경우 max(cnt_no) 값을 0으로 변환을 해서 0 + 1 로 만들어 해결한다.



  2. 변수를 이용하여 insert 할 경우, null이 발생하지 않는 변수라면 변수의 선언문이나 정의문이 문제가 있는지 확인한다.

     * 선언

       <field key="0" nofetch="0" name="DIVISION_CD"/>


     * sql 정의

        INSERT INTO EAI.TEST_EAI  ( DIVISION_CD, COM_CD, GROUP_ID, TEXT)

        VALUES  (:DIVISION_CODE, :COMPANY_CODE, :GROUP_ID, :TEXT)

RAC 설치시 클러스터웨어 설치 실패시 조치 방법

1. 삭제 스크립트 실행

# $ORA_CRS_HOME/install/rootdelete.sh

# $ORA_CRS_HOME/install/rootdeinstall.sh


2. 노드 application 프로세스 중단

# srvctl stop nodeapps -n <node name>


3. 부팅 시 노드 application 자동 실행 방지(root 권한으로 실행)

Sun:


# rm /etc/init.d/init.cssd

# rm /etc/init.d/init.crs

# rm /etc/init.d/init.crsd

# rm /etc/init.d/init.evmd

# rm /etc/rc3.d/K96init.crs

# rm /etc/rc3.d/S96init.crs

# rm -Rf /var/opt/oracle/scls_scr

# rm -Rf /var/opt/oracle/oprocd

# rm /etc/inittab.crs

# cp /etc/inittab.orig /etc/inittab


Linux:


# rm -f /etc/init.d/init.cssd

# rm -f /etc/init.d/init.crs

# rm -f /etc/init.d/init.crsd

# rm -f /etc/init.d/init.evmd

# rm -f /etc/rc2.d/K96init.crs

# rm -f /etc/rc2.d/S96init.crs

# rm -f /etc/rc3.d/K96init.crs

# rm -f /etc/rc3.d/S96init.crs

# rm -f /etc/rc5.d/K96init.crs

# rm -f /etc/rc5.d/S96init.crs

# rm -Rf /etc/oracle/scls_scr

# rm -f /etc/inittab.crs

# cp /etc/inittab.orig /etc/inittab


HP-UX:

# rm /sbin/init.d/init.cssd

# rm /sbin/init.d/init.crs

# rm /sbin/init.d/init.crsd

# rm /sbin/init.d/init.evmd

# rm /sbin/rc3.d/K960init.crs

# rm /sbin/rc3.d/S960init.crs

# rm -Rf /var/opt/oracle/scls_scr

# rm -Rf /var/opt/oracle/oprocd

# rm /etc/inittab.crs

# cp /etc/inittab.orig /etc/inittab


HP Tru64:


# rm /sbin/init.d/init.cssd

# rm /sbin/init.d/init.crs

# rm /sbin/init.d/init.crsd

# rm /sbin/init.d/init.evmd

# rm /sbin/rc3.d/K96init.crs

# rm /sbin/rc3.d/S96init.crs

# rm -Rf /var/opt/oracle/scls_scr

# rm -Rf /var/opt/oracle/oprocd

# rm /etc/inittab.crs

# cp /etc/inittab.orig /etc/inittab


IBM AIX:


# rm /etc/init.cssd

# rm /etc/init.crs

# rm /etc/init.crsd

# rm /etc/init.evmd

# rm /etc/rc.d/rc2.d/K96init.crs

# rm /etc/rc.d/rc2.d/S96init.crs

# rm -Rf /etc/oracle/scls_scr

# rm -Rf /etc/oracle/oprocd

# rm /etc/inittab.crs

# cp /etc/inittab.orig /etc/inittab


5. Oracle Universal Installer에서 CRS home을 선택 후 "설치해제" 


6. dd 명령으로 OCR 및 Voting File을 제거


ex)

# dd if=/dev/zero of=/dev/raw/raw1 bs=8192

# dd if=/dev/zero of=/dev/raw/raw2 bs=8192

# dd if=/dev/zero of=/dev/rdsk/V1064_vote_01_20m.dbf bs=8192 count=2560

# dd if=/dev/zero of=/dev/rdsk/ocrV1064_100m.ora bs=8192 count=12800


만약 RDBMS 설치를 제거한다면, 사용중이던 ASM 디스크도 정리합니다.

CRS를 재 설치하고자 하면, RAC 설치 매뉴얼에 기술된 순서대로 설치를 다시 진행.

참고 : 프로세스가 살아 있다면 EVM, CRS 및 CRS 프로세스를 kill 시키거나 노드를 재부팅.


ps -ef | grep crs 

ps -ef | grep evm

ps -ef | grep css