##################################################################################################################

개요
##################################################################################################################

보통 유저를 생성하고 grant connect, resource to user를 습관적으로 하게 되는데

 

resource role을 주면
unlimited tablespace까지 주기에 system 테이블스페이스 사용 가능하게 된다는 보안 혹은 관리상의 문제가 될 소지를 가지고 있다.

 

그 전에 DB Global한 default tablespace 설정도 확인해야 한다.

col property_name for a30
col property_value for a20
SQL> select property_name,property_value from database_properties where property_name in ('DEFAULT_PERMANENT_TABLESPACE','DEFAULT_TEMP_TABLESPACE');

 

PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ --------------------
DEFAULT_TEMP_TABLESPACE        TEMP
DEFAULT_PERMANENT_TABLESPACE   SYSTEM

 

여기서 system으로 설정된것 확인할 수 있는데, 이런 경우는 예전 버전을 사용하지 않고선 드문 편이다.


변경하려면?

SQL> alter database default tablespace users;
Database altered.

##################################################################################################################안전한 유저 생성
##################################################################################################################

1. 유저 생성(default tablespace를 쓴다면 tablespace 옵션 안써도 무방)한다.


create user <유저명>
identified by <유저명>
tablespace <테이블스페이스명>
quota unlimited on <테이블스페이스명>
quota unlimited on <테이블스페이스명>
quota unlimited on <테이블스페이스명>;

 

2. 권한 부여한다.

grant connect, resource, create view to <유저명>;

 

3. unlimited tablespace를 뺏는다.

revoke unlimited tablespace from <유저명>;


##################################################################################################################할당량 조회
##################################################################################################################
select * from user_ts_quotas;

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

About DBLINK  (0) 2014.03.07
About Sequence  (0) 2014.03.07
통계정보 수집 전략에 대한 가이드라인  (0) 2013.12.11
Procedure Debug 권한 부여  (0) 2013.06.26
Oracle Standard Edition 으로 RAC 구성시 제약사항  (0) 2013.05.21
Posted by neo-orcl
,

요약, 번역한 내용. 당연한 내용과 익히 알만한 내용은 제외했다

 

정리

- 가능하다면 개별의 통계정보를 수집하는 것이 좋다.
- 테이블에 대한 통계정보는 5%가 일반적으로 적당하다.
- 인덱스에 대해선 compute 로 한다.
- histogram은 데이터가 skew되었다고 알려진 컬럼에 대해 추가한다

 

정리에 대한 설명

- 일반적으로 대부분의 테이블에 대한 통계정보는 5%가 적당하지만 가능하다면 100%로 하는 것이 추천된다.
- 테이블에 대한 통계정보 수집은 정렬을 필요로 하기에 성능과 시간과 연관이 있게 된다.
- 하지만 인덱스의 경우에는 이미 정렬이 되어 있기에 100%로 한다 하더라도 성능은 허용할만 하다.
- 컬럼에 대한 histogram은 일정한 분포도를 벗어나는 컬럼에 대해 적합하다.

 

자세히

아래 내용은 의견을 모은 것이다(오라클의 공식 가이드는 아니다)

 

- 다른 시스템의 다른 시스템에는 다른 레벨의 통계정보 수집이 필요하다.

 

- 통계정보를 수집하는 이유는 CBO가 '좋은' 실행 계획을 세우기 위해 가장 좋은 정보를 제공하는 것이다.

 

- 정확성은 샘플 사이즈에 의존하게 된다.

- Computed 통계라고 하더라도 CBO가 반드시 Best plan을 선택하는 것은 아니다. 왜냐면 optimizer는 선척적으로 추측하고 사용하는 정보는 제한적이기 때문이다.

 

- 얼마나 자주 통계 수집을 하는지는 오브젝트가 얼마나 자주 변경되는지에 따라, 또한 통계가 얼마만에 부정확해지는가에 따라 결정된다.

 

- 좋은 sample size를 정하기 위한 가장 좋은 방법은 다른 샘플 크기로 통계를 수집해 결과를 확인하는 것이다. 낮은 수치부터 진행하다보면 어떤 포인트에서 결과가 일정하게 보이기 시작할 것이다.

 

