Oracle/기타2015. 6. 5. 15:50

 

 

 

Q :

 NLS_CHARACTERSET과 NLS_NCHAR_CHARACTER의 차이점은 무엇인가요?

 

A :

 NLS_CHARACTERSET은 char, varchar와 같은 데이터 타입에서 사용하는 문자집합이고,

 NLS_NCHAR_CHARACTERSET은 nchar, nvarchar와 같은 데이터 타입에서 사용하는 문자집합입니다.

 일반적으로 사용하는 문자집합은 NLS_CHARACTERSET에 설정을 하는데,

 한글과 영어를 사용할 경우에는 KO16KSC5601, KO16MSWIN949가 있고,

 한글과 영어를 제외한 문자집합을 사용할 경우에는 UTF8 같은 문자집합이나, 각 나라의 언어에 맞는 문자집합을 설정하면 됩니다.

 

 

참고문서

---------

 http://www.enjoydev.net/xe_new/index.php?mid=en_devboard&order_type=desc&document_srl=289&listStyle=viewer

Posted by 자수성가한 부자
Oracle/기타2013. 8. 7. 10:53




# Toad에서 timeout 설정 해지 방법


view-> toad option -> Debugger -> Debugger session timeout 

값을 0 으로 설정하면 시간이 지나도 끊어지지 않음

Posted by 자수성가한 부자
Oracle/기타2013. 5. 31. 16:53





출처 : http://www.dt.co.kr/contents.html?article_no=2013012302011060746002


Posted by 자수성가한 부자
Oracle/기타2013. 5. 29. 10:15




데이터베이스 관리의 과제와 Engineered System



세계적인 IT 자문 및 분석 기관인 Enterprise Strategy Group (ESG)은 오라클이 어떻게 4가지 주요 데이터베이스 관리 과제에 대응하고 있으며 자사의 "Exa" engineered system 제품들을 어떻게 전면에 내세우고 있는지를 상세하게 다룬 보고서를 작성했습니다. 

수석 애널리스트인 Evan Quinn이 작성한 최신 보고서(2012년 8월)에서는 4가지 주요 데이터베이스 IT 과제를 파악했습니다.



● 데이터베이스 성장 
● 보안 
● 성능 
● 인력 부족



연간 데이터베이스 데이터 성장



 

데이터베이스 과제



 

데이터 관리 인력 부족



 

이 보고서는 Oracle Exadata 고객들과의 인터뷰를 통해 조사된 결과를 뒷받침합니다. "경제 상황과 IT가 허용한다면, Oracle Exadata는 확실한 성과를 달성해낼 것(Economy Willing, IT Willing, Oracle Exadata Will Deliver Results)"라는 소제목 아래의 마지막 문단에서 오라클이 어떻게 OLTP와 데이터 웨어하우징의 활용 사례에서 혼합 워크로드를 처리하는 확실한 모범 사례와 최적화 기술을 보유하고 있는지 요약하여 설명하고 있습니다. 

"IT의 측면에서, Exadata는 오라클 중심 IT 부서가 자체 인프라를 관리하는 완전히 새로운 방법을 제시합니다. Exadata는 궁극적으로 많은 골치거리와 위험을 없애고 IT 부서가 더 많은 고부가가치 프로젝트를 추진할 수 있는 준비를 갖출 수 있도록 합니다. Oracle Exadata와 여타 "Exa" 옵션 및 클라우드를 통해 오라클은 현대 IT의 제공을 위한 토대를 완벽하게 지원하고 있습니다. 이를 통해 Oracle Exadata의 사례에서 ESG는 오라클이 자체 IT 고객들이 데이터베이스 관리와 관련하여 직면하게 있는 주요 과제들에 대응하는 토대를 완벽하게 포괄할 수 있도록 지원하고 있다는 사실을 분명하게 확인하게 되었습니다. "


출처 :http://www.kdb.or.kr/info/info_05.php?field=&keyword=&type=trend&page=3&dbnum=169176&mode=detail&type=trend



