728x90

다운로드 방법

최신 버전이 아닌 구 버전은 이딜리버리 홈페이지 https://edelivery.oracle.com/ 에서 다운

 

로그인 하여 다운로드 할 프로그램 검색(ex. oracle database 11로 검색 시 자동완성 나옴)

 

다운로드 받을 프로그램 선택(ex. 11g 11.2.0.2.0)

 

다운로드를 위해 우측 상단 View Items을 선택하여 Continue 클릭

 

버전 선택, 필자는 Orange tool을 사용하기 위해 Microsoft 32bit를 선택(운영체제는 x64이나 Orange는 x64 지원 불가)

선택 후 우측 하단 Continue 클릭

 

라이선스 동의 및 Continue

라이

버전에 맞는 클라이언트 선택 및 Download

 

Oracle_SSN_DLM_~.exe 파일이 다운로드 됨, 경로 선택 후 Next 

 

728x90

OPatch 기능

OPatch apply : interim patch 적용

OPatch rollback : interim patch 제거

OPatch prereq CheckConflictAgainstOHWithDetail -ph ./ :  현재 설치된 interim 패치와 설치 중인 패치가 충돌하는지 확인

OPatch ~ -report : 실제 패치 적용하지 않고 패치 적용에 대한 수행 결과만 확인

 

 

 

 

 

 

 

 

 

ㅁㄴㅇ

728x90

정의

Oracle Server 9.2.0.2.0 부터 interim patch(one-off patch = single patch)를 적용할 때 사용하는 툴

one-off patch는 특정 버그에 대한 조치 방법이며, 이것들의 모음을 patch set이라 함

 

 

필요 사항

MOS 사이트(https://support.oracle.com/)에 접속할 수 있는 oracle 계정 필요

Perl version 5.005_03이상 필요, 가급적 5.6이상($ORACLE_HOME/perl/bin/perl -v 하여 확인)

 

 

OPatch 다운로드

https://updates.oracle.com/ARULink/PatchDetails/process_form?patch_num=6880880

위 경로 직접 접속 혹은 패치 파일 readme.html 파일 내부에 OPatch Utility 내용 선택

 

접속 후 패치 버전 및 OS 버전 선택 후 다운로드

728x90

프로그램 준비 

최신 버전이 아닌 구 버전은 https://edelivery.oracle.com/ 에서 다운

 

로그인 하여 다운로드 할 프로그램 검색

 

다운로드를 위해 우측 상단 View Items을 선택하여 Continue 클릭

 

버전 선택, 필자는 Orange tool을 사용하기 위해 Microsoft 32bit를 선택(운영체제는 x64이나 Orange는 x64 지원 불가)

선택 후 우측 하단 Continue 클릭

 

라이선스 동의 및 Continue

라이

버전에 맞는 클라이언트 선택 및 Download

 

Oracle_SSN_DLM_~.exe 파일이 다운로드 됨, 경로 선택 후 Next 

 

 

Oracle Client 설치

Oracle Database 접속하여 sql문을 실행할 수 있는 최소한의 클라이언트 프로그램

다운받은 파일 압축 해제 후 setup.exe 수행(우클릭 -> 관리자 권한으로 실행)

 

윈도우 7 이상이면 INS-13001 에러 발생, 무시하고 강제 설치(예)

 

필요에 따라 구성, 여기서는 Instant Client 설치

 

소프트웨어 위치 지정

 

요약 정보 확인, 완료 클릭

 

설치 완료

 

실행 -> cmd창을 열어 sqlplus /nolog 입력하여 SQL> 프롬프트가 나오면 정상 설치 완료

728x90

lock 걸린 object 확인

select sid,
       serial#,
       username,
       module,
       blocking_session,
       sql_id,
       sql_exec_start,
       status,
       prev_sql_id,
       event,
       b.object_id
       ,(select object_name from dba_objects o where o.object_id=b.object_id) object_name,
       (select sql_text from v$sql q where q.sql_id=s.sql_id) sqltext
  from v$session s, v$locked_object b
 where s.sid=b.session_id;
 
select * from dba_dml_locks;
 
select * from dba_lock where lock_type in (‘Transaction’);

 

lock mode

select sid, type, lmode from v$lock where type=’TM’;
select object_id, session_id, locked_mode from v$locked_object;

 

현재 상황 해결 ( session kill )

<일반적인 상황>
1.     현재 blocking session waiting session을 확인한다.
2.     고객의 요구에 따라 현재 blocking session kill, commit, rollback을 결정
 
<현재 문제상황 해결>
1.    현재 blocking session을 확인하고 kill
2-1. 현재 blocking session kill > 해당 lock걸린 object의 가장 먼저 실행된 wating session blocking session이 된다
2-2. 현재 blocking session과 관련된 모든 wait session kill

 

blocking session 찾기

1
 
select sid,
       serial#,
       status,
       (select sql_fulltext from v$sql where sql_id=a.prev_sql_id) sqltext,
       prev_exec_start
  from v$session a
 where sid in (select blocking_session from v$session );
 
select * from dba_writers;

 

session이 수행한 sql

--blocking session의 수행 sql
select sid,
       serial#,
       status,
       (select sql_fulltext from v$sql where sql_id=a.prev_sql_id) sqltext,
       prev_exec_start
  from v$session a
 where sid in (select blocking_session from v$session );
 
--waiting session의 수행 sql
select sid,
       serial#,
       username,
       module,
       blocking_session,
       sql_id,
       sql_exec_start,
       status,
       prev_sql_id,
       event,
       b.object_id
       ,(select object_name from dba_objects o where o.object_id=b.object_id) object_name,
       (select sql_text from v$sql q where q.sql_id=s.sql_id) sqltext
  from v$session s, v$locked_object b
 where blocking_session is not null
   and s.sid=b.session_id;

 

 

 

+ Recent posts