- 통계정보는 되도록 사용시간대가 없는 때 하도록 해야 한다. 통계수집중인 오브젝트에 update나 insert 등이 진행중이라면 경합을 겪을 수 있다.

 

- 통계 수집 주기를 결정하기 위해서는 before 결과값과 after 결과값을 기록해두어 after가 변하는 시점이 적절한 수집 주기일 것이다.

 

- 만약 before 결과값과 after 결과값이 자주 다를 경우, 데이터 성격이 예측 불가능하거나 데이터의 크기에 비해 샘플 크기가 너무 작거나 데이터가 너무 랜덤할 경우 중 하나일 것이다. 이 경우 통계 수집은 어떤 방법을 써도 한계가 있게 된다. 이 때는 다른 방법으로 쿼리에 대한 실행계획을 세우는 방법을 써야 한다.(힌트라던가?)

 

- CBO의 기본 cost 계산법을 사용하고 있다면? 새로운 통계를 수집했을 때 몇몇 문장에 대해 다른 실행계획이 세워질 수 있다.

- 이는 데이터 성격이 바뀌었을 경우 CBO가 접근 경로를 바꾸게 되는 정상적인 동작이다.

- 그런데 다른 실행계획이 기존 실행계획보다 나쁠 수도 있다. 차이는 클 수도 있고 작을 수도 있다.
- 약간 다른 기본정보가 CBO에게 주어지면 다른 계획을 선택할 수 있다.

 

- 대부분의 시스템에서는 예측가능성이 최적의 성능보다 더 중요하다. 위에서 본 불안정한 영향을 미칠 수 있는 통계 수집보다는 분명하다.

- 이 말은 통계 수집을 쓰지 말하는 것은 아니다. 하지만 무슨 일이 일어날지 알아야 한다.

 

- 통계 정보 수집 후 시스템의 성능에 중요한 영향을 미치는 문장에 대해 허용하는 시간 안에 응답을 하는지 테스트 머신에서 먼저 테스트해봐야 한다

 

- 중요한 통계정보는 통계정보가 바뀜으로 인해 실행계획이 바뀌어 어플 성능이 떨어졌을 경우를 대비해 이전 통계를 저장하는 것을 권장한다.

- 10g부터는 기본적으로 31일동안은 이전의 통계정보를 저장한다.
- 만약 통계 수집의 결과로 중요한 문장에 대한 성능이 떨어졌다면 이전의 통계로 되돌릴 수 있다.

 

- 어떤 문장이든지 성능에 영향을 줄 수 있으나 이들을 찾는건 쉽지 않다.

- 하지만 만약 찾았다면. 일반적으로 plan stability 기능 혹은 힌트를 사용하는 것이 안정적인 실행계획을 위해서 가장 좋은 방법이다.
- DW/DSS 환경에서는 쿼리를 예측할 수 없기에 위에서 말한 방법을 사용할 수 없다. 수집된 통계정보에 맡겨야 한다.

 

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

About Sequence  (0) 2014.03.07
User 생성시 quota 관련 주의점  (0) 2014.01.09
Procedure Debug 권한 부여  (0) 2013.06.26
Oracle Standard Edition 으로 RAC 구성시 제약사항  (0) 2013.05.21
Oracle process and Files  (0) 2013.03.18
Posted by neo-orcl
,

고객사에서 요청이 와서 debug 권한이 있다는걸 처음 알게되었다.

 

ORA-01031: insufficient privileges
 ORA-06512: at "SYS.PBSDE", line 78
ORA-06512: at "SYS.DBMS_DEBUG", line 224
ORA-06512: at line 2

 

해결:

GRANT DEBUG CONNECT SESSION TO SCOTT;
GRANT DEBUG ANY PROCEDURE TO SCOTT;

Posted by neo-orcl
,

