본문 바로가기

Oracle

커서 공유 오라클에서 커서를 공유한다는 뜻은 라이브러리 캐시의 공유커서를 말한다. 라이브러리에 공유되어 있는 커서의 수행 통계를 v$sql 을 통해 조회해 볼수 있다. v$sql 을 조회하면서 실제 공유된 커서가 재사용 되는지 확인해보자. 1. scott 유저로 접속한 후 shared_pool 영역을 비운다. 그리고 test를 쿼리에 주석으로 "cursor_test" 를 넣은후 쿼리를 실행하자. 2. v$sql을 통해 shared_pool 영역에 공유되었는지 확인하자. 3. 처음 실행시킨 쿼리를 3번 더 반복 실행하여 보자. 4. v$sql을 조회하여 공유커서가 재사용 되었는지 확인해보자. 위에서 보듯이 커서가 반복되어 재사용 되어진것을 확인할수 있다. 조회한 항목들에 대해 의미를 설명하자면... PARSE_CAL.. 더보기
ORA-02097,ORA-00439 Bug 4343398. 메타링크 참조 Standard Edition에서 RMAN을 사용하지 못하는데서 발생하는 에러이다. 무시하여도 무방하고 10.2.0.3 버젼에서 fixed 되었다. 더보기
VIEW 생성,VIEW 조회 권한 부여,SYNONYM 생성 1. 뷰를 생성하자. SQL> show user USER is "SYS" SQL> create or replace view emp_dept_10 2 as select * from scott.emp where deptno=10; View created. 2. 특정유저만 생성한 뷰를 조회할수 있도록 유저생성,권한 부여를 한다. SQL> create user test_viewer identified by test; User created. SQL> grant connect to test_viewer; Grant succeeded. SQL> grant select on emp_dept_10 to test_viewer; Grant succeeded. SQL> grant create synonym to test_v.. 더보기
Ioctl ASYNC_CONFIG error, errno = 1 $ORACLE_HOME/rdbms/log/*.trc 내용중 위의 내용으로 에러가 발생한경우 1. /dev/async의 소유자 및 chmod 확인 2. chmod 660 /dev/async 3. vi /etc/privgroup -->없으면 생성 dba MLOCK RTSCHED RTPRIO -->내용 추가 root 계정으로 다음 실행 1. chown bin:bin /dev/async 2. chmod 660 /dev/async 3. /usr/bin/setprivgrp dba MLOCK 더보기
ORA-3136 처음 ORA-3136을 접했을때 생각해봤던 건데 도움이 될까 해서 정리해서 올립니다. 10g가 되면서 inbound_connect_timeout 이 60초로 바뀌게 되었고 그로 인해서 가끔씩 alert에 제목과 같은 메지시가 나오곤 합니다. 우선 ORA-3136이 발생되는 경우를 살펴보면 CASE 1 WIPPY@/oracle> sqlplus /@rac1 SQL*Plus: Release 10.2.0.4.0 - Production on Wed Jan 7 13:33:27 2009 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. ERROR: ORA-01017: invalid username/password; logon denied Enter user-name: .. 더보기
sqlplus 접속시 instance_name,status 표시 1. 기존에 sqlplus로 접속을 하게되면 아래와 같이 화면이 뜬다. 2. sqlplus 접속시 해당 DB의 SID와 상태를 알고 싶다면 아래와 같이 해주면 된다. [oracle@localhost ~]$ vi $ORACLE_HOME/sqlplus/admin/glogin.sql 맨 밑부분에 select instance_name,status from v$instance; 를 추가해주고 저장하면 된다. 3. 이제 sqlplus로 접속을 하면 ... 이렇게 INSTANCE_NAME, STATUS 가 표시된다. 더보기
v$lock 뷰의 LMODE에 대해.. v$lock 에 있는 lmode 컬럼에는 아래와 같이 총 6가지의 값을 나타낸다. 1,'No lock', -- 말그대로 lock이 없다 2,'Row Share' -- Transaction에 의해서 걸리는 row share table lock은 동시에 동일한 table에 대한 query, insert, delete, update, lock row를 허용한다. 그러므로, 다른 transaction은 동일한 table에 대해 동시에 row share, row exclusive, share, 그리고 share row exclusive table lock을 걸 수가 있다. 3,'Row Exclusive' -- Row Exclusive는 Row share보다 제한적이다. Transaction에 의해서 거리는 row.. 더보기
crontab crontab을 이용해 full export를 해보자. 우선 쉘 스크립트를 만들어 test를 해보자. 원하는 backup폴더로 이동후 [oracle@localhost backup]$ pwd 원하는 이름으로 쉘스크립트를 생성하자 [oracle@localhost backup]$ vi exp_full.sh ______________________________________vi exp_full.sh______________________________________________ find . -name "exp_full_*.dmp" -mtime +2 -exec rm {} \; find . -name "exp_full_*.log" -mtime +2 -exec rm {} \; date=`date +%m-%d-%Y.. 더보기
union 과 union all union 과 union all 의 차이점은 멀까... 예전에 거래소에서 일하던 시절에 그차이점은 단순히 결과물이 중복제거 되어서 나오냐 안나오냐의 차이인줄 알았다. 맞는 말이다. 단순히 결과만 놓고보면 차이점은 그거밖에 없는것이다. 그러나 거래소에서 요구하는 결과는 집합적인 부분으로 볼때 두개의 집합을 합하는데 중복된것을 제거하여 데이터를 추출하는 경우는 거의 없다. 또한 옵티마이저가 처리하는 속도에 있어서 union은 전체범위처리를 하고 union all은 부분범위처리를 하기때문에 성능에도 union all이 유리하다는걸 알수 있다. 예를들어보자. 데이터 셋이 아래와 같이 있다고 가정하고 각각 union과 union all 로 해서 결과를 보고 실행계획도 보았다. union 으로 했을경우에는 중복된 .. 더보기
OS 부팅시 oracle 자동 시작 설정 vi /etc/oratab 을 열어... orcl:/oracle/product/102/db_1:N 더보기