이런 추세라면 Exadata를 하지 않고서는 안됨.

Posted by 자수성가한 부자
Oracle/기타2013. 4. 1. 16:53

 

 

DB암호화 이전에 암호화에 대한 성능 영향을 측정하는 것인 정말 쉬운일이 아니다.

 

가장 많이 사용하는 플러그인 방식에 촛점을 맞추어 생각해 보자.

플러그인 방식은 잘 알려진 바와 같이 DB서버에 암/복호화 라이브러리를 설치하고, 뷰와 내부 저장 함수를 사용하여 라이브러리를 연결한다. 또한 Instead of 트리거를 사용하여, Insert, Update SQL을 뷰 대신 원래의 테이블에 대해 수행하도록 변환한다.

 

이런 일련의 과정은 DB에 매우 심대한 영향을 주고, 특히 성능에 많은 영향을 미친다. 초기 많은 DB암호화 실패 사례가 나왔던 것도 결국 이런 영향이 얼마나 큰지 알지 못하고 무턱대고 암호화를 하다가 빚은 참사가 아닐는지.

 

DB암호화를 고려할 때, 가장 먼저 드는 생각이 “암호화 후에 성능이 얼마나 감소할 것인가?” 하는 의문이다.

 

필자도 이런 문제로 한참 고민을 한 적이 있었는데, 어떤 계기로 모 공공기관의 DB암호화 영향도 분석이라는 과제를 수행할 기회가 있었다.

 

주로 성능 관점에서 DB암호화 시의 영향도를 예측하는 작업이었는데, 현재 수행되는 SQL에 대한 정보를 DBMS에서 수집한 후에, SQL을 파싱(Parsing)하여 암호화 시에 영향받는 SQL을 분리하면 그에 대한 예측이 가능하지 않을까 하는 막연한 생각으로 출발하였다.

 

오라클 DBMS의 경우에는 V$SQL 등의 테이블에 해당 인스턴스에서 수행한 SQL에 대한 통계 정보를 저장하고 있는데, SQL 수행횟수, SQL로 처리한 로우 수, CPU Time 총합, Elapsed Time 총합 등이 그에 해당한다.

 

우선 이런 정보를 일정한 주기로 수집하였다. 해당 정보는 오라클의 메모리가 부족해지지 않는 한 메모리 내에 유지되므로 하루의 몇 회 정도만 수집을 해도 거의 빠짐없이 V$ 테이블의 정보를 수집할 수 있다. 특정 시점에서만 수행되는 SQL이 있을 수 있어서, 1 개월 정도 계속하여 SQL을 수집하였다.

 

이렇게 수집한 SQL을 파싱하여, SQL이 사용하는 테이블, 컬럼 정보를 추출하였고, 이를 기준으로 해당 SQL이 암호화 대상 테이블/컬럼을 사용하는지 여부를 판정할 수 있었다. 이렇게 분류를 해 보면, 어떤 테이블에 관련된 SQL이 몇 종이나 되며, 해당 테이블을 사용하는 SQL이 전체 CPU 사용량의 몇 %에 해당하는 지 등의 다양한 정보를 얻어낼 수 있다.

 

또한 암호화 대상 테이블이 실제로 사용되는 테이블인지, 아니면 한때 필요에 의해서 만들었으나 지금은 아무도 사용하고 있지 않은 테이블인지(물론 연말에 한번 사용하거나, 국정감사를 대비해서 만들어 놓은 테이블일 수도 있다) 등을 분류하여, 임시 성격의 테이블은 제거하는 등의 판단을 내리는 데도 활용할 수 있다.

 

이런 정보가 생성이 되면 각 테이블별로, 이런 추측이 가능하다.

“만약 A라는 테이블의 B라는 칼럼이 암호화 대상인 경우에, 해당 칼럼을 사용하는 SQL은 암호화 후에 일정한 비율로 영향을 받을 것이다”

 