What is Standard Edition Oracle RAC?
As of Oracle Database 10g, a customer who has purchased Standard Edition is allowed to use the Oracle RAC option within the limitations of Standard Edition(SE). For licensing restrictions you should read the Oracle Database License Doc. At a high level this means that you can have a max of 4 sockets in the cluster, you must use ASM for all database files. As of Oracle Database 11g Release 2, ASM includes ACFS (a cluster file system). ASM Cluster File System (ACFS) or a local OS file system must be used to store all non-database files including Oracle Home, Application and system files, and User files
NOTE: 3rd party clusterware and clustered file systems(other than ASM) are not supported. This includes OCFS and OCFS2.

Here is the text from the appropriate footnote in the Price List (as of Jan2010, please check price list for any changes):

Oracle Database Standard Edition can only be licensed on servers that have a maximum capacity of 4 sockets. If licensing by Named User Plus, the minimum is 5 Named User Plus licenses. Oracle Database Standard Edition, when used with Oracle Real Application Clusters, may only be licensed on a single cluster of servers supporting up to a total maximum capacity of 4 sockets.

NOTE: This means that the server capacity must meet the restriction even if the sockets are empty, since they count towards capacity.


--------------------------------------------------------------------------------
해석:

특정 옵션으로 standard edition에 rac를 설치할 수 있다.
4 소켓 최대. 만약 named user plus 라이센스라면 최소 5 named user plus 라이센스 이상이여야 한다.
추가로 소켓이 비어있더라도 카운트는 된다.

db 파일들을 위해 ASM을 사용해야 한다.
3rd 파티 클러스터웨어와 클러스터 파일 시스템은 지원하지 않는다. ocfs와 ocfs2역시 지원하지 않는다.

Posted by neo-orcl
,

 

 PROCESS

ORACLE FILE I/O 

 Data files

Log

Archive 

Control 

CKPT

read/write

 

 

 

 DBWn

write

 

 

 

 LGWR

 

write

 

read/write 

 ARCn

 

read

write

read/write

 SERVER

read/write

read

write

read/write

 

Posted by neo-orcl
,

아주 상식적으로 생각해서 나는 rollback이라고 생각하고 있었다.
하지만 팀장님 말을 듣고 실제 테스트해보니.. commit이었다.

[oracle@centos5 ~]$ sqlplus scott/tiger
Connected to:
Oracle Database 10g Release 10.2.0.5.0 - 64bit Production

GLOBAL_NAME
----------------------------------------------------------------------------------------------------
scott@TESTDB

scott@TESTDB> select * from t;
        NO
----------
         1

scott@TESTDB> update t set no=2;
1 row updated.

scott@TESTDB> exit
Disconnected from Oracle Database 10g Release 10.2.0.5.0 - 64bit Production
[oracle@centos5 ~]$ sqlplus scott/tiger

Connected to:
Oracle Database 10g Release 10.2.0.5.0 - 64bit Production

GLOBAL_NAME
----------------------------------------------------------------------------------------------------
scott@TESTDB

scott@TESTDB> select * from t;
        NO
----------
         2

Oh my god!

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

Oracle Standard Edition 으로 RAC 구성시 제약사항  (0) 2013.05.21
Oracle process and Files  (0) 2013.03.18
ROW_CHAIN 해결 비교  (0) 2013.02.18
Control file dump 뜨기  (0) 2013.01.04
Opatch 사용법  (0) 2012.12.27
Posted by neo-orcl
,

 항목

절차 

작업중서비스 

수행시간 

추가공간필요 

인덱스재구성필요 

행이전 

테이블재구성(CTAS)

복잡

 불가능 

 빠름 

대상 테이블크기만큼 

REBUILD 필요

 해결 

테이블 MOVE

 단순 

불가능

빠름

대상 테이블 크기만큼

REBUILD 필요

해결

온라인세그먼트축소 

단순

가능

보통

공간 필요없음

NO REBUILD

 부분 해결

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

Oracle process and Files  (0) 2013.03.18
SQLplus에서 exit를 할 경우 rollback일까 commit일까?  (0) 2013.02.25
Control file dump 뜨기  (0) 2013.01.04
Opatch 사용법  (0) 2012.12.27
Oracle 8, 8i, 9i 기능비교표  (0) 2012.12.21
Posted by neo-orcl
,

