본문 바로가기

Oracle/운영117

ddl_lock_timeout 과 ORA-00054 : resource busy 테이블에 DML이 일어나면 lock이 발생되고 다른세션은 이전 DML이 종료될때까지 waiting이 발생합니다. 다른 세션의 작업이 DML이라면, 세션이 계속 대기중이면서 이전 세션이 종료됨과 동시에 수행이 될 것입니다. 하지만 다른 세션의 작업이 DDL이라면? DDL은 바로 해당 에러를 보이면서 되지 않을 것입니다. ERROR at line 1: ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired 리소스가 사용중이니 에러를 뱉으며 명령어를 수행할 수 없다는 뜻입니다. 기존세션에서 있는 DML이 언제 끝날지 모르고 계속 대기해야 하거나, DML을 강제로 종료시키고 저의 DDL 작업을 수행해야 하는데, DML과 다르게 .. 2023. 7. 24.
테이블 컬럼삭제 Drop Column과 Unused 일반적으로 컬럼을 삭제할 때는 ALTER TABLE ... DROP COLUMN을 사용합니다. 하지만 테이블이 현재 트랜잭션이 발생해서 사용중(Online) 상태라면? drop 컬럼은 사용할 수 없을 것입니다. 그때 사용할 수 있는 방법이 UNUSED 인데요. 컬럼을 사용하지 않는다고 mark하는 것입니다. mark만 하기 때문에 용량이나 블록은 그대로이지만 딕셔너리뷰나 테이블에서 조회시에는 drop된것과 동일하게 보입니다. 그리고 트랜잭션이 없을때 UNUSED된 컬럼을 삭제하면 된다고 하는데, 24시간 사용중인 테이블이라면 별 효과가 없을 것같다는 생각을 했습니다. 이번 글은 unused 컬럼에 대해서 여러가지 테스트를 해보면서 비교해보려고 합니다. 1) drop column과 unused 후 drop.. 2023. 7. 19.
[ACL,UTL_SMTP] 10g,11g 메일링 서비스 관련 이슈 10g에서 사용중인 DB가 11g로 업그레이드 되었고, 기존 DB에서 사용중인 메링링 서비스가 11g에서는 에러를 뱉으며 되지 않았습니다. 그에 따른 해결방법 정리하였습니다. 에러메세지 ORA-29260 네트워크 오류 : 접속되지 않음 ORA-06512 'SYS.UTL_TCP' 231행 ORA-06512 'SYS.UTL_TCP' 460행 ORA-24248 XML DB 확장 가능한 보안이 설치되지 않았습니다. 원인 Oracle 버전 업에 따른 MAILING 방식이 추가 됨. 보안 레벨을 향상시키지위해 network-related PL/SQL package에 대해 runtime시 실행하는 사람(invoker)에 대한 추가적인 권한이 요구되도록 변경됨. (XML DB access control list(ACL.. 2023. 6. 16.
큰 트랜잭션이 취소됐을때 확인 법과 대처법 저도 실제로는 처음 본 상황이 운영중이 발생하여서 정리하고자 이번 글을 작성합니다. 사실 개념적으로는 알고 있었던(알고 있었다기 보단 정리했었던이 더 맞는거 같습니다. 이전글에 해당 내용이 간단하게 정리되어 있었지만 이해하지는 못한 상태였기 때문에..) 내용인데 실제로 보고 어떻게 대처해야 하는지 어떻게 확인해야하는지에 대해 정리하였습니다. 발생 상황은 간략히 정리하면 큰 트랙잭션의 DML작업을 alter system kill session으로 kill 하였는데 실제로 OS에서는 프로세스가 죽지 않고 계속 살아있었고 이 프로세스를 강제로 OS kill 명령어(kill -9)로 죽이면서 발생하였습니다. 먼저 DML이 일어나면 UNDO 영역이 사용됩니다. commit이 아니라 rollback될 수도 있기 때.. 2023. 5. 19.