여기서 우리가 알아내야 하는 것은 비율을 결정하는 요소인데, 플러그인 방식에서는 해당 SQL에서 암/복호화 함수가 얼마나 불려지는가가 핵심이다. 즉 어떤 SQL이 100개의 주민번호를 읽어오는 것이라면 100번의 복호화 함수가 호출되므로, 암호화 이전과 차이는 100번의 복호화 함수 수행시간이 된다. 물론 이런 비교는, 암호화 전후에 실행계획상의 변화가 없다는 전제를 기초로 한다.

 

쉬워 보이는 이 논리에 어려운 점이 숨어 있는데, 각 SQL별로 암호화 대상 칼럼을 얼마나 가져오는지 알 수 있어야 한다는 것이다. 이 부분은 현재도 해결하지 못한 과제인데, 해당 프로젝트를 수행하는 시점에서는 시간 관계상 모델을 매우 단순화하여 영향도를 측정하였다.

 

여러 번의 DB암호화 프로젝트를 거쳐 암호화 영향도 분석의 효용성을 인식하게 되었는데,

 1)   암호화를 할 때 주의해야 할 테이블(핵심 테이블) 선정

 2)   많이 사용되고 CPU 점유율이 높은 SQL(핵심 SQL) 식별

 3)   추출된 SQL 중 암호화 대상 SQL만 분류하여, 효율적인 기능 및 성능 시험 수행

하는데 활용하고 있다. 더불어 정확한 값은 아닐지라도 암호화 후에 CPU 관점에서 얼마나 영향을 받는지를 계산하여, 플러그인 방식의 암호화를 적용하는 것이 가능한지 여부에 대한 판단을 내리는데 기초자료로 사용한다.

 

DB암호화를 고려한다면, 이런 방식의 영향도 분석을 꼭 해볼 것을 권하고 싶다.

 

 

출처 : http://www.dbguide.net/knowledge.db?cmd=specialist_view&boardUid=170383&boardConfigUid=93&boardStep=&categoryUid=

Posted by 자수성가한 부자
Oracle/기타2012. 8. 10. 14:12

 

테스트용 vmware 이미지를 만들다가 아래와 같은 에러가 났다.

다음번 설치시에 참고하면 좋을 듯.

 

When you execute runInstaller from the Oracle 9iR2 (9.2.0) CD, you will get the following error message:

Error occurred during initialization of VM
Unable to load native library: /tmp/OraInstall2003-10-25_03-14-57PM/jre/lib/i386/libjava.so:
    symbol __libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference

To resolve the __libc_wait symbol issue, download the p3006854_9204 patch p3006854_9204_LINUX.zip from http://metalink.oracle.com. See bug 3006854 for more information.

To apply the patch, run

su - root # unzip p3006854_9204_LINUX.zip Archive: p3006854_9204_LINUX.zip creating: 3006854/ inflating: 3006854/rhel3_pre_install.sh inflating: 3006854/README.txt # cd 3006854 # sh rhel3_pre_install.sh Applying patch... Patch successfully applied

 

 

출처 : http://www.puschitz.com/InstallingOracle9i.shtml

Posted by 자수성가한 부자
Oracle/기타2011. 8. 3. 15:30





9i


SQL> select * from dba_sys_privs where grantee = 'CONNECT';

GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
CONNECT                        CREATE VIEW                              NO
CONNECT                        CREATE TABLE                             NO
CONNECT                        ALTER SESSION                            NO
CONNECT                        CREATE CLUSTER                           NO
CONNECT                        CREATE SESSION                           NO
CONNECT                        CREATE SYNONYM                           NO
CONNECT                        CREATE SEQUENCE                          NO
CONNECT                        CREATE DATABASE LINK                     NO

10g

SQL> select * from dba_sys_privs where grantee = 'CONNECT';

GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
CONNECT                        CREATE SESSION                           NO

11g