sys@ORCL> alter session set tracefile_identifier='ctrl';
sys@ORCL> alter session set events 'immediate trace name controlf level 3';

Session altered.

sys@ORCL> oradebug setmypid;
Session altered.

sys@ORCL> oradebug dump controlf 3;
Statement processed.

sys@ORCL> oradebug tracefile_name;

이후 udump 디렉토리에서 확인

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

Oracle process and Files  (0) 2013.03.18
SQLplus에서 exit를 할 경우 rollback일까 commit일까?  (0) 2013.02.25
ROW_CHAIN 해결 비교  (0) 2013.02.18
Opatch 사용법  (0) 2012.12.27
Oracle 8, 8i, 9i 기능비교표  (0) 2012.12.21
Posted by neo-orcl
,

Opatch 사용법

Knowledge/Oracle 2012. 12. 27. 09:34

#########################################################################################################
##### 오패치 개요
#########################################################################################################
.interim patch나 'one-off' patch를 적용하는 툴
.특정 버젼에만 적용 가능
.예를 들어 8.1.7.3 버젼의 임시패치를 8.1.7.4에 적용 불가능

.임시패치는 대부분 차기 패치셋에 포함됨
.그런데 임시패치는 패치가 적용된 후에 발생할 수 있는 부작용을 테스트하는 리그레션(regression)테스트는 하지 않는 것들이 있다.
.이런 no regression test된 임시패치는 적용하기보다 패치셋 적용하는 것이 좋다.

.임시패치시 이전에 설치한 모든 임시패치와의 충돌 여부를 확인한다. 이것때문에 임시패치를 적용하려면 최신버젼을 유지해야 한다.
.만약 충돌한다면 병합하는 과정이 필요하다.
.임시패치시에는 꼭 readme를 읽어본다.

.9.0.1 까지는 임시패치 적용시 쉘 스크립트를 이용해 패치를 적용했었다.
.9.2 버젼부터 Opatch라는 패치 관리 유틸이 등장했다.

.Opatch는 oracle db 9.2에 포함되어있지 않다. 9iR2 버젼이라면 메타링크에서 다운로드
.메타링크에서 patches -> simple search -> 2617419 입력 -> 2617419 universal installer: patch opatch aru placeholder.(10.1.0.2)

.opatch 실행 요구사항
-perl: 최소 5.0.0.5_03 이상 설치되어야함. 5.6 버전 이상 권장됨. 오라클 설치시 typical 옵션으로 설치하거나 custom 서ㄹ치시 web server 선택하면 $ORACLE_HOME/Apache/perl에 설치된다.
-두개의 inventory가 정상적으로 유지되어야 함.
 -1st inventory: 오라클은 두개의 인벤토리를 가지고 있다. 하나는 oraInst.loc 파일에 적힌 센트럴 인벤토리다. 보통 $ORACLE_BASE/oraInventory의 이름으로 있다. 이 인벤토리는 설치된 오라클 제품정보 보관한다.
 -2nd inventory: 로컬 인벤토리로 $ORACLE_HOME/inventory에 위치한다.
이 인벤토리에는 특정 ORACLE_HOME에 설치된 컴포넌트를 저장한다.
-Opatch: 2617419 패치넘버로 버젼이 계속 업데이트 되므로 항상 최신 버젼 유지하도록 함.
-Path: RAC에서 임시패치 적용시에는 $ORACLE_HOME/lib와 $ORACLE_HOME/svrm/lib 디렉토리가 라이브러리 path에 포함되어야 한다.
       solaris의 경우 LD_LIBRARY_PATH, HP-UX의 경우 SHLIB_PATH, AIX는 LIB_PATH

#########################################################################################################
###### 주의사항
#########################################################################################################
.임시 패치 적용 전 반드시 센트럴 인벤토리와 로컬 인벤토리를 백업해 예기치 못한 인벤토리 충돌시 복구가 가능하도록 한다.

