'행복주의자 (매순간 행복을 위해 산다)'에 해당되는 글 608건

  1. 2011.05.09 cursor_sharing
  2. 2011.04.21 십선계 [十善戒]
  3. 2011.04.17 ELS란?
  4. 2011.04.15 내 tracefile 찾는 방법
  5. 2011.03.25 vmstat
  6. 2011.03.23 temporary tablespace drop 중의 wait event
  7. 2011.03.17 NAS, SAN, DAS
  8. 2011.03.14 vi 에디터 문자 모두 바꾸기
  9. 2011.03.10 RAC 설치시 자동으로 올라오는 이유
  10. 2011.03.02 AUTO_SPACE_ADIVISOR_JOB
Oracle/Tuning2011. 5. 9. 08:48






과도한 하드 파싱으로 인한 오라클의 성능 문제를 해결하는 방안으로 cursor_sharing 파라미터의 수정을 고려해 볼 수 있다.

cursor_sharing 파라미터는 비슷한 literal SQL을 바인드 변수로 치환해서 하드 파싱을 줄이도록 하는 기능이다.

이 파라미터는 기본 값은 EXACT로 SQL이 똑같을 때(띄어쓰기, 대소문자, 만 같은 SQL이라고 판단하는 것이다.

그 외 설정값은 SIMILAR, FORCE가 있다.

그러나 이 파라미터를 변경하기 전에는 철저한 검증이 필요하다.

아래의 포스터는 그에 관련된 내용이다.

참조 : similar cursor sharing의 문제점
         Similar cursor sharing and adative cursor sharing

'Oracle > Tuning' 카테고리의 다른 글

내 tracefile 찾는 방법  (0) 2011.04.15
LOCK 관련 실습  (1) 2010.01.25
LRU 알고리즘  (0) 2010.01.19
Tuning the Buffer Cache  (0) 2010.01.18
Tuning the Shared Pool  (1) 2010.01.16
Posted by 자수성가한 부자
일상생활/잡동사니2011. 4. 21. 08:38







십선계 [十善戒]
 : 불교에서 세속인이 지켜야 할 열가지 계율

① 불살생(不殺生):살아 있는 것을 죽여서는 안 된다.

② 불투도(不偸盜):도둑질해서는 안 된다.

③ 불사음(不邪淫):남녀의 도를 문란케 해서는 안 된다.

④ 불망어(不妄語):거짓말을 해서는 안 된다.

⑤ 불기어(不綺語):현란스러운 말을 해서는 안 된다.

⑥ 불악구(不惡口):험담을 해서는 안 된다.

⑦ 불양설(不兩舌):이간질을 해서는 안 된다.

⑧ 불탐욕(不貪欲):탐욕스러운 짓을 해서는 안 된다.

⑨ 부진에(不瞋?):화를 내서는 안 된다.

⑩ 불사견(不邪見):그릇된 견해를 가져서는 안 된다.


이 중에 지금 내가 가장 필요한 것은
부악구와 부진에가 아닐까?


출처 : http://100.naver.com/100.nhn?docid=103404

Posted by 자수성가한 부자
경제/재테크2011. 4. 17. 10:07





부자들은 자산을 황금비율로 분할해서 투자를 한다고 한다.

주식과 랩, 주식형 펀드           : 50%
ELS, 자산분배형 펀드, 공모주 : 30%
CMA계좌                             : 20%

그 중 ELS(Equity Linked Securities)는 무엇일까?

특정 주권의 가격이나 주가지수의 수치에 연계한 증권.

개별 주식의 가격이나 주가지수에 연계되어 투자수익이 결정되는 유가증권이다. 자산을 우량채권에 투자하여 원금을 보존하고 일부를 주가지수 옵션 등 금융파생 상품에 투자해 고수익을 노리는 금융상품으로, 2003년 증권거래법 시행령에 따라 상품화되었다. 일반적으로 ELN(Equity-Linked Note)으로 불리고, 넓은 뜻으로는 신주인수권 증서인 워런트(warrant)도 포함된다.
장외파생금융상품업 겸영 인가를 받은 증권회사만 발행할 수 있는데, 만기는 3개월∼2년으로 1년 이하의 단기가 주종을 이룬다. 유가증권에 대하여 적용되는 일반적인 규제가 동일하게 적용되나 주식이나 채권에 비해 손익구조가 복잡하다. 또한 원금과 수익을 지급받지 못할 위험성도 있고 투자자가 만기 전에 현금화하기가 어렵다는 특징도 지닌다.
주가지수가 상승할 때 일정한 수익을 얻을 수 있도록 하는 것부터 주가지수 등락구간별 수익률에 차이가 나게 하는 것 등 다양한 유형이 있는데, 일반적으로 원금보장형·원금부분보장형·원금조건부보장형의 3가지로 나뉜다. 원금보장형은 보수적이거나 안정적인 투자자가 선호하며, 원금부분보장형은 적극적인 투자자가, 원금조건부보장형은 공격적인 투자자가 선호한다.
투자자에게는 투자선택의 폭을 넓히고, 증권회사에는 수익구조를 변화시켜 증권업 활성화에 기여하는 것으로 평가된다. 또한 주식이나 주가지수 이외에도 원자재·금 등과 같은 실물에 연계되거나, 물가지수나 채권지수 등에 연계되는 등 그 범위가 다양해질 것으로 전망된다.

출처 :  http://100.naver.com/100.nhn?docid=793860

'경제 > 재테크' 카테고리의 다른 글

부자들의 9가지 습관  (0) 2014.08.22
버냉키 쇼크  (0) 2013.07.01
연말정산때 환급받으려면?  (0) 2009.09.07
재산세 기준일은?  (0) 2009.07.31
52주신고가  (0) 2009.07.31
Posted by 자수성가한 부자
Oracle/Tuning2011. 4. 15. 09:58







sql을 분석하기 위해 trace file을 생성하여 그 결과를 보고 분석할 수가 있다.
이 tracefile은 user_dump_dest에 지정된 디렉토리에 생성되게 되어있다.

그런데 만약 여러 유저가 trace file을 생성한다면 내것이 무엇인지 찾지 못할 것이다.

내것이 무엇인지 확인하려면 어떻게 해야할까?


일단 현재 user_dump_dest에 있는 파일을 보자.

# ls -lrt
total 66
-rw-r--r--   1 dba02    dba          140 Apr 13 09:42 afiedt.buf
-rw-r--r--   1 dba02    dba          238 Apr 15 09:30 t.sql
-rw-r-----   1 oracle   dba        21427 Apr 15 09:50 dba02_ora_21033.trc
-rw-r-----   1 oracle   dba         2975 Apr 15 09:51 dba02_ora_21646.trc
-rw-r--r--   1 dba02    dba         6623 Apr 15 09:51 tuning.txt

dba02_ora_21646.trc

맨뒤에 있는 숫자가 process의 id이다.

그러면 process id는 어떻게 찾을까?

SQL> select p.spid
  2    from v$process p, v$session s
  3   where p.addr = s.paddr
  4     and s.audsid = userenv('SESSIONID');

SPID
------------
21646

참 쉽죠?

'Oracle > Tuning' 카테고리의 다른 글

cursor_sharing  (0) 2011.05.09
LOCK 관련 실습  (1) 2010.01.25
LRU 알고리즘  (0) 2010.01.19
Tuning the Buffer Cache  (0) 2010.01.18
Tuning the Shared Pool  (1) 2010.01.16
Posted by 자수성가한 부자
OS_NETWORK_Storage2011. 3. 25. 10:43






[oracle@test ~]$ vmstat 5    <= 5초 간격으로 vmstat을 실행하라.
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  0  24644  39400  60504 766224    0    1    94   164  416   265  4  7 87  2
 1  1  24644  39400  60504 766224    0    0     0    42 1021   222  2  3 95  0



각 부분 설명.

procs
  r : CPU 시간을 기다리는 프로세스의 수를 보여줌.
  b : 중단이 불가한 대기를 하고 있는 프로세스의 수를 보여줌.
      일반적으로 I/O를 대기하고 있음을 의미한다.(디스크, 네트워크, 사용자 입력 등)

memory
  swpd : 블록 몇 개가 디스크로 스왑(페이지)됐는지 보여줌. 
  free : 미사용 중인 블록의 갯수
  buff : 버퍼 용도로 사용중인 블록의 갯수
  cache : 운영체제의 캐시로 사용되는 있는 블록의 갯수

swap : 운영체제가 초당 블록 몇 개를 디스크 안팎으로 스와핑하는지 보여줌.
  si : swap in

  so : swap out
io
  bi : 초당 읽는 블록의 갯수
  bo : 초당 쓰는 블록의 갯수

system
  in : 초당 인터럽트 빈도
  cs : 초당 컨텍스트 스위치 수

cpu
  us : 사용자 코드의 cpu 시간
  sy : 시스템 코드의 cpu 시간
  id : idle 상태의 cpu 시간
  wa : i/o 대기의 cpu 시간

※ vmstat을 실행하고 나서 멈출때에는 Ctrl + C를 한다.

     si, so는 0이 바람직하며, 초당 10블록 이상이라면 문제가 있는 것임.

     w가 지속적으로 발생한다면 메모리가 부족하다는 의미로 메모리를 늘려야 한다.

 

참고 : http://finetia.egloos.com/1514766

'OS_NETWORK_Storage' 카테고리의 다른 글

오래된 파일 삭제 명령  (0) 2013.01.16
ipcs 에 관하여  (0) 2013.01.15
NAS, SAN, DAS  (0) 2011.03.17
vi 에디터 문자 모두 바꾸기  (0) 2011.03.14
XA 와 nonXA  (1) 2011.02.06
Posted by 자수성가한 부자
Oracle/Admin2011. 3. 23. 16:22




오늘 정기점검 중 temporary tablespace의 크기가 너무 커져서

1. temporary tablespace 를 새로 생성하고
2. 데이터베이스의 default temporary tablespace를 변경하고
3. 기존 temporary tablespace를 drop 했다.

그런데 3번 temporary tablespace drop 하는 과정에서 너무 오랜 시간동안 지체되서 wait event를 살펴보니

enq: TS - contention

이벤트를 대기하고 있었다.

나랑 비슷한 경험을 한 사람이 있었나보다.






When i drop the temporary tablespace, the SQL command hangs.

After further check, it waits for "enq: TS - contention".

SQL> select sid,event,seconds_in_wait from v$session where username='DONGHUA' and status='ACTIVE';

SID EVENT SECONDS_IN_WAIT
---------- ---------------------------------------- ---------------
44 enq: TS - contention 21

And blocked by "SMON".

SQL> select * from v$lock where request>0;

ADDR KADDR SID TY ID1 ID2 LMODE REQUEST
-------- -------- ---------- -- ---------- ---------- ---------- ----------
CTIME BLOCK
---------- ----------
3E68104C 3E681078 44 TS 7 1 0 6
29 0


SQL> select sid from v$lock where id1=7 and id2=1;

SID
----------
13
44

SQL> select program,status from v$session where sid=13;

PROGRAM STATUS
------------------------------------------------ --------
oracle@vmxdb01.lab.dbaglobe.com (SMON) ACTIVE

SQL> select sid,event,seconds_in_wait from v$session where sid=13;

SID EVENT SECONDS_IN_WAIT
---------- ---------------------------------------- ---------------
13 smon timer 87


Check which session is still using the "TEMP2"

SQL> SELECT se.username username,
2 se.SID sid, se.serial# serial#,
3 se.status status, se.sql_hash_value,
4 se.prev_hash_value,se.machine machine,
5 su.TABLESPACE tablespace,su.segtype,
6 su.CONTENTS CONTENTS
7 FROM v$session se,
8 v$sort_usage su
9 WHERE se.saddr=su.session_addr;

USERNAME SID SERIAL# STATUS SQL_HASH_VALUE
------------------------------ ---------- ---------- -------- --------------
PREV_HASH_VALUE MACHINE
--------------- ----------------------------------------------------------------
TABLESPACE SEGTYPE CONTENTS
------------------------------- --------- ---------
DONGHUA 41 259 INACTIVE 0
2640221370 WORKGROUP\ORACLE-PC
TEMP2 LOB_DATA TEMPORARY


After kill it, the problem resloved.

SQL> alter system kill session '41,259';

System altered.





 
출처 : http://www.dbaglobe.com/2010/08/drop-temporary-tablespace-hang-with-enq.html
Posted by 자수성가한 부자
OS_NETWORK_Storage2011. 3. 17. 21:24





오라클 데이터베이스
그 중에서도 RAC를 설치할 때는 시스템 엔지니어들과 회의를 해야될 때가 있다.
그 때 아래 그림에 나오는 단어들을 모른다면 당황할 수 밖에 없고, 작아질 수 밖에 없다.
보고 열심히 익혀두자.


0


'OS_NETWORK_Storage' 카테고리의 다른 글

ipcs 에 관하여  (0) 2013.01.15
vmstat  (0) 2011.03.25
vi 에디터 문자 모두 바꾸기  (0) 2011.03.14
XA 와 nonXA  (1) 2011.02.06
raw device란?  (0) 2010.03.20
Posted by 자수성가한 부자
OS_NETWORK_Storage2011. 3. 14. 09:36






%s/<바꾸기전 문자열>/<바꾼후 문자열>/g

'OS_NETWORK_Storage' 카테고리의 다른 글

vmstat  (0) 2011.03.25
NAS, SAN, DAS  (0) 2011.03.17
XA 와 nonXA  (1) 2011.02.06
raw device란?  (0) 2010.03.20
alias 추가  (0) 2009.12.08
Posted by 자수성가한 부자
Oracle/RAC2011. 3. 10. 13:34






RAC 설치시 자동으로 올라오는 이유

/etc/inittab에 설정된 내용

h1:3:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null
h2:3:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null
h3:3:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null

/etc/inittab은 부팅될 때 읽혀지는 파일.

id:runlevels:action:process

id: 해당 라인을 다른 부분과 식별하는 id

h1
h2
h3

runlevels: 해당 라인이 어떤 run level에서 유효한지를 지정하는 부분.
           run level은 한자리 숫자로 표현되며, 특별한 구분기호 없이 연속적으로 여러 실행 레벨을 써넣을 수 있음.
3
3          
3          
action: 해당 라인이 어떻게 동작하는지를 지정하는 부분
        respawn이라고 쓰게되면 그 다음 영역에 있는 명령이 종료될 때마다 그것을 재실행하게 된다.
        once라고 쓰게 되면 실행을 딱 한번만 하게 된다.
respawn
respawn       
respawn
     
process: 실행시킬 명령이 들어간다.

/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null 
/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null
/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null 

각 대몬들의 역할
/etc/init.d/init.evmd :
  - 특정한 사건 발생 시 이벤트 생성
  - 자식 프로세스로 evmlogger를 spawn 시킴
  - Evmlogger는 필요시 자식 프로세스를 spawn 시킴
  - callout directory를 스캔하고 callout을 호출
  - 오라클 계정으로 실행.
  - 장애로 인한 종료시 자동으로 재 구동됨

/etc/init.d/init.crsd :
  - HA 작업을 위한 엔진
  - '애플리케이션 자원'관리
  - '애플리케이션 자원'을 구동, 정지, fail over 처리
  - 애플리케이션 자원 구동/정지/점검 하기 위한 별도의 'actions'을 spawn
  - OCR(Oracle Configuration Repository)의 구성 프로파일 관리
  - OCR의 현재 알려진 상태를 저장
  - root 권한으로 실행
  - 장애 발생시 자동으로 재 구동됨 모든 클러스터를 시작/종료하는 대몬.

/etc/init.d/init.cssd :
  - OCSSD는 RAC의 일부로, ASM과 함께 단일 인스턴스를 구성함
  - 노드 멤버쉽에 대한 액세스를 제공
  - 그룹 서비스 제공
  - 기본적인 클러스터 lock 기능 제공
  - 하드웨어 공급 업체에서 제공하는 클러스터 소프트웨어가 설치되어 있을 경우, 통합을 실시
  - 하드웨어 공급 업체에서 제공하는 클러스터 소프트웨어 없이도 실행 가능
  - 오라클 계정으로 실행
  - 장애로 인한 종료시 시스템 리부팅됨
  - 리부팅은 split brain 현상 발생시, 데이터 corruption 방지를 목적으로 함.

run : 프로세스 fail시 자동으로 재기동됨.
fatal : 프로세스 fail시 os reboot됨.


/dev/null 2>&1 </dev/null

표준 에러를 표준 출력으로 redirection


참고내용 : http://kr.forums.oracle.com/forums/thread.jspa?threadID=477197&tstart=45

 


 

'Oracle > RAC' 카테고리의 다른 글

CRS 소프트웨어 버전 확인  (0) 2011.09.08
RAC의 권장 구성  (0) 2011.05.24
INSTANCE_GROUPS, PARALLEL_INSTANCE_GROUP  (0) 2011.03.02
TAF (Transparent Application Failover)  (1) 2010.07.07
CTF, TAF 설정  (0) 2010.06.16
Posted by 자수성가한 부자
Oracle/Admin2011. 3. 2. 22:51





Q :

10g가 되면 dba_scheduler_jobs라는 뷰가 생겨 스케쥴링되는 job들을 확인할 수 있습니다.

그런데 제가 등록하지 않은 AUTO_SPACE_ADVISOR_JOB라는 job이 디폴트로 등록되어 있는데, 이 job은 무엇일까요?


A :

Auto Space Advisor는 Advisor의 한 종류로 10g에서 새로 추가된 Advisor이다. 이 Advisor는 Tablespace/Segment의 공간 사용 정도를 분석하여 공간을 절약하기 위해 적절한 충고/가이드를 하는 역할을 제공한다.

=> AUTO_SPACE_ADVISOR_JOB은 Auto Space Advisor가 관련 데이터를 수집하기 위한 job이라고 보면 된다.

다음은 10g에서 확인한 내용이다.

SQL> select * from v$version where rownum = 1;

BANNER
------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Prod

SQL> select job_name, enabled from dba_scheduler_jobs;

JOB_NAME           ENABL
------------------------------------------------------------ -----
AUTO_SPACE_ADVISOR_JOB          TRUE
GATHER_STATS_JOB          TRUE
FGR$AUTOPURGE_JOB          FALSE
PURGE_LOG           TRUE
MGMT_STATS_CONFIG_JOB          TRUE
MGMT_CONFIG_JOB           TRUE
RLM$SCHDNEGACTION          TRUE
RLM$EVTCLEANUP           TRUE

8 rows selected.




기타 :
AUTO_SPACE_ADVISOR_JOB 잡과 관련하여 10.2.0.3버전에서 잘못된 block corruption 리포팅과 거대한 trace 파일이 생성되므로
이 잡을 enable시키는 것을 권고함.

•deactivating the AUTO_SPACE_ADVISOR_JOB

SQL> execute dbms_scheduler.disable('AUTO_SPACE_ADVISOR_JOB');

•limiting the size of trace files via max_dump_file_size

http://ora-mystery.com/2008/10/15/auto_space_advisor_job-is-generating-huge-tracefiles-and-reports-wrong-block-corruptions/


참고 : http://ukja.tistory.com/89

Posted by 자수성가한 부자