SQL> select * from dba_sys_privs where grantee = 'CONNECT';

GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
CONNECT                        CREATE SESSION                           NO

Posted by 자수성가한 부자
Oracle/기타2011. 5. 31. 08:34





조동욱 님의 책이 나왔네요.
그간의 책들 Oracle Wait Interface, Optimizing Oracle Optimizer, RAC, 오라클 성능 Q&A 보았을 때
이번 책도 무척 기대가 됩니다.^^
오라클 성능 분석에서 최고의 고수가 되려면 꼭 봐야할 책이 아닌가 싶군요.


Posted by 자수성가한 부자
Oracle/기타2011. 2. 2. 17:27







HP LoadRunner software

Prevent application performance problems with integrated software testing tools.


Key features
 
•Emulates production workloads
•Tests range of application types: rich internet, Web 2.0 and composite
•Identifies performance bottlenecks
•Diagnoses root cause issues
•Improves application performance before deployment
 
 

How do you know if your mission-critical applications meet the performance and scalability requirements of your business? How do you decrease the risk of poor performance or catastrophic failure when deploying applications? Are your applications performing at optimal levels?

HP LoadRunner allows you to prevent application performance problems by detecting bottlenecks before a new system or upgrade is deployed. It lets you deploy quality applications with confidence and enables consistent repeatable testing processes. HP LoadRunner helps you:

 

•Test new technologies in tandem with legacy applications
•Decrease the risk of deploying systems that fail performance requirements
•Reduce hardware and software costs by accurately predicting application scalability and capacity
•Establish service level agreements before go-live
•Accelerate the delivery of high-quality applications
•Pinpoint end-user, system-level and code-level bottlenecks
•Reduce the cost of defects by testing earlier in the application lifecycle

Posted by 자수성가한 부자
Oracle/기타2010. 12. 16. 22:00





Q :

PLAN_HASH_VALUE 값을 비교하면 실행 계획이 동일한지 아닌지 알 수 있다고 합니다. 이 값을 버전 업그레이드시에 실행 계획을 비교하는데 사용해도 무방할만큼 믿을만한가요?

믿을 만하지 않다면 어떤 점을 조심해야하는지요?


A :

1. PLAN_HASH_VALUE 값을 계산하는 방식은 Oracle 9i, 10g, 11g에서 동일합니다. 따라서 버전과 무관하게 사용할 수 있습니다.

2. 단, PLAN_HASH_VALUE 값을 계산할 때 실행 계획에서 사용되는 모든 값을 참조하는 것이 아니라 다음과 같은 일부값을 사용합니다.

1) 실행 계획 상의 오퍼레이션 유형(TABLE ACCESS FULL, INDEX RANGE SCAN 등)

2) 실행 계획 상의 오브젝트 이름(T1, T2 등)

3) 병렬 실행에서의 Distribution 방식과 순서

문제는 위의 정보가 일치한다고 하더라도 실제 실행 계획은 다를 수 있다는 것입니다. 가령 특정 조건(Predicate)이 ACCESS로 사용되느냐, FILTER라 사용되는냐에 따라 실제로는 다른 실행 계획으로 볼 수 있습니다. 하지만 이 정보는 PLAN_HASH_VALUE를 계산할 때는 참조되지 않습니다.

위의 정보를 조합해보면 PLAN_HASH_VALUE 값으로 실행 계획의 동일성 여부를 판단하는 것은 99%의 경우에는 신뢰할 수 있지만, 특수한 일부 경우에서는 신뢰할 수 없는 경우도 있다고 결론내릴 수 있습니다.

만일 필요하다면 위에서 열거한 정보 외에 다른 정보를 포함한 독자적인 Hash Value를 계산해서 실행 계획의 동일성 여부를 확인할 수도 있습니다.



출처 : http://121.254.172.39:8080/pls/apex/f?p=101:11:0::::P11_QUESTION_ID:12242200346708503

Posted by 자수성가한 부자