#########################################################################################################
##### Opatch의 사용
#########################################################################################################
-임시패치 적용
-적용한 임시 패치의 제거
-설치한 컴포넌트와 패치(패치셋 포함)에 대한 정보 조회
-설치하지 않은 임시 패치에 대한 정보 조회

-Usage: opatch [-h] [-r[eport]] [command] [command argument] global argument
 -h: 특정 명령에 대한 설명. 예) opatch -h lsinventor
 -r: 실제 패치 적용 안하고 처리과정 화면만 출력

#########################################################################################################
##### Opatch 적용
#########################################################################################################
-패치적용은 Apply 명령을 사용. 기본적인 명령은 아래와 같다.
$ opatch apply [ -delay] [-force]
[ -invPtrLoc]
[ -jdk] [-jre] [-local]
[-minimize_downtime] [-no_bug_superset]
[-no_inventory] [-oh]
[-retry] [-silent] [-verbose]
[-Patch_location]

 - force: 이전에 설치한 임시패치와의 충돌 발생시 무시하고 설치한다. 이 경우 기존의 객체파일을 새로운 객체 파일로 대체하므로 주의한다.
 - invPtrLoc: oraInst.loc 파일의 위치를 수동으로 지정시 사용
 - jdk: 디폴트 jdk 이외에 jdk 경로 지정
 - jre: 디폴트 jre 이외에 jdk 경로 지정
 - local: RAC용 옵션으로 패치적용을 다른 노드에 전파하지 않고 로컬 노드에만 적용한다. 인벤토리도 로컬 노드에서만 업뎃이드 한다. 이 경우 다른 노드에서도 개별적으로 로컬 옵션을 사용해 즉시 패치를 적용해야 한다. 일부 노드에서만 패치를 적용해 운영하는것은 허용되지 않는다?
 - minimize_downtim: 임시패치 적용중 RAC의 다운타임을 최소화하기 위해 사용할 수 있다.
 - no_bug_superset: 설치하려는 패치가 이미 설치한 패치의 슈퍼셋인 경우 에러를 발생시킨다.
 - no_inventory: 패치적용중에 인벤토리를 읽거나 업뎃하는 과정을 생략한다. 인벤토리 변조등으로 정상적으로 인벤토리를 읽거나 업뎃할 수 없을 때만 사용한다. 사용하게 되면 미지원 상태가 되므로 주의해야 한다. local 옵션과 같이 사용 불가능하다.
 - oh: $ORACLE_HOME 대신에 사용한 ORACLE_HOME을 지정한다.
 - silent: 사용자 인터랙션을 모두 디폴드로 적용하여 패치 진행한다.
 - verbose: 기본적으로 나타나는 정보보다 더 자세한 내용을 화면과 로그 파일에 출력한다.
 - Patch_location: 설치하려는 임시패치의 모든 경로를 표시한다.

 - 특별한 경우가 아니면 opatch apply 명령으로도 사용 가능하다.
 - 특별한 경우는 어떻게 사용하는지 예) opatch apply -invPtrLoc $ORACLE_HOME/oraInst.loc -silent

#########################################################################################################
##### Opatch 제거
#########################################################################################################
-패치 제거는 rollback 명령어 사용.
$ opatch rollback -id [-invPtrLoc]
[-jdk] [-jre] [-local]
[-oh] [-ph]
[-silent] [-verbose]

 - id: 제거하려는 임시 패치번호
 - ph: 패치 스테이지의 위치, 즉 패치를 제거할 때도 패치 파일이 필요하다.

간단한 패치 제거 사용 예
 $ opatch -id 380927 -ph /opt/oracle/920/380927

#########################################################################################################
##### 설치되지 않은 오패치 정보 조회
#########################################################################################################

