반응형

ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace 에러가 오늘 아침에 발생 했습니다.


기숙사에서 자고있는와중에 시스템들이 동작하지 않는다고 연락이 와서 저번처럼 업체 네트워크 문제인지 확인해달라고 하여 부랴부랴 노트북이 있는 회사로 가려하던중 같은 연락을 받으신 대리님이 " 내가 들어보니 SYS.AUD 테이블스페이스 용량 꽉 찬거 같으니까 오라클 재시작하고 truncate 쓰고와 " 라고 말씀하셨고 내려가서 확인해보니 위와 같은 사진과 함께 오라클 연결이 되지 않았습니다.


그래서 대리님이 말하신대로 truncate를 하려하던 도중 또다른 에러를 만났습니다.



ORA-00054: 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다. 


대략 난감 했었습니다. 빠르게 구글링 해본 결과


"사용중인 테이블에LOCK이 걸린 상태에서 발생하는 오류"
"Commit" 으로 해결

누군가 작업을 하고 commit 를 안친건지 의아해 하던 도중 대리님이 " 너 오라클 서비스 안껏다켰지? " 라고 말씀하셨습니다.


네 맞습니다 저는 오라클 서비스를 재시작 하지 않고 명령어를 치고있던 중이였습니다.


사실 이 문제는 commit 한번 과 truncate table SYS.AUD$; 로 해결할수 있는 문제 였을지도 모르겠습니다.

하지만 무슨 작업을 누가 어떻게 한지 확인을 못한 상황이여서 commit 보단 오라클 서비스 재시작을 선택 한거 같습니다.

만약 commit 을 입력 했더라도 그대로 안되는거라면 다음과 같은 방법을 이용 합니다.


SELECT

    S.SID,

    S.SERIAL#

FROM

    (

        SELECT SID

        FROM V$LOCK

        WHERE ID1 IN (SELECT OBJECT_ID FROM DBA_OBJECTS WHERE OBJECT_NAME = 'IP_NMCBOARD_T')

    ) X

    JOIN V$SESSION S ON X.SID = S.SID;



SID SERIAL#

--- -------

5   1

6   1


2. 다음 명령으로 SESSION들을 KILL한다.


SQL> ALTER SYSTEM KILL SESSION '5, 1';

SQL> ALTER SYSTEM KILL SESSION '6, 1';



반응형
반응형

Windows Server 2012 R2 64Bit 윈도우에 Oracle Database Express Edition 11g Release 2 64Bit 설치 후 프로그램 테스트 완료 후 월요일이 되었습니다.

회사에서 Oracle Database Express Edition 11g Release 2 32Bit 가 더 안정적으로 작동 하니 32Bit 설치를 요청하여 다시 테스트 하자는 이야기가 있었고 저는 그에따라 Windows Server 2012 R2 64Bit에 Oracle Database Express Edition 11g Release 2 32Bit 설치를 시작 했습니다. 
일단 Oracle Database Express Edition 11g Release 2 64Bit 를 제거 하겠습니다.




** 설치 당시 SETUP 파일을 가지고 있는 경우 SETUP 파일로도 언인스톨이 가능 합니다.


1. 오라클 설치당시 받았던 버전의 셋업파일을 실행 합니다.


2. Repair , Remove 선택 창이 나타납니다. -> Remove 선택 후 Next -> finish


** 설치 당시 SETUP 파일이 없는경우


서비스에 등록되어있는 오라클 관련 서비스 제거

1. 시작 -> 실행 -> CMD(관리자권한실행) 창에 5개의 서비스 제거 명령어를 입력

C:\Users\Administrator> sc delete "OracleJobSchedulerXE"

C:\Users\Administrator> sc delete "OracleServiceXE"

C:\Users\Administrator> sc delete "OracleXEClrAgent"
C:\Users\Administrator> sc delete "OracleMTSRecoveryService"

C:\Users\Administrator> sc delete "OracleXETNSListener"


2. oraclexe 폴더를 삭제



3. 시작 -> 실행 -> regedit(관리자권한) 실행


HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ 

HKEY_LOCAL_MACHINE\SOFTWARE\odbc\odbcinst.ini\Oracle in XE 관련 폴더 삭제

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OracleXE 관련 폴더 삭제

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\OracleXE 관련 폴더 삭제

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleXE 관련 폴더 삭제

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\oracle 관련 폴더 삭제


4.서버 재부팅



반응형
반응형

2018-05-21 업체에서 프로그램 사용중 ORA-12571: TNS:패킷 기록자 실패. 라는 alert 창이 화면에 떠있다며 연락이 왔습니다.


DB 서버가 터진줄 알고 부랴부랴 원격을 통해 들어가보니 DB 서버는 정상 동작중이고 특정PC 1대 에서만 ORA-12571: TNS:패킷 기록자 실패. alert 창을 확인하였고, 프로그램 상에서 로그 확인 결과  Network Connection Fail 이 발생되었던 것을 확인 했습니다. 즉 PC에 인터넷이 잠시동안 끊기면서 생긴 에러로 추정 됩니다.

제가 업무를 하면서 처음 보았던 ORA-12571 ERROR 이기에 검색 등을 통해서 무엇이 문제인지 파악 하던 도중 최근에 sqlnet.ora에 적용 하였던 SQLNET.EXPIRE_TIME=3 문구가 ORA-12571 관련 에러로 보이기 시작해 찾아보기 시작 하였습니다. 

SQLNET.EXPIRE_TIME=10 을 설정하면 10분에 한번씩 맺어진 연결들에 대해서 DB쪽에서 패킷을 자동 전송해줌으로, 중간에 네트웍이나 방화벽에서 Session을 끊지 않음
 

출처: http://soul0.tistory.com/211 [돌이의 소소한 이야기★]
SQLNET.EXPIRE_TIME=3 즉 3분 동안 PC에서 DB 쪽에 신호를 보내지 않아 끊기면서 발생한 에러였던 것입니다. 그 이유인 즉슨 3분 이상 동안 인터넷 연결이 끊어지면서 서버와 통신 하지 못하고 ORA-12571 얼럿창이 발생 하였던 문제였습니다. 더 자세한 문제 파악을 위해 고객사에 네트워크 작업 여부를 문의 해놓은 상태 입니다.
인터넷에서는 SQLNET.EXPIRE_TIME=3 을 주석처리 하거나 0 으로 바꾸라는 이야기를 보았는데요, 사실상 이러면 SQLNET.EXPIRE_TIME=3 를 쓰는 의미가 없기에 따로 바꾸거나 다른 조치를 취하지는 않았습니다.

반응형

+ Recent posts