다 해보고프다

이것저것 해보고픈거 다 할 수 있는 삶을 살고싶다

DB/Oracle(오라클) 10

덤프(DUMP) 백업 Batch(cmd)파일

:: 2017-12-18 광훨 제작:: 해당 파일만으로 백업 가능하게끔 제작@echo off :: 변수 초기화setlocal :: 백업 위치 설정, 폴더 생성set Backup_Path=C:\DB_Backupset FileNM=%date:~0,4%%date:~5,2%%date:~8,2%set PW=system계정 패스워드mkdir %Backup_Path% 2> NUL :: 파일명, 확장자 설정, 실행일시 기록set Extension=dmpecho %date% %time% >> %Backup_Path%\Oracle_DB_Backup.logecho. >> %Backup_Path%\Oracle_DB_Backup.log :: 백업 실행exp userid=system/%PW% file='%Backup_Path%\..

ORA-03113: 통신 채널에 EOF가 있습니다.(ORA-03113: end-of-file on communication channel.)

어느날 한 서버의 DB가 죽었다고 해서 한번 확인해봤다. 방치한지 좀 됐다고 한다... Alert Log는 왜인지 몰라도 존재하지 않아서 어떤 문제가 발생했는지 확인하기가 어려웠다. 최초 현상1. 오라클 관련 서비스는 실행 상태2. sqlplus /nolog -> connect / as sysdba 로 접속 시 휴지 인터페이스로 접속3. 아무래도 모종의 이유로 DB가 Shutdown 되어있을것으로 추측4. DB가 꺼져있을것이라는 단순한 추측에 Startup 실시5. DB 실행 도중 ORA-03113: 통신 채널에 EOF가 있습니다. 오류가 발생하며 DB가 다시 Shutdown 됨. 일단 어디에서 문제가 발생했는지 확인하기 위해 순서대로 올려보기로 함.> sqlplus /nolog> connect / as..

ORA-19809, ORA-19804 해결법

이번에 DB 먹통 현상이 발생해 복구 진행하다가 오류가 나서 확인했던 절차 정리해둠. > recover database until cancel; > alter database open resetlogs;ORA-19809: limit exceeded for recovery filesORA-19804: cannot reclaim 100359680 bytes disk space from 8589934592 limit 에서 오류가 난다. 해결법은 db_recovery_file_dest_size를 늘려주던지, Archive Log를 정리하여 여유공간을 확보해주면 된다. 1. db_recovery_file_dest_size를 늘려주는 방법> alter system set db_recovery_file_dest_si..

SQL Developer, ORA-01460: 요구된 변환은 실행될 수 없습니다

타 부서 DB개선 요청이 들어와서 SQL Developer에서 접속하여 함수, 프로시저 등 상세정보 확인을 하려고 하니 나타난 오류다. 확인 결과 4.1.x 버전부터 JDK8을 사용하는데, 9i 이하 버전은 호환이 안된단다. SQL Developer 프로그램 특성 상 사용하는 JDK 버전을 바꾸는건 불가능하고, SQL Developer 4.0.x 이하 버전을 사용하면 된다. 4.0.3 경로 : http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/sqldev-downloads-403-2529784.html 만약 경로가 깨졌다면 오라클 공홈 - Download - SQL Developer - Previous Version을 4...

정렬 순서가 자꾸 달라진다. ORDER BY, JOIN 문제로 추정...

시스템 사용 중 엑셀 출력기능을 이용하는데, 특정 데이터 순서가 틀어진것을 확인. 이게 틀어진 상태로 계속 출력되는게 아니라, 5번 중 2번이 틀어진 순서로 출력됨. 쿼리를 보다보니 의심스러운 부분 발견 보통 제일 밑에 있어야 할 ORDER BY가 중간에 있는것 즉 순서가 A 테이블 내 쿼리 실행-> B 테이블 내 쿼리 실행 -> 두개 테이블 조인 -> 조건에 부합하는 데이터 체크 -> 정렬 -> 출력 이 정상적인 순서일텐데, A 테이블 내 쿼리 실행-> A 테이블 정렬 -> B 테이블 내 쿼리 실행 -> 두개 테이블 조인 -> 조건에 부합하는 데이터 체크 -> 출력 이렇게 돌아가고 있다.(물론 실제 오라클 돌아가는건 좀 다르다. 나중에 봤을 때 이해를 쉽게하기 위해 위와같이 적음) JOIN을 진행할 때..

Too many open files 오류... 그리고 근본 원인은?

오라클쪽 문제는 아니고, 운영중인 SW의 java 오류다... 카테고리 따로 만들기는 귀찮기 때문에 그냥 여기에 작성중 [ERROR]|java.io.IOException: Too many open files (errno:24) at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:150) at com.ubimeta.lib.net.manager.ServerSocketManager.acceptPendingConnections(ServerSocketManager.java:222) at com.ubimeta.lib.net.ma..

예측 실행계획, 실제 실행계획 및 Trace 확인법

정리해둡니다. 참고하실분들은 참고하세요. --예측 실행계획-------------------------------------------------------------------/*1. EXPLAIN PLAN FOR 뒤에 쿼리문 작성 후 실행2. SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); 실행3. 끝. 단, 해당 실행계획은 예상 실행계획이므로 실제 실행계획과는 다를 수 있음*/ EXPLAIN PLAN FOR; SELECT * FROM TABLE(DBMS_XPLAN_DISPLAY); /*예시*/ EXPLAIN PLAN FORSELECT SYSDATE FROM DUAL; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); --실제 실행계획----------..

FK 비활성화 후 활성화 시 오류 발생

1. 시스템 작업이 있어 FK 비활성화 후 다시 활성화 하려고 보니, 아이고... 너무 많은 데이터가 들어오는 나머지 FK에 해당하지 않는, 고아 데이터들이 있는지, FK 활성화가 안된다. 오류난다. 으아니챠 2. 데이터 양이 많아 선결시되는 작업이, 미들웨어, web/was STOP 후 데이터를 검색하는 방법뿐이다. 데이터가 너무 많아 검색조차 힘들다. 하위 테이블이 5억건정도 되는듯... 3. 아아... 현 상황은, A테이블에 3개 컬럼이 PK로 걸려있고, 해당 3개 컬럼이 B 테이블의 FK로 걸려있다. A 테이블은 500만건정도 되고, B 테이블은 5억건정도 존재한다. 4. where (AA, BB, CC) not in (select AA, BB, CC from B) 으로 검색 시도. 미쳤다 이건...

ORA-00913: 값의 수가 너무 많습니다 00913. 00000 - "too many values" 오류 발생

오늘 일하는 중 단순 조회에서 막혀버렸다.'ORA-00913: 값의 수가 너무 많습니다'원래 내가 알고있는게 맞다면 위의 오류는 INSERT 할때 입력값의 개수랑 입력받는 컬럼 개수가 다를 때 나는 쿼리인데SELECT 할 때 나타나서 벙찌고 있었다.사용한 쿼리는 아래와 같다.SELECT B.CITY, APT, EQIP_NM, MEMO FROM APT_CD A, ( SELECT CITY, APT_CD, EQIP_CD, MEMO FROM EQIP WHERE CITY IN ('23','24','25','26') AND EQIP_CD NOT IN ( SELECT CITY, EQIP_CD FROM DSCHQTY WHERE CITY IN ('23','24','25','26') AND DTTM >= TO_DATE(2..