-패치정보 조회는 query를 이용
$ opatch query [-all] [-get_base_bug] [-get_component]
[-get_date] [-get_os] [-get_system_change]
[-is_rolling] [-is_shutdown]

 - all: 모든 정보를 알려준다.
 - get_base_bug: 해당 패치에 의해 수정된 베이스 버그를 알려준다.
 - get_component: 패치 적용시 요구되는 컴포넌트 알려준다.
 - get_date: 패치가 생성된 날짜
 - get_os: 패치 파일이 지원하는 운영체제
 - get_system_change: 해당 패치 적용한 후 시스템에 변경되는 사항 알려줌. 현재 지원 안됨
 - is_rolling: 롤링패치 가능한가
 - is_shutdown: 패치 적용시 인스턴스 다운 필요한지 알려준다. 현재 지원 안됨. 나중에는 지원된단 얘긴지 이전엔 지원됐는데 이제 지원 안된다는 얘긴지?

#########################################################################################################
##### 설치된 오패치 정보 조회
#########################################################################################################
-설치된 패치리스트 조회는 lsinventory 사용
$ opatch lsinventory [-all] [-detail]
[-invPtrLoc]
[-jre] [-oh]

 - all: ORACLE_BASE 밑에 설치된 모든 ORACLE_HOME 정보를 표시한다.
 - detail: 설치된 패치 내에 포함된 라이브러리 파일까지 표시해주므로 패치 적용시 충돌되는 객체 파일을 확인 가능하다.

#########################################################################################################
##### 오패치 버젼 조회
#########################################################################################################
-opatch 버젼 확인
[oracle@centos5 OPatch]$ ./opatch version
Invoking OPatch 11.1.0.6.6

OPatch Version: 11.1.0.6.6

OPatch succeeded.

#########################################################################################################
##### RAC에서의 Opatch 사용
#########################################################################################################

-기본적으로 임시 패치 적용시 인스턴스를 다운 후 적용해야 하므로, 패치 적용시는 서비스를 할 수 없게 된다.
-RAC에서는 몇가지 옵션을 사용하면 다운타임을 최소화할 수 있다.
-RAC에서 패치가 적용되는 방법들
 - 사용자가 패치 적용 방법을 minimize_downtime로 설정
 - 패치가 롤링 패치를 지원 한다면 rolling
 - 아니면 All-node
-만약 엔진을 공유 스토리지에 설치했다면 minimize_downtime과 rolling 불가능하다

 - all-node : 일반적인 DB에 패치 적용하는 것처럼 모든 인스턴스를 다운한 후에 한 노드씩 순차적으로 진행한다. $ORACLE_HOME을 여러 노드에서 공유하는 경우는 이 방식으로 패치 적용할 수 밖에 없다.

 - minimize_downtime: RAC 운영시 다운타임을 최소화하기위해 사용. 2노드 RAC의 경우 패치 절차는 아래와 같다.
  1. 먼저 로컬 노드 인스턴스를 셧다운한다.
  $ opatch aplly -minimize_downtime 명령으로 패치 실행한다.
  2. Is this node ready for updating? 질문에 yes로 답해 로컬 노드 패치 적용된다.
  3. 패치 적용 완료 후 다음에 적용할 노드명을 물어본다.
  4. 해당 노드명을 입력하면 이 노드의 인스턴스를 셧다운하도록 요청하게 된다.
  5. 요청받은 노드의 인스턴스는 'shutdown immediate'로 셧다운된 후 셧다운이 완료되면 이미 패치가 적용된 노드의 인스턴스가 셧다운한다.
  6. 두번째 노드에 패치가 적용된다.
  7. 인벤토리 정보가 업뎃된다.
  8. 패치가 완료되면 두번째 인스턴스도 셧다운한다.
  (좀 순서가 이상한데.. 확인 필요)

  minimize_downtime 옵션을 사용해도 모든 인스턴스가 다운되는 단계가 있다. 5번 단계에서만 해당된다.

 - rolling patch
  롤링패치는 다운타임이 전혀 없다. 적용 절차는 다음과 같다.
  0. opath query -is_rolling 으로 먼저 롤링 패치 지원하는지 확인한다.
  1. 인스턴스1을 셧다운한다. 이 단계에서 인스턴스 2는 서비스중이다.
  2. 노드1에서 opatch apply 명령으로 패치 적용한다.
  3. 노드1에서 패치가 적용되었으면 인스턴스1을 시동할 수 있다는 메시지를 받는다. 
  4. 노드1의 인스턴스를 수동으로 시동한다.
  5. 필요시 노드1 접속하여 post script 실행한다.
  6. 다음에 적용할 노드를 (3node 이상일 경우)입력하라고 하거나 자동으로 다음 노드에 대해 셧다운 진행하라는 메시지가 나온다.
  7. 인스턴스2를 셧다운한다.
  8. 3번 세션에서 이어서 계속 노드2에 패치를 적용한다.
  9. 패치 적용 후 인스턴스 2를 시동한다. post script 실행한다.

