728x90

전체 글 297

ORA-01591:lock held by in-doubt distributed transaction에러

ORA-01591 : distributed transaction 에러                      분산 트랜잭션의경우 2PC(2 Phase commit) 수행 중 Fail이 발생하면                       관여된 일부 DB에서는 rollback or commit되고                      일부는 distributed lock이 걸린 상태로 지속 될 수 있다.                                          이런 pending 된 transaction은 RECO가 자동으로 정리해 주나 정리가 안되면                      ORA-01591에러가 발생하므로 Pending transaction을 정리해야 한다  1)  DBA_2PC..

Programming/Oracle 2024.09.13

오라클 테이블스페이스 변경하기!

[ 오라클 테이블스페이스 변경하기 ]  [1] 인덱스에 사용된 테이블스페이스 확인 select distinct tablespace_name   from user_indexes ;    alter index 인덱스명 rebuild tablespace 테이블스페이스명;   INDEX_TEMP 테이블스페이스로 사용한 INDEX를 INDX10으로 변경할때 select 'alter index '||index_name||' rebuild tablespace indx10;'  from user_indexes where tablespace_name in ('INDEX_TEMP') ; [2] 테이블에 사용된 테이블스페이스 확인 select distinct tablespace_name from user_tables ; ..

Programming/Oracle 2024.07.26

오라클 블록의 단편화 해결방법(테이블 move편)

오라클에서 블록의 단편화 해결 방법 3가지 대표사진 삭제블록의 단편화 해결 방안이중에서 두번째 방법인 테이블 move편 입니다  1) 데이터 삭제 DELETE FROM employees WHERE department_id = 10; COMMIT; 2) 테이블 MOVE(오라클 8i (8.1.5) 이상) : 테이블을 물리적 재배치 ALTER TABLE employees MOVE;  ALTER TABLE ... MOVE 명령은 오라클 8i (8.1.5) 버전부터 사용할 수 있습니다. 이 명령은 테이블을 이동하여 블록 단편화를 줄이고 테이블의 물리적 구조를 최적화하는 데 사용됩니다.  * 파티션 테이블 이동 : 테이블이 파티션 되어 있다면! 파티션 단위로 이동 가능합니다(오라클 8i (8.1.5) 이상)  ..

Programming/Oracle 2024.07.09

리스너 에러(tns-12560/tns-00527)

프로그램 접속 중 아래와 같은 리스너 에러가 났다 아래와 같은 에러 발생시 환경변수의 oracle_home 설정을 확인해 보자 DB의 오라클 HOME 경로와 동일한지 아닌지! 서버의 오라클 홈 경로와 서버의 환경 변수에 설정되어 있는 오라클 홈 경로가 달라도 아래와 같은 에러가 발생한다! 그리고 나서도 에러가 나면 리스너 로그를 살펴보자!

카테고리 없음 2024.03.20

ORA-06576 함수 또는 프로시저 이름이 부적합합니다

ORA-06576 함수 또는 프로시저 이름이 부적합합니다 ※ 에러 발생 상황 1) user A에서 신규 프로시저 생성 2) user B에서 해당 프로시저 실행 ※ 조치 내역 1) system 계정에서 시노님을 준다 2) user B에서 실행 할수 있게 execute 권한을 준다 create public synonym procecure명 for user A. procecure명 ; grant execute on procecure명 to user B ;

Programming/Oracle 2024.01.25

오라클-수량 비율로 금액 배분 후 끝전 처리까지 한번에 쿼리로 만들기

[ 수량 비율로 금액 배분 후 끝전 처리를 쿼리로 만들기 ] 1) cloth_cd별로 가지고 있는 수량 비율을 구해 금액을 나눈다( ratio_to_report 사용 ) cloth_cd의 rownumber와 마지막 로우를 찾기 위해 count(cloth_cd)를 구해 놓는다 round(d.othr_amt8 * round(ratio_to_report(a.out_qty) over(partition by a.cloth_cd), 6)) out_amt, row_number() over(partition by a.cloth_cd order by a.out_qty) last_row, count(a.cloth_cd) over(partition by a.cloth_cd) row_cnt 2) cloth_cd별로 마지막 r..

Programming/Oracle 2023.11.17
728x90