Oracle 11.2.0.3 이상 제공하는 실시간 세션,SQL 모니터링 프로그램
Oracle 11.2.0.3 이상 제공하는 실시간 세션,SQL 모니터링 프로그램을 제공 하고 있습니다. Oracle TOP 이라는 프로그램 명 입니다. (일명:오라탑)
더 읽기Oracle 11.2.0.3 이상 제공하는 실시간 세션,SQL 모니터링 프로그램을 제공 하고 있습니다. Oracle TOP 이라는 프로그램 명 입니다. (일명:오라탑)
더 읽기D:\ARCH_backup 이라는 경로 밑에 매일 날짜 폴더별로 백업파일이 쌓이고 있고, 담당자는 3일분의 백업본만을 원한다. 순서 – strRootPath
더 읽기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
create or replace view HAISINS_LOCK as select sid session_id, decode(type, 'TX', 'Transaction', 'TM', 'DML', 'DX', 'Distributed Xaction', type) lock_type, decode(lmode, 0, 'None', /* Mon Lock equivalent */ 1, 'Null', /* N */ 2, 'Row-S (SS)', /* L */ 3, 'Row-X (SX)', /* R */ 4, 'Share', /* S */ 5, 'S/Row-X (SSX)', /* C */ 6, 'Exclusive', /* X */ to_char(lmode)) mode_held, decode(request, 0, 'None', /* Mon Lock equivalent */ 1, 'Null', /* N */ 2, 'Row-S (SS)', /* L */ 3, 'Row-X (SX)', /* R */ 4, 'Share', /* S */ 5, 'S/Row-X (SSX)', /* C */ 6, 'Exclusive', /* X */ to_char(request)) mode_requested, to_char(id1) lock_id1, to_char(id2) lock_id2, decode(block, 0, 'Not Blocking', /* Not blocking any other processes */ 1, 'Blocking', /* This lock blocks other processes */ 2, 'Global', /* This lock is global, so we can't tell */ to_char(block)) blocking_others from v$lock where type = 'TX' or type = 'TM'; drop table HAISINS_holders; create table HAISINS_HOLDERS /* temporary table */ ( waiting_session number, holding_session number, lock_type varchar2(26), mode_held varchar2(14), mode_requested varchar2(14), lock_table varchar2(22), lock_owner varchar2(30) ); insert into HAISINS_holders select w.session_id, h.session_id, w.lock_type, nvl(h.mode_held, w.mode_held), w.mode_requested, o.object_name, o.owner from (select session_id, lock_type, mode_held, lock_id1, lock_id2 from HAISINS_lock where blocking_others = 'Blocking' and mode_held != 'None' and mode_held != 'Null' ) h, (select session_id, lock_type, mode_held, mode_requested, lock_id1, lock_id2 from HAISINS_lock where lock_type = 'Transaction') w, HAISINS_lock a, dba_objects o where w.lock_type = h.lock_type(+) and w.lock_id1 = h.lock_id1(+) and w.lock_id2 = h.lock_id2(+) and w.session_id = a.session_id and a.lock_type = 'DML' and a.lock_id1 = o.object_id; commit; insert into HAISINS_holders select holding_session, null, 'None', null, null, null, null from HAISINS_holders minus select waiting_session, null, 'None', null, null, null, null from HAISINS_holders; commit; col lock_type format a12 col lock_owner format a8 col lock_table format a10 select lpad(' ',3*(level-1)) || waiting_session waiting_session, lock_type, mode_requested, mode_held, lock_table, lock_owner from HAISINS_holders connect by prior waiting_session = holding_session start with holding_session is null; select * from HAISINS_holders; |
Oracle Database 10g 부터 테이블스페이스의 디스크 공간 사용을 사전적으로 관리할 수 있도록 하는 기능을 제공한다. 데이터베이스 alert를 통하여 DBA로 하여금
더 읽기Lob 데이타 타입은 대용량 크기를 지원해야 하기 때문에 어떤 데이타 타입 보다도 storage 특성을 잘 이해해야 할 필요성이 있다. 각종 parameter에 대한 적절한 설정은 좋은 performance를 내는 데 중요한 요인이 된다. 다음은 LOB 컬럼을 갖는 table을 생성하는 SQL문이다. 다양한 option을 사용하였는데, 이들 parameter에 대한 자세한 이해를 통해 효과적인 lob segment를 생성할 수 있다. 참고로 lob에 대한 자세한 정보를 보려면 dba/all/user_lobs를 조회하면 알 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
CREATE TABLE demolob ( A NUMBER, B CLOB ) STORAGE (INITIAL 256 NEXT 256) TABLESPACE user_data LOB(b) STORE AS demolob_seg ( TABLESPACE lob_tb STORAGE (INITIAL 6144 NEXT 6144) CHUNK 4 PCTVERSION 20 NOCACHE LOGGING ENABLE STORAGE IN ROW INDEX demolob_idx ( TABLESPACE lob_tb STORAGE ( INITIAL 256 NEXT 256 ) ) ); |
1) TABLESPACE 와 storage parameter
더 읽기DBA가 추가하려는 TAX_CODE 컬럼은 NOT NULL 제약 조건이 적용되어 있어야 합니다. 이미 데이터가 입력된 테이블에 NOT NULL 컬럼을 추가하기
더 읽기11g에서부터 oracle.jdbc.OracleConnection 클래스에서 startup() 및 shutdown()이라는 새로운 JDBC 메소드를 제공한다. 이 두 메소드는 SQL*Plus에서처럼 데이터베이스를 애플리케이션에서 직접 start up하고 shut
더 읽기스토리지 BCV 환경 Split 을 이용한 Oracle DB Hot backup 스크립트 입니다. begin_backup -> BCV, split -> end_backup 순으로
더 읽기오라클 DB에 예를들어 ‘가나다’와 같이 입력된 자료를 1 부터 5까지 substrb 하고자 할 경우 ‘가나’ 만 return 하는 함수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
create or replace function sf_hansubb( v_str in varchar2, v_start in integer, v_len in integer) return varchar2 /*==================================================================* * +---------------------------------------------------------+ * * | 프로그램 ID : sf_hantrim.sql | * * +---------------------------------------------------------+ * * | 프로그램 명 : 한글 field right trim | * * +---------------------------------------------------------+ * * | 프로그램 설명 | * * +---------------------------------------------------------+ * * | 한글 자료중 KSC5601에 없는 한글자료를 rihgt trim한다 | * * | 참고자료 : KSC5601 code table | * * +---------------------------------------------------------+ * *==================================================================*/ is l_len number(4); l_ascii number; l_down number; begin if v_start = 0 then return null; end if; if v_len = 0 then return null; end if; if v_start > lengthb(v_str) then return null; end if; if v_len > (lengthb(v_str) - v_start + 1) then l_len := lengthb(v_str) - v_start + 1; else l_len := v_len; end if; if ascii(substrb(v_str,v_start + l_len - 1, 1)) = 32 then if l_len = 1 then return substrb(v_str,v_start,l_len); end if; l_ascii := ascii(substrb(v_str,v_start + l_len - 2, 2)); if l_ascii >= 45217 and l_ascii <= 51454 then l_down := mod(l_ascii,256); if l_down >= 161 and l_down <= 254 then return substrb(v_str,v_start,l_len); else return substrb(v_str,v_start,l_len - 1); end if; else return substrb(v_str,v_start,l_len - 1); end if; else return substrb(v_str,v_start,l_len); end if; end sf_hansubb ; |
더 읽기
오라클 DB에 예를들어 ‘가나ㄷ’과 같이 한글입력도중 잘린자료가 들어갔을 경우 ‘가나’와 같이 잘라주는 함수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
create or replace function sf_hantrim( v_str in varchar2) return varchar2 is l_str varchar2(2000); l_last varchar2(2); l_ascii number; l_down number; /*==================================================================* * +---------------------------------------------------------+ * * | 프로그램 ID : sf_hantrim.sql | * * +---------------------------------------------------------+ * * | 프로그램 명 : 한글 field right trim | * * +---------------------------------------------------------+ * * | 프로그램 설명 | * * +---------------------------------------------------------+ * * | 한글 자료중 KSC5601에 없는 한글자료를 rihgt trim한다 | * * | 참고자료 : KSC5601 code table | * * +---------------------------------------------------------+ * *==================================================================*/ begin l_str := nvl(rtrim(v_str),' '); if length(l_str) = 0 then l_str := ' '; end if; l_last := substr(l_str,length(l_str),1); l_ascii := ascii(l_last); if l_ascii >= 45217 and l_ascii <= 51454 then l_down := mod(l_ascii,256); if l_down >= 161 and l_down <= 254 then return l_str; else return nvl(substr(l_str,1,length(l_str) - 1),' '); end if; else return l_str; end if; end sf_hantrim ; |