#########################################################################################################
##### 트러블슈팅
#########################################################################################################

-임시 패치가 적용되었는지 어떻게 확인 가능한가?
 - 일반적으로는 opatch lsinventory를 사용하여 확인한다.
 - $ORACLE_HOME/.patch_storage 디렉토리 밑에 해당 패치 번호를 이름으로 디렉토리 생성된다. 이 디렉토리 밑에 패치 적용 로그와 패치 적용 이전의 라이브러리 파일(롤백용), 롤백시 적용할 스크립트가 있다.

- Windows에서 opatch 실패
C:\oracle\ora92\OPatch> opatch lsinventory
"You have to invoke the patch tool manually."
"The syntax is:"
" perl /opatch.pl"
"If everything is installed correctly you should be able to run"
" perl /opatch.pl"
" and see the basic help message."
C:\oracle\ora92\OPatch> perl opatch.pl lsinventory
<<중략>> Required Jar File under Oracle Universal Installer = jlib\OraInstaller.jar
'""C:\Program'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램 또는 배치 파일이 아닙니다
<<생략>>

 - 해결: Opatch 사용시 권장버젼은 5.6이상인데 windows에서 perl 5.6 이상을 사용하여 opatch 실행하면 위와 같은 에러 메시지 발생한다.
         $ORACLE_HOME/Apatch/perl을 사용하도록 한다.

- 컴포넌트/버전 불일치
This Oracle Home does not have components/versions required by the patch.
ERROR: OPatch faild during pre-reqs check.

 - 해결: 임시패치가 요구하는 컴포넌트 미설치 혹은 지원하는 버젼 비일치. 패치파일 요구사항을 opatch query 명령으로 조회한다.

- 라이브러리 path없음
java.lang.UnsatisfiedLinkError

Exception in thread "main"java.lang.UnsatisfiedLinkError:
no oraInstaller in java.library.path

 - 해결: 이 경우 대부분 liboraInstaller.so가 라이브러리 경로에 포함되지 않았기 때문이다.
         $ORACLE_HOME/oui/bin 디렉토리를 path에 추가한다.

- oraInst.loc 파일 위치 비일치
java.lang.NullPointerException

Exception in thread "main"java.lang.NullPointerException at xxx.main...

 - 해결: 오라클 엔진설치시 RunInstaller를 -invPtLoc 옵션 사용해 실행한 경우일 수 있다. Opatch 실행시도 동일한 -invPtrLoc를 사용해 orainst.loc의 위치를 명시한다.

#########################################################################################################
###### 출처
#########################################################################################################
제공: DBguide.net
출처명: 한국 오라클

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

Oracle process and Files  (0) 2013.03.18
SQLplus에서 exit를 할 경우 rollback일까 commit일까?  (0) 2013.02.25
ROW_CHAIN 해결 비교  (0) 2013.02.18
Control file dump 뜨기  (0) 2013.01.04
Oracle 8, 8i, 9i 기능비교표  (0) 2012.12.21
Posted by neo-orcl
,
버전 기능 비교
다음은 주요 기능에 대한 Oracle9i, Oracle8i, Oracle8 버전별 제공 여부를 나타낸다.

 

기능

Oracle9i

Oracle8i

Oracle8

 

자동화된 Standby

Yes

Oracle Data Guard

Yes

Standby DB

No, Manual

Standby DB

손쉬운 Switch-Over

Yes

Yes

Yes

