AIX 환경에서 lock_sga=true 로 하고 DB 시작할 때 아래와 같은 에러가 나는 경우 해결책

 

ORA-27126: unable to lock shared memory segment in core
IBM AIX RISC System/6000 Error: 1: Not owner

해결책: root로 아래 명령어를 실행하고 시작한다.

# chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle

확인은

# lsuser -a capabilities oracle

여기까지만 해도 일단 DB가 시작되지 않는 현상은 해결된다(AIX 6.1 Oracle 11.2.0.4에서 확인)

 

v_pinshm 커널 파라미터에 대하여 좀 불분명한 점이 있다.

일단 v_pinshm=0 이더라도 DB가 올라오는 것을 테스트하여 확인했다.

하지만 과연 lock_sga가 정상적으로 동작하는지에 대해서는 테스트가 좀 더 필요하다.

변경 방법을 혹시 모르니 남긴다.

 

확인

# vmo -o v_pinshm
v_pinshm = 0

변경

# vmo -o v_pinshm=1
Setting v_pinshm to 1

리붓후에도 적용되도록 변경

# vmo -r -o v_pinshm=1

Setting v_pinshm to 1 in nextboot file
Warning: changes will take effect only at next reboot

Posted by neo-orcl
,

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

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

보통 유저를 생성하고 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
,

오라클의 filesystemio_options는 asynch, directio, setall 이 가능하다.

보통 기본값은 OS에 따라 다르나 none 혹은 null이거나 asynch 이다.

왠만한 파일시스템은 asynch를 기본적으로 지원하고 directio도 거의 지원한다.

asynch는 최근 OS에서 거의 문제가 되지 않으나 Directio는 백업과 관련한 문제가 생길 수 있다.

 

Directio를 적용하는 방법이 두가지 있는데

1. filesystem을 mount하는 단계에서 적용한다 즉 OS Level에서 적용하는 방법이다.

2. application Level에서 적용하는 방법이다. 오라클의 경우 filesystemio_options 파라미터를 directio 혹은 setall로 적용한다.

 

2번 방법을 사용해 Application에서 direct I/O 혹은 Concurrent I/O(direct I/O의 enhanced 기술이라고 보면 된다) mode로 오픈한 파일은 OS에 따라 꼭 같은 mode로 접근해야지만 접근이 가능하게 된다.

 

AIX5.3의 경우가 그랬다. cp가 불가능한 전혀 처음 보는 특이한 현상을 보였다.

이를 해결하는 방법은 결국 filesystem 마운트 단계에서 cio/dio 옵션으로 마운트 하는 것이다.

이후에는 오라클의 filesystemio_options에서 directio나 setall를 설정하지 않아도 자동으로 directio 혹은 concurrent io가 작동하게 된다.

 

오라클 버전에 따라, OS버전, OS종류에 따라 direct/concurrent io를 사용하더라도 복사나 접근이 가능/불가능 여부가 틀리니 핫백업이 안될 경우를 대비해 꼭 확인하도록 하자.

현재는 AIX 5.3 + Oracle 10gR2에서 발생하는걸 확인했다.

 

※filesystem에 따라 direct io가 기본적으로 적용되는 경우도 있다.

Posted by neo-orcl
,