ORACLE (33) 썸네일형 리스트형 Oracle deadlock ORA-00060: Deadlock detected. See Note 60.1 at My Oracle Support for Troubleshooting ORA-60 Errors. More info in file /rdsdbdata/log/diag/rdbms/../trace/.._ora_10827.trc. ORA-00060: Deadlock detected. See Note 60.1 at My Oracle Support for Troubleshooting ORA-60 Errors. More info in file /rdsdbdata/log/diag/rdbms/../trace/.._ora_10959.trc. Oracle의 교착 상태(Deadlock) 처리는 시스템의 동작 방식과 상황에 따라 달라질 수 있다... Oracle Job interval에 case문을 사용하여 여러 시간대 설정 DBMS_JOB의 NEXT_DATE와 INTERVAL 값을 적절히 설정하면 하루에 특정 여러 시간에 작업을 수행하도록 설정할 수 있다. 예시DBMS_JOB을 이용한 하루 두 번 실행 예제 (예: 오전 2시, 오전 4시)DECLARE job_no NUMBER;BEGIN -- DBMS_JOB 작업 생성 DBMS_JOB.SUBMIT( job => job_no, what => 'BEGIN your_procedure; END;', -- 실행할 작업 next_date => TRUNC(SYSDATE + 1) + 2/24, -- 내일 오전 2시부터 시작 interval => 'CASE WHEN TO_CHAR(SY.. ORACLE DBMS_JOB 동시 수행 테스트 ORACLE 에서 어떤 JOB의 수행이 끝나지 않은 상태에서 다음 수행시간이 되었을 때 어떻게 수행이 되는지 테스트해보았다. 테스트 환경은 RDS for Oracle 19.13.0.0 버전이다. 테스트 목표같은 JOB이 동시에 실행되는지 확인실행 중인 JOB이 끝나지 않았을 때 다음 실행이 시작되는지 확인 테스트 방법수행시간이 2분 소요되는 프로시저를 1분 간격으로 수행되도록 job 등록하여수행 시작 시간과 종료 시간을 확인한다. 1. 테스트 테이블 생성작업 상태를 기록할 테이블을 생성한다.CREATE TABLE job_test_log ( log_time TIMESTAMP, job_id NUMBER, message VARCHAR2(100)); 2. 테스트 프로시저.. [Oracle] Statspack Snapshot유지 기간 Retention 설정 관리 오라클에서 성능 분석을 위해 Statspack을 설정하였는데 시간이 지남에 따라 SYSAUX 테이블스페이스에 과도하게 데이터가 쌓이는 것을 확인하였다.AWR Report는 Retention 에 설정한 유지 기간에 따라 자동으로 스냅샷을 관리해주는 기능이 있지만 Statspack 에는 자동 관리 기능이 없다. Statspack을 사용할 경우 직접 정리 작업을 하거나 스케줄러를 등록하여야 한다. Statspack 스냅샷 확인-- Statspack 스냅샷 리스트 확인select * from stats$snapshotorder by SNAP_TIME desc; Statspack 데이터 삭제-- 3달 경과한 Statspack 데이터 삭제DELETE from stats$snapshot where snap_time.. 테이블 truncate 중 ORA-02266, ORA-02297 테이블 truncate 중 ORA-02266 에러가 발생하였다. ora-02266 :unique/primary keys in table referenced by enabled foreign keys 다른 테이블에서 활성화된 외래 키가 참조하는 고유 키 또는 기본 키가 있는 테이블을 참조함.위 작업을 수행하기 전에 테이블에서 다른 테이블의 외래 키 제약 조건을 비활성하여 해결할 수 있다.제약 조건을 비활성화하여 검증 단계를 무시하는 것이다. 해당 테이블의 제약조건을 dba_constraints 뷰에서 확인할 수 있다. SELECT * FROM DBA_CONSTRAINTSWHERE TABLE_NAME = '테이블명'AND OWNER = '스키마 명'; 외래 키 제약 조건을 비활성화한다.ALTER TABLE.. 오라클 아키텍쳐 (5) Undo Segment Oracle 데이터베이스의 UNDO 세그먼트Oracle 데이터베이스에는 UNDO 세그먼트라는 특수한 영역이 있어, 트랜잭션이 진행되는 동안 변경되기 전의 데이터를 저장합니다. 이 세그먼트는 트랜잭션 시작 시 자동으로 할당되며다음과 같은 목적으로 사용됩니다.트랜잭션 롤백: 사용자가 트랜잭션을 롤백하거나 시스템 오류로 인해 트랜잭션이 비정상적으로 종료될 경우 데이터를 복구하는 데 사용됩니다.읽기 일관성: 트랜잭션이 진행되는 동안 다른 사용자가 커밋되지 않은 변경 사항을 확인할 수 없도록 하여 트랜잭션 진행 전의 데이터 상태를 보장합니다. ROLLBACK Segment / UNDO Segment Oracle 8i 이전 버전에서는 롤백 세그먼트가 사용되었습니다. 이러한 세그먼트는 수동으로 관리되어야 했으며 크.. [ORACLE] LOB 컬럼 테이블스페이스 변경 Oracle 데이터베이스의 성능과 저장 공간 활용을 최적화하기 위해 LOB(Large Object) 컬럼과 관련 인덱스의 테이블스페이스 변경이 필요할 수 있다.아래는 LOB 컬럼 및 인덱스 테이블스페이스 변경을 위한 단계별 가이드이다. 1. 현재 LOB 컬럼과 테이블 확인dba_segments와 dba_lobs 뷰를 조인하여 LOB(Large Object) 세그먼트에 대한 정보를 검색select s.OWNER , TABLE_NAME , COLUMN_NAME from dba_segments s, dba_lobs l where s.SEGMENT_NAME = l.SEGMENT_NAME and s.OWNER = l.OWNER and SEGMENT_TYPE = 'LOBSEGMENT';결과 예시OWNER: LOB .. [Oracle] INTERSECT 명령어 Oracle의 INTERSECT 명령어 INTERSECT 명령어는 집합 연산자로, 두 테이블의 교집합을 반환합니다. 즉, 두 테이블 모두에 존재하는 행을 선택합니다. 선택한 열은 두 테이블에서 동일한 데이터 유형과 크기여야 합니다. INTERSECT 구문 예SELECT column_listFROM table1INTERSECTSELECT column_listFROM table2; INTERSECT 사용 예다음 예에서는 customers 테이블과 orders 테이블의 교집합을 찾아 두 테이블에 모두 존재하는 고객 ID와 주문 ID를 선택합니다.SELECT customer_id, order_idFROM customersINTERSECTSELECT customer_id, order_idFROM orders;.. 이전 1 2 3 4 5 다음 목록 더보기