완벽한 재해 예방

Yes

Partial

Partial

블록 레벨 복구

Yes

No

No

Flashback Query

Yes

No

No

온라인 인덱스
생성 재생성

Complete

Strong

No

온라인 테이블 재정의

Yes

No

No

LogMiner

Yes,
DDL
지원

Yes

No

지정 가능한 복구 시간

Yes

No

No

 









데이터 분할 기법

Range, Hash,
Composite, List

Range, Hash,
Composite

Range, Hash,
Composite

Star 질의

Yes

Yes

Yes

Bitmap 인덱스

Yes

Yes

Yes

Materialized View

Yes, Enhanced

Yes

No

Function 기반 인덱스

Yes

Yes

No

다양한 분석 함수

Yes, Enhanced

Yes

No

Change Data Capture

Yes

No

No

Bitmap 조인 인덱스

Yes

No

No

Multitable Insert

Yes

No

No

Upsert(Merge)

Yes

No

No

Table Functions

Yes

No

No

Transportable Tablespace

Yes

Yes

No

병렬 DML 처리

Yes

Yes

Yes

 

Real Application
Clusters

Oracle Parallel
Servers

Oracle Parallel
Servers

Cache Fusion

Complete

Partial

No

투명한 어플리케이션 Failover

Yes

Yes

Yes

어플리케이션 지원

All

All,
with Some Tuning

Limited

자동 접속 부하 균형

Yes

Yes

No

자동화된 DLM 구성

Yes

No

No

동적 DLM Remastering

Yes

No

No

시스템 자원 관리

Enhanced,
Resource Manager

Yes,
Resource Manager

No

자동 Undo 관리

Yes

No

No

자동 데이터 파일 관리

Yes

No

No

동적 SGA 크기 관리

Yes

No

No

자동 SQL 실행 메모리 관리

Yes

No

No

영구적인 초기화 파일

Yes

No

No

재수행가능한 공간 할당 문장

Yes

No

No

다중 블록 크기 지원

Yes

No

No

Java 기반의 시스템 도구

Yes, Enhanced
OUI, DBCA

Yes, Enhanced
OUI, DBCA

Yes

강력한 데이터 보안 기능

Yes,
Virtual Private DB

Yes(8.1.6),
Virtual Private DB

No

3-Tier 보안 기능

Yes

Yes

No

Fine-Grained Auditing

Yes

No

No

Oracle Label Security

Yes

No

No

표준 기반 PKI

Yes

No

No

컬럼 레벨 데이터 암호화

Yes

Yes

No

Directory 서비스

Yes

Yes

Yes

Enterprise User Role 관리

Yes

No

No

SSL 지원

Yes

Yes

No

RADIUS Adapter 지원

Yes

Yes

No

KERBEROS 보안 모델 지원

Yes

Yes

No

LDAP 통합

Yes

Yes

Yes

데이터베이스 내의
XML Type
지원

Yes

No

No

XML Developer’s Kit

Yes

Yes

No

객체 관계형 모델

Yes, Complete

Yes, Partial

Yes, Partial

ANSI/ISO SQL 1999 지원

Yes

No

No

C++ Call Interface

Yes

No

No

Scrolling Cursors

Yes

No

No

Bulk Binding

Yes

Yes

No

PL/SQL Native 컴파일

Yes

No

No

통합된 JVM

Yes

Yes

No

SQLJ

Yes

Yes

No

Java Stored Procedures

Yes

Yes

No

JDBC 2.0 지원

Yes

Yes (8.1.6)

No

Java Native 컴파일

Yes

Yes (8.1.7)

No

UltraSearch

Yes

No

No

 출처: http://m.blog.naver.com/doiter/60006896503

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

Oracle process and Files  (0) 2013.03.18
SQLplus에서 exit를 할 경우 rollback일까 commit일까?  (0) 2013.02.25
ROW_CHAIN 해결 비교  (0) 2013.02.18
Control file dump 뜨기  (0) 2013.01.04
Opatch 사용법  (0) 2012.12.27
Posted by neo-orcl
,