OS/LINUX2008. 6. 24. 03:01
반응형
1. 소스 풀기
]# rpm -Fhv sendmail-8.11.6-23.72.src.rpm
]# cd /usr/src/redhat/SPEC
"sendmail.spec" 화일이 생성.

2. rebuild하기
]# rpmbuild -bb sendmail.spec
서버 환경에 맞게 sendmail이 재 설치됩니다.

3. rpm 화일 생성된 것 확인
]# ls -asl /usr/src/redaht/RPMS/i386
 
4. sendmail 일단 정지
]#  /etc/rc.d/init.d/sendmail stop
  
5. 패키지 업데이트 시작
]#  rpm -Fvh sendmail-8.11.6-23.72.i386.rpm
반응형

'OS > LINUX' 카테고리의 다른 글

RHEL 4 에 YUM 설치  (0) 2009.02.10
LINUX 해킹당했을 때 대처요령  (0) 2008.11.17
rpm 아키택쳐 버젼까지 확인방법  (0) 2008.05.31
linux bonding  (0) 2008.04.19
RPM Kernel 설치와 패치 방법  (0) 2008.03.12
Posted by [PineTree]
ORACLE/Backup & Recovery2008. 6. 19. 20:14
반응형
begin backup Mode 확인하기
반응형
Posted by [PineTree]
ORACLE/TroubleShooting2008. 6. 19. 19:50
반응형
EXP-00091: Exporting questionable statistics.
Export terminated successfully with warnings.

questionable statistics 란?
1. exp 받는 동안 row error가 있는 경우
2. client char set이나 nchar char set이 server char set이나 nchar char set
과 맞지 않는 경우
3. exp시 query 옵션이 사용된 경우
4. partitions, subpartions만 exp 받는 경우

위의 4가지 경우인 경우 위의 warning 이 나타납니다.
위의 4가지인 경우 기존의 통계정보와 달라질 수 있기 때문에 recalculate가 필요합니다.
oracle 9버전부터 export시 default로 기존의 통계정보를 export받는데
export 받기 전 정상적으로 analyze가 되지 않았다면 위에 해당하는 에러가 발생하게 됩니다.

 
answer1>
통계정보를 무시하고 export 할려고 한다면..옵션절에 statistics = none 로 써
주시고 export받으면 됩니다.
answer2>
imp받으실때 statistics=safe로 받으면 됩니다.
여러 exp 파일이 있는 경우 저 warning이 났는지 안났는지 모르기때문에 safe 옵션을 쓰면 재계산이 필요한 경우는 해주고 안필요하면 안하고 넘어가게 됩니다.

반응형
Posted by [PineTree]
ORACLE/ADMIN2008. 6. 19. 05:14
반응형

$ sqlplus "/ as sysdba" -- 접속한다.
 
-- archive log mode 인지 아닌지 상태 확인
 
SQL> archive log list
 
-- spfile 로 startup 되는지 pfile(init_SID.ora)로 startup 되는지 확인한다.
 
SQL> show parameter spfile
NAME                                               TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                                                string
 
-- spfile 로 startup 하지 않는 걸로 확인되었으므로, pfile(init_SID.ora)로 startup 되는 것으로 확인 됨. 모든 parameter 수정은 pfile(init_SID.ora)에서 하면 됨.
 
 
1. parameter 수정
initSID.ora 에서 아래 부분을 주석(#)을 제거하고 적절한 값으로 설정 후 저장합니다.
 
log_archive_start = true
log_archive_dest_1 = "location=/oracle/oradata/ORCL/archive reopen=60"   (아카이브파일의 경로)
log_archive_format = SID_%s.arc
 
# *.log_archive_start = true -- oracle10g에서는 주석처리
*.log_archive_dest_1 = "location=/oracle/oradata/ORCL/archive reopen=60"   (아카이브파일의 경로)
*.log_archive_format = SID_arch_%t_%s_%r.arc -- oracle10g에서는 file 형식을 다음과 같이 설정
 
* 문제 : ORA-32004: obsolete and/or deprecated parameter(s) specified
* 해결 : Remove the log_archive_start parameter.
* 설명 : As of 10g the log_archive_start parameter has been deprecated. When placing the database into archive log mode the starting of the ARCH process is implictly set to auto. It is no longer possible to have a database in archive log mode but not have automatic archiving enabled.
 
2. DB shutdown
SQL> shutdown immediate
 
3. startup mount
SQL> startup mount
 
4. archive log mode 변경
SQL> alter database archivelog;
 
5. DB open
SQL> alter database open;
 
6. DB shutdown
SQL> shutdown immediate
가능하다면 이 시점에서 DB를 Shutdown 한 뒤  cold backup 을 받고 사용하세요.
 
-- DB startup 후 archive file 이 정상적으로 쌓이는지 확인
 SQL> ALTER SYSTEM SWITCH LOGFILE;
 
-- 설정한 경로에 아카이브 파일이 생성되었는지 확인한다.
SQL> !

# ls /oracle/oradata/ORCL/archive/*

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

만약, spfile 로 DB start 시...

-- DB open 상태에서

SQL> alter system set log_archive_start=true scope=spfile;
SQL> alter system set log_archive_dest='/oradata/SUN3' scope=spfile;
SQL> alter system set log_archive_format='ORA10g_%s.arc' scope=spfile;

SQL> alter system set log_archive_dest='/oradata/SUN3' scope=spfile; -- oracle10 일 때
SQL> alter system set log_archive_format='ORA10_%t_%s_%r.arc' scope=spfile; -- oracle10 일 때

SQL> shutdown immediate;

SQL> startup mount;

SQL> archive log list

SQL> alter database archivelog;

SQL> archive log list

SQL> alter database open ;

반응형
Posted by [PineTree]
ORACLE/SQL2008. 6. 17. 18:57
반응형
날짜형 데이터에 대해서
 
반응형

'ORACLE > SQL' 카테고리의 다른 글

RTRIM  (0) 2008.11.24
Oracle 날짜 관련 함수  (0) 2008.10.29
PL/SQL  (0) 2008.02.22
PL/SQL (13) - 커서(cursor)  (0) 2008.02.21
PL/SQL (19) - Collections (중첩테이블 - Nested Table)  (0) 2008.02.21
Posted by [PineTree]
ORACLE/TUNING2008. 6. 12. 19:58
반응형

jdbc나 일반 접속 program이 connection pool을 사용하지 않고, 수시로

DB에 접속하는 경우, 1초당 10회 이상의 접속 요청이 발생하면, listener의

부하로 접속속도가 현격히 떨어지는 경우가 있읍니다.

 

 이러한 경우에, listener를 하나가 아닌 여러개를 지정하여, 사용하므로써

listener에 대한 병목현상 해소와, 더불어 listener하나가 장애가 발생하더라도

다른 listener들이 처리를 해주도록 구성하는 방법입니다.

 

MUL1, MUL2, MUL3에 대한 접속이 random하게 분산되며,

하나의 listener가 장애가 나더라도, 접속에 문제가 없읍니다.

 

listener.ora
-----------

#for multi listener
MUL1 =
  (ADDRESS_LIST =
        (ADDRESS= (PROTOCOL= TCP)(Host= 169.31.24.83)
                  (Port= 1501)
                  (QUEUESIZE=100)
        )
  )

SID_LIST_MUL1 =
  (SID_LIST =
    (SID_DESC =
      (ORACLE_HOME= /oracle/app/oracle/product/10.2/db)
      (SID_NAME = ORCL2)
    )
  )

MUL2 =
  (ADDRESS_LIST =
        (ADDRESS= (PROTOCOL= TCP)(Host= 169.31.24.83)
                  (Port= 1502)
                  (QUEUESIZE=100)
        )
  )

SID_LIST_MUL2 =
  (SID_LIST =
    (SID_DESC =
      (ORACLE_HOME= /oracle/app/oracle/product/10.2/db)
      (SID_NAME = ORCL2)
    )
  )

MUL3 =
  (ADDRESS_LIST =

        (ADDRESS= (PROTOCOL= TCP)(Host= 169.31.24.83)
                  (Port= 1503)
                  (QUEUESIZE=100)
        )
  )

SID_LIST_MUL3 =
  (SID_LIST =
    (SID_DESC =
      (ORACLE_HOME= /oracle/app/oracle/product/10.2/db)
      (SID_NAME = ORCL2)
    )
  )

 

tnsnames.ora
------------

# for multi listener
MUL_TNS = (DESCRIPTION_LIST =
            (DESCRIPTION=
                (ADDRESS=(PROTOCOL=tcp)(HOST=169.31.24.83)(PORT=1501))
                (CONNECT_DATA=(SID=ORCL2))
            )
            (DESCRIPTION=
                (ADDRESS=(PROTOCOL=tcp)(HOST=169.31.24.83)(PORT=1502))
                (CONNECT_DATA=(SID=ORCL2))
            )
            (DESCRIPTION=
                (ADDRESS=(PROTOCOL=tcp)(HOST=169.31.24.83)(PORT=1503))
                (CONNECT_DATA=(SID=ORCL2))
            )
       )
반응형

'ORACLE > TUNING' 카테고리의 다른 글

오라클 hint 사용법  (2) 2008.11.24
Transaction internals  (0) 2008.11.11
옵티마이저의 비용계산 방법과 실행원리  (0) 2008.11.07
자동화 통계수집 & AWR & ASH  (0) 2008.02.01
Toad를 이용한 DB튜닝방법  (0) 2007.11.16
Posted by [PineTree]
ORACLE/PARAMETER2008. 6. 10. 23:06
반응형
[SGA튜닝]Cursor Sharing Parameter
Cursor Sharing Parameter

비슷한 조건 문을 가지는 문장에 대해 SQL문을 공유하기 위해서는 이전 강좌 처럼 바인드 변수를 이용 할 수 있습니다. 이전강좌에서 상수값을 다르게 주게되는 경우 서로 다른 SQL로 인식을 하여 하드파싱(처음보는 SQL문으로 인식하여 일일이 파싱)을 한다고 하였습니다.

Oracle 8.1.6에서 소개된 Cursor_Sharing 변수는 각각의 문장들에 대해 bind 변수로 처리하지 않게 되더라도 내부적으로 바인드 변수로 처리하여 각각의 Cursor에 대해 공유가 가능 하도록 했습니다. 실제 이 기능은 Bind 변수를 쓰는 것 보다는 빠르지 않지만 Literal SQL문(이전 강좌를 참고 하세요)을 이용하는 것보다 20~30% 성능 향상이 있는 것으로 검증 되었습니다.

1. CURSOR_SHARING = EXACT

SQL문장이 모두 동일해야만 Soft Parsing이 가능 합니다.(재사용 한다는 이야깁니다.) Where절의 상수까지도 같아야 합니다.

다음예문을 참고 하세요~
SQL>conn / as sysdba
SQL> alter system flush shared_pool;

시스템이 변경되었습니다.

SQL> conn scott/tiger
연결되었습니다.
SQL> alter session set cursor_sharing = exact;

세션이 변경되었습니다.

SQL> select dname from dept where deptno = 10;

DNAME
--------------
ACCOUNTING

SQL> select dname from dept where deptno = 40;

DNAME
--------------
OPERATIONS

SQL> conn / as sysdba
연결되었습니다.

SQL> select substr(sql_text,1,40) "SQL", count(*),
  2     sum(executions) "총 실행 횟수"
  3  from v$sqlarea
  4  where sql_text like '%dept%'
  5  group by substr(sql_text,1,40)
  6  having count(*) > 0
  7  order by 2;


SQL                                        COUNT(*)    총 실행 횟수
---------- --------------------------------------------------
select dname from dept where deptno = 10         1            1
select dname from dept where deptno = 40         1            1

파싱을 2번한 것을 알 수 있습니다…


2. CURSOR_SHARING = SIMILAR

SQL 문은 동일 해야 하며 조건에 정의된 바인드 변수의 값이 다르더라도 하나의 SQL문으로 간주하여 Soft Parsing 합니다. 이 값은 결국 다른 상수 값을 사용하더라도 하나의 SQL문으로 인식합니다, 3번의 경우(FORCE)와 같은 결과를 나타냅니다.

SQL> alter system flush shared_pool;

시스템이 변경되었습니다.

SQL> conn scott/tiger
연결되었습니다.
SQL> alter session set cursor_sharing = similar;

세션이 변경되었습니다.

SQL> select dname from dept where deptno = 10;

DNAME
--------------
ACCOUNTING

SQL> select dname from dept where deptno = 40;

DNAME
--------------
OPERATIONS

SQL> conn / as sysdba
연결되었습니다.

SQL> select substr(sql_text,1,40) "SQL", count(*),
  2     sum(executions) "총 실행 횟수"
  3  from v$sqlarea
  4  where sql_text like '%dept%'
  5  group by substr(sql_text,1,40)
  6  having count(*) > 0
  7  order by 2;

SQL                               COUNT(*)          총 실행 횟수
---------- --------------------------------------------------
select dname from dept where deptno = :"         1            2

파싱이 한번만 일어남을 알수 있다…



3. CURSOR_SHARING = FORCE

WHERE 조건절에 정의된 상수가 다르 더라도 Soft Parsiing을 합니다.

SQL> alter system flush shared_pool;

시스템이 변경되었습니다.

SQL> conn scott/tiger
연결되었습니다.
SQL> alter session set cursor_sharing = force;

세션이 변경되었습니다.

SQL> select dname from dept where deptno = 10;

DNAME
--------------
ACCOUNTING

SQL> select dname from dept where deptno = 40;

DNAME
--------------
OPERATIONS

SQL> conn / as sysdba
연결되었습니다.

SQL> select substr(sql_text,1,40) "SQL", count(*),
  2     sum(executions) "총 실행 횟수"
  3  from v$sqlarea
  4  where sql_text like '%dept%'
  5  group by substr(sql_text,1,40)
  6  having count(*) > 0
  7  order by 2;

SQL                               COUNT(*)          총 실행 횟수
---------- --------------------------------------------------
select dname from dept where deptno = :"         1            2

파싱이 한번만 일어남을 알수 있다…
반응형

'ORACLE > PARAMETER' 카테고리의 다른 글

parameter SESSION_CACHED_CURSORS  (0) 2009.12.10
ORACLE 9i Parameter 설명  (0) 2007.02.10
Posted by [PineTree]
ORACLE/RAC2008. 6. 5. 19:41
반응형
CRS 와 10G REAL APPLICATION CLUSTERS
===================================



PURPOSE
-------
이 문서는, 10g Real Application Cluster의 CRS (Cluster Ready Services)에 대한 추가적인
정보를 제공하는 것을 목적으로 한다.


Explanation
-----------
1. CRS 와 10g REAL APPLICATION CLUSTERS

CRS (Cluster Ready Services)는 10g Real Application Cluster의 새로운 기능으로,
모든 플랫폼에 대해 표준화된 클러스터 인터페이스를 제공 해 주고, 이전 버전에서는 없었던
새로운 고가용 서비스를 제공해 준다.


2. CRS 핵심 기능

CRS와 10g RAC를 설치하기 전에, CRS및 10g RAC에 대해 사전에 알아 두어야 할 사항이 있다 :

- 10g RAC를 설치를 위해서는 CRS는 사전에 설치 되고 실행되어야 한다.

- CRS는 하드웨어 공급 업체에서 제공하는 클러스터 제품 (예 : Sun Cluster,
HP Serviceguard, IBM HACMP, TruCluster, Veritas Cluster, Fujitsu Primecluster,
기타 ...) 위에서 실행 될 수도 있고, 하드웨어 공급 업체에서 제공하는 클러스터 제품
없이도 실행될 수 있다. 하드웨어 업체에서 공급하는 클러스터 제품은 9i RAC까지는 반드시
필요했지만, 10g RAC에서는 선택 사항이다.

- CRS HOME 과 ORACLE_HOME 은 반드시 다른 디렉토리에 설치 되어야 한다.

- CRS를 설치하기 전에, voting 파일 또는 OCR (Oracle Configuration Repository) 파일을
설치 할 수 있는 공유된 디렉토리 또는 디바이스가 셋업되어야 한다. voting file은 최소 20MB 정도
크기이며, OCR 파일은, 최소 100MB 크기가 되어야 한다.

- CRS 및 RAC를 설치하기 위해서는 다음과 같은 네트워크 인터페이스가 구성되어야 한다 :
- Public Interface
- Private Interface
- Virtual (Public) Interface
관련된 추가적인 정보는 <Bulletin No: 22345> 참조.

- CRS 설치 후 root.sh를 실행시키면 CRS 서비스를 구동시킨다. 만약 CRS가 정상적으로
구동되지 않는다면, Note 240001.1 참조.

- RAC 노드당 1개의 CRS 데모만 실행 가능.

- 유닉스 시스템의 경우, CRS 서비스는 /etc/inittab 상의 ‘respawn’ entry로 등록되어 있다.

- 네트워크 split이 있을 경우 (노드간 통신 두절) data corruption을 방지 하기 위해 하나
또는 그 이상의 노드에서 리부팅이 발생할 수 있다.

- CRS 서비스를 구동시키는 올바른 방법은 장비를 부팅시키는 것이다.

- 서비스를 중단시키는 올바른 방법은, 장비를 shutdown 시키거나, "init.crs stop" 명령을
실행시키는 것이다.

- CRS 데몬을 kill 시키는 것은 올바른 방법이 아니며, 오직 설치된 CRS를 제거한 경우에만
적용해도 되는 방법이다. (Bulletin No: 22343 참조) 이것은 , 플래그 파일에 불일치가 발생 할
수 있기 때문이다.

- 시스템 유지 보수를 위해서는, OS를 단일 사용자 모드 (single user mode)로 전환한다.

서비스 스택이 구동되면, ps -ef 명령으로 관련된 데몬 프로세스를 확인 할 수 있다 :

[rac1]/u01/home/beta> ps -ef | grep crs

oracle 1363 999 0 11:23:21 ? 0:00 /u01/crs_home/bin/evmlogger.bin -o /u01
oracle 999 1 0 11:21:39 ? 0:01 /u01/crs_home/bin/evmd.bin
root 1003 1 0 11:21:39 ? 0:01 /u01/crs_home/bin/crsd.bin
oracle 1002 1 0 11:21:39 ? 0:01 /u01/crs_home/bin/ocssd.bin


3. CRS DAEMON 기능

다음은 각각의 CRS 데몬 프로세스에 대한 간략한 설명이다 :

CRSD:
- HA 작업을 위한 엔진
- '애플리케이션 자원'관리
- '애플리케이션 자원'을 구동, 정지, fail over 처리
- 애플리케이션 자원 구동/정지/점검 하기 위한 별도의 'actions'을 spawn
- OCR(Oracle Configuration Repository)의 구성 프로파일 관리
- OCR의 현재 알려진 상태를 저장
- root 권한으로 실행
- 장애 발생시 자동으로 재 구동됨

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

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


4. CRS 로그 디렉토리

CRS 문제의 원인을 추적할 때는, CRS 홈 디렉토리 아래 디렉토리를 살펴보는 것이
중요하다.

$ORA_CRS_HOME/crs/log - 이 디렉토리는, CRS 자원들에 대한 트레이스를 포함하며,
CRS에 의해 식별된 가입(joining), 탈퇴(leaving), 재구동(restarting), 재배치(relocating)와
관련된 정보들이 기록된다.

$ORA_CRS_HOME/crs/init - crsd.bin 데몬과 관련된 모든 core dump가 기록된다.

$ORA_CRS_HOME/css/log - css 로그는, 재구성(reconfiguration)이나, 성공하지
못한 체크인 (missed checkin), 클라이언트의 css listener로 부터 발생한 연결(connect) 및
연결해제(disconnect)와 관련된 모든 액션을 기록한다. 때에 따라서는 로거에서는 (auth.crit)
유형의 메시지를 남기는데 이것은 오라클에 의해 리부팅이 발생할 때 남는다. 이 정보는
리부팅이 정확히 언제 발생했는지를 확인하는데 사용될 수 있다.

$ORA_CRS_HOME/css/init - 기본적으로는 ocssd로 부터의 core dump 파일을 저장하며, 프로세스의
종료가 심각한 문제로 간주되는 css 데몬의 pid 정보 또한 기록된다. css의 비정상 재 구동이 발생할
경우, core 파일은, core.<pid> 형태로 기록된다.

$ORA_CRS_HOME/evm/log - evn과 evmlogger 데몬의 로그 파일이 기록된다. CRS 또는 CSS 관련 디렉토리
처럼 디버깅 용도로 자주 사용되지는 않는다.

$ORA_CRS_HOME/evm/init - EVM의 pid와 lock 파일이 저장된다. EVM으로 부터 발생한 core 파일 또한
이 디렉토리에 저장된다. 디버깅을 위해서는 Note 1812.1 참조.

$ORA_CRS_HOME/srvm/log - OCR을 위한 로그 파일.


5. CRS 자원의 상태

RAC를 설치하고, RAC root.sh을 실행시키면 VIPCA (Virtual IP Configuration Assistant)가
구동된다. crs_stat 명령을 이용하여 모든 CRS 자원을 확인할 수 있다. 예 :

cd $ORA_CRS_HOME/bin
./crs_stat

NAME=ora.rac1.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE

NAME=ora.rac1.oem
TYPE=application
TARGET=ONLINE
STATE=ONLINE

NAME=ora.rac1.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE

NAME=ora.rac1.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE

NAME=ora.rac2.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE

NAME=ora.rac2.oem
TYPE=application
TARGET=ONLINE
STATE=ONLINE

NAME=ora.rac2.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE

NAME=ora.rac2.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE

CRS 자원을 읽기 쉬운 형태로 확인하기 위한 스크립트 또한 사용할 수 있다.
다음은 shell script의 예이다 :

--------------------------- Begin Shell Script -------------------------------

#!/usr/bin/ksh
#
# Sample 10g CRS resource status query script
#
# Description:
# - Returns formatted version of crs_stat -t, in tabular
# format, with the complete rsc names and filtering keywords
# - The argument, $RSC_KEY, is optional and if passed to the script, will
# limit the output to HA resources whose names match $RSC_KEY.
# Requirements:
# - $ORA_CRS_HOME should be set in your environment

RSC_KEY=$1
QSTAT=-u
AWK=/usr/xpg4/bin/awk # if not available use /usr/bin/awk

# Table header:echo ""
$AWK \
'BEGIN {printf "%-45s %-10s %-18s\n", "HA Resource", "Target", "State";
printf "%-45s %-10s %-18s\n", "-----------", "------", "-----";}'

# Table body:
$ORA_CRS_HOME/bin/crs_stat $QSTAT | $AWK \
'BEGIN { FS="="; state = 0; }
$1~/NAME/ && $2~/'$RSC_KEY'/ {appname = $2; state=1};
state == 0 {next;}
$1~/TARGET/ && state == 1 {apptarget = $2; state=2;}
$1~/STATE/ && state == 2 {appstate = $2; state=3;}
state == 3 {printf "%-45s %-10s %-18s\n", appname, apptarget, appstate; state=0;}'

--------------------------- End Shell Script -------------------------------

실행 결과 예시 :

[opcbsol1]/u01/home/usupport> ./crsstat
HA Resource Target State
----------- ------ -----
ora.V10SN.V10SN1.inst ONLINE ONLINE on opcbsol1
ora.V10SN.V10SN2.inst ONLINE ONLINE on opcbsol2
ora.V10SN.db ONLINE ONLINE on opcbsol2
ora.opcbsol1.ASM1.asm ONLINE ONLINE on opcbsol1
ora.opcbsol1.LISTENER_OPCBSOL1.lsnr ONLINE ONLINE on opcbsol1
ora.opcbsol1.gsd ONLINE ONLINE on opcbsol1
ora.opcbsol1.ons ONLINE ONLINE on opcbsol1
ora.opcbsol1.vip ONLINE ONLINE on opcbsol1
ora.opcbsol2.ASM2.asm ONLINE ONLINE on opcbsol2
ora.opcbsol2.LISTENER_OPCBSOL2.lsnr ONLINE ONLINE on opcbsol2
ora.opcbsol2.gsd ONLINE ONLINE on opcbsol2
ora.opcbsol2.ons ONLINE ONLINE on opcbsol2
ora.opcbsol2.vip ONLINE ONLINE on opcbsol2



6. CRS 자원 관리

자원을 관리하기 위해서는, srvctl 명령을 사용한다. 다음은 명령어 문법 예제이다.


1) CRS 자원 상태

srvctl status database -d <database-name> [-f] [-v] [-S <level>]
srvctl status instance -d <database-name> -i <instance-name> >[,<instance-name-list>]
[-f] [-v] [-S <level>]
srvctl status service -d <database-name> -s <service-name>[,<service-name-list>]
[-f] [-v] [-S <level>]
srvctl status nodeapps [-n <node-name>]
srvctl status asm -n <node_name>

예제:

데이터베이스의 상태, 모든 인스턴스와 모든 서비스
srvctl status database -d ORACLE -v
이름이 부여된 인스턴스의 상태와 현재 서비스
srvctl status instance -d ORACLE -i RAC01, RAC02 -v
이름이 부여된 서비스의 상태.
srvctl status service -d ORACLE -s ERP -v
데이터베이스 애플리케이션을 지원하는 모든 노드의 상태.
srvctl status node


2) CRS 자원의 구동

srvctl start database -d <database-name> [-o < start-options>]
[-c <connect-string> | -q]
srvctl start instance -d <database-name> -i <instance-name>
[,<instance-name-list>] [-o <start-options>] [-c <connect-string> | -q]
srvctl start service -d <database-name> [-s <service-name>[,<service-name-list>]]
[-i <instance-name>] [-o <start-options>] [-c <connect-string> | -q]
srvctl start nodeapps -n <node-name>
srvctl start asm -n <node_name> [-i <asm_inst_name>] [-o <start_options>]

예제:

데이터베이스를 모든 활성화된 인스턴스와 함께 구동.
srvctl start database -d ORACLE
이름이 부여된 인스턴스의 구동.
srvctl start instance -d ORACLE -i RAC03, RAC04
이름이 부여된 서비스의 구동. 연관된 인스턴스는 필요시 구동됨.
srvctl start service -d ORACLE -s CRM
이름이 부여된 인스턴스의 서비스의 구동.
srvctl start service -d ORACLE -s CRM -i RAC04
노드 애플리케이션의 구동.
srvctl start nodeapps -n myclust-4



3) CRS 자원의 정지

srvctl stop database -d <database-name> [-o <stop-options>]
[-c <connect-string> | -q]
srvctl stop instance -d <database-name> -i <instance-name> [,<instance-name-list>]
[-o <stop-options>][-c <connect-string> | -q]
srvctl stop service -d <database-name> [-s <service-name>[,<service-name-list>]]
[-i <instance-name>][-c <connect-string> | -q] [-f]
srvctl stop nodeapps -n <node-name>
srvctl stop asm -n <node_name> [-i <asm_inst_name>] [-o <start_options>]

예제:

데이터베이스, 모든 인스턴스, 모든 서비스를 정지 시킴.
srvctl stop database -d ORACLE
이름이 부여된 인스턴스를 정지 시킴. 그 전에 우선 존재하는 모든 서비스를 재배치 함.
srvctl stop instance -d ORACLE -i RAC03,RAC04
서비스를 정지시킴.
srvctl stop service -d ORACLE -s CRM
이름이 부여된 인스턴스의 서비스를 정지 시킴.
srvctl stop service -d ORACLE -s CRM -i RAC04
노드 애플리케이션을 정지 시킴. 인스턴스와 서비스 역시 정지됨.
srvctl stop nodeapps -n myclust-4


4) CRS 자원의 추가

srvctl add database -d <name> -o <oracle_home> [-m <domain_name>] [-p <spfile>]
[-A <name|ip>/netmask] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}]
[-s <start_options>] [-n <db_name>]
srvctl add instance -d <name> -i <inst_name> -n <node_name>
srvctl add service -d <name> -s <service_name> -r <preferred_list>
[-a <available_list>] [-P <TAF_policy>] [-u]
srvctl add nodeapps -n <node_name> -o <oracle_home>
[-A <name|ip>/netmask[/if1[|if2|...]]]
srvctl add asm -n <node_name> -i <asm_inst_name> -o <oracle_home>

OPTIONS:

-A vip range, node, and database, address specification. The format of
address string is:
[<logical host name>]/<VIP address>/<net mask>[/<host interface1[ |
host interface2 |..]>] [,] [<logical host name>]/<VIP address>/<net mask>
[/<host interface1[ | host interface2 |..]>]
-a for services, list of available instances, this list cannot include
preferred instances
-m domain name with the format “us.mydomain.com”
-n node name that will support one or more instances
-o $ORACLE_HOME to locate Oracle binaries
-P for services, TAF preconnect policy - NONE, PRECONNECT
-r for services, list of preferred instances, this list cannot include
available instances.
-s spfile name
-u updates the preferred or available list for the service to support the
specified instance. Only one instance may be specified with the -u
switch. Instances that already support the service should not be
included.

예제:

새로운 노드의 추가.
srvctl add nodeapps -n myclust-1 -o $ORACLE_HOME ?A
139.184.201.1/255.255.255.0/hme0
새로운 데이터 베이스의 추가.
srvctl add database -d ORACLE -o $ORACLE_HOME
이미 존제하는 데이터베이스에 이름이 부여된 인스턴스 추가.
srvctl add instance -d ORACLE -i RAC01 -n myclust-1
srvctl add instance -d ORACLE -i RAC02 -n myclust-2
srvctl add instance -d ORACLE -i RAC03 -n myclust-3
서비스를 이미 존재하는 데이터베이스에 추가하며, 선호되는 인스턴스를 지정 (-r)하고,
가용한 인스턴스를 지정함(-a). 가용 인스턴스에 대해서는 기본 failover를 사용함.
srvctl add service -d ORACLE -s STD_BATCH -r RAC01,RAC02 -a RAC03,RAC04
이미 존재하는 데이터베이스에 선호되는 인스턴스를 list 1, 가용한 인스턴스를 list 2에
추가함. 가용 인스턴스에 대해서는 사전연결 (preconnect) 방식을 사용함.
srvctl add service -d ORACLE -s STD_BATCH -r RAC01,RAC02 -a RAC03,RAC04 -P PRECONNECT


5) CRS RE자원의 제거

srvctl remove database -d <database-name>
srvctl remove instance -d <database-name> [-i <instance-name>]
srvctl remove service -d <database-name> -s <service-name> [-i <instance-name>]
srvctl remove nodeapps -n <node-name>

예제:

데이터베이스에 대한 애플리케이션의 제거.
srvctl remove database -d ORACLE
이미 존재하는 데이터베이스의 이름이 부여된 인스턴스에 대한 애플리케이션 제거.
srvctl remove instance -d ORACLE -i RAC03
srvctl remove instance -d ORACLE -i RAC04
서비스 제거.
srvctl remove service -d ORACLE -s STD_BATCH
인스턴스로부터 서비스 제거.
srvctl remove service -d ORACLE -s STD_BATCH -i RAC03,RAC04
노드로 부터 모든 노드 애플리케이션 제거.
srvctl remove nodeapps -n myclust-4


6) CRS 자원의 변경

srvctl modify database -d <name> [-n <db_name] [-o ><ohome>] [-m <domain>]
[-p <spfile>] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}]
[-s <start_options>]
srvctl modify instance -d <database-name> -i <instance-name> -n <node-name>
srvctl modify instance -d <name> -i <inst_name> {-s <asm_inst_name> | -r}
srvctl modify service -d <database-name> -s <service_name> -i <instance-name>
-t <instance-name> [-f]
srvctl modify service -d <database-name> -s <service_name> -i <instance-name>
-r [-f]
srvctl modify nodeapps -n <node-name> [-A <address-description> ] [-x]

OPTIONS:

-i <instance-name> -t <instance-name> the instance name (-i) is replaced by the
instance name (-t)
-i <instance-name> -r the named instance is modified to be a preferred instance
-A address-list for VIP application, at node level
-s <asm_inst_name> add or remove ASM dependency

예제:

인스턴스가 다른 노드에서 실행되도록 변경.
srvctl moinstance -d ORACLE -n myclust-4
서비스가 다른 노드에서 실행되도록 변경.
srvctl modify service -d ORACLE -s HOT_BATCH -i RAC01 -t RAC02
인스턴스가 서비스의 선호되는 인스턴스가 되도록 변경.
srvctl modify service -d ORACLE -s HOT_BATCH -i RAC02 ?r


7) SERVICE의 재 배치

srvctl relocate service -d <database-name> -s <service-name> [-i <instance-name >]-t<instance-name > [-f]

예제:

서비스를 한 인스턴스에서 다른 인스턴스로 재 배치
srvctl relocate service -d ORACLE -s CRM -i RAC04 -t RAC01



8) CRS 자원을 활성화 (자원은 이 기능을 사용할 당시 실행중이거나, 정지된 상태일 수 있음)

srvctl enable database -d <database-name>
srvctl enable instance -d <database-name> -i <instance-name> [,<instance-name-list>]
srvctl enable service -d <database-name> -s <service-name>] [, <service-name-list>] [-i <instance-name>]

예제:

데이터베이스를 활성화.
srvctl enable database -d ORACLE
이름이 부여된 인스턴스의 활성화.
srvctl enable instance -d ORACLE -i RAC01, RAC02
서비스의 활성화.
srvctl enable service -d ORACLE -s ERP,CRM
이름이 부여된 인스턴스에서 서비스의 활성화.
srvctl enable service -d ORACLE -s CRM -i RAC03


9) CRS 자원의 비활성화 (자원은 이 기능을 사용할 당시 정지된 상태 이어야만 함)

srvctl disable database -d <database-name>
srvctl disable instance -d <database-name> -i <instance-name> [,<instance-name-list>]
srvctl disable service -d <database-name> -s <service-name>] [,<service-name-list>] [-i <instance-name>]

예제:

데이터베이스를 전역(global) 비활성화 시킴.
srvctl disable database -d ORACLE
이름이 부여된 인스턴스의 비활성화.
srvctl disable instance -d ORACLE -i RAC01, RAC02
서비스를 전역(global) 비활성화.
srvctl disable service -d ORACLE -s ERP,CRM
이름이 부여된 인스턴스상의 서비스를 비 활성화.
srvctl disable service -d ORACLE -s CRM -i RAC03,RAC04



추가 정보는 Oracle10g Real Application Clusters Administrator's Guide - Appendix B 참조


Example
-------


Reference Documents
-------------------
<Note:259301.1> CRS and 10g Real Application Clusters
반응형
Posted by [PineTree]
ORACLE/INSTALL2008. 6. 3. 03:02
반응형
Installing Oracle 9iR2 64-bit on RHEL 4 x86-64 (AMD64/EM64T)

/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -m -g oinstall -G dba oracle


/etc/passwd 파일 수정 oracle홈 디렉토리 변경

mkdir -p /u0/oracle
chown -R oracle:oinstall /u0
chmod -R 775 /u0


Requirements for Installing Oracle 9iR2 64-bit on RHEL 4 x86-64 (AMD64/EM64T)
1. Install the required OS components

    * This list is based upon a "default-RPMs" installation of RHEL AS/ES 4 update
    1. When a newer "update" level is used, the RPM release numbers (such as 2.4-9.1.87) may be slightly higher
        (such as 2.4-9.1.93 or 2.4-9.2.37). This is fine so long as you are still using RHEL AS/ES 4 RPMs.
    * glibc-kernheaders-2.4-9.1.87.x86_64.rpm
    * glibc-headers-2.3.4-2.9.x86_64.rpm
    * glibc-devel-2.3.4-2.9.x86_64.rpm     << both ARCH's are required. See below.
    * glibc-devel-2.3.4-2.9.i386.rpm    << both ARCH's are required. See above.
    * compat-gcc-32-3.2.3-47.3.x86_64.rpm
    * compat-gcc-32-c++-3.2.3-47.3.x86_64.rpm
    * libstdc++-devel-3.4.3-22.1.x86_64.rpm
    * libaio-0.3.103-3.x86_64.rpm

확인하기
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep glibc-kernheaders
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep  glibc-headers              
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep  glibc-devel
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep  glibc-devel
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep  compat-gcc-32
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep  compat-gcc-32-c++
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep  libstdc++-devel
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep  libaio




2. Configure the Unix environment

The first critical environment item is related to the gcc v3.2 and g++ v3.2 RPMs that were installed above. Run these commands:

    mv /usr/bin/gcc /usr/bin/gcc.orig
    mv /usr/bin/g++ /usr/bin/g++.orig
    ln -s /usr/bin/x86_64-redhat-linux-gcc32 /usr/bin/gcc
    ln -s /usr/bin/x86_64-redhat-linux-g++32 /usr/bin/g++
   
.bash_profile
   
TMDIR=/tmp
export TMDIR
export ORACLE_BASE=/u0/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2/db_1
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/java/lib:$ORACLE_HOME/lib:$ORACLE_HOME/oracm/lib
export ORACLE_SID=dbSID   <<==SID
export ORACLE_OWNER=oracle
export LANG=C
export LD_ASSUME_KERNEL=2.4.19 
#CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/usr/local/java/bin:$PATH:.
export TNS_ADMIN=$ORACLE_HOME/network/admin
export CLASSPATH
export umask=022
export DISPLAY=ip:0.0

/etc/sysctl.conf

kernel.hostname   = magic.xxx.co.kr
kernel.domainname = magic

kernen.nem = 250 32000 100 128
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.shmall = 2097152
fs.file-max = 327679
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

/etc/profile
           if [ $USER = "oracle" ]; then
               if [ $SHELL = "/bin/ksh" ]; then
                   ulimit -p 16384
                   ulimit -n 65536
               else
                   ulimit -u 16384 -n 65536
               fi
           fi
          
/etc/security/limits.conf
          
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536

reboot 후에 install
엔진설치
9.2.0.8 패치셋 설치
db생성


반응형
Posted by [PineTree]
OS/LINUX2008. 5. 31. 18:46
반응형

The following "rpm" command can be used to distinguish between a 32-bit or 64-bit package:

    # rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep <RPM_name>

For example:

    # rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep glibc-devel

    glibc-devel-2.3.4-2.13 (i386)
반응형

'OS > LINUX' 카테고리의 다른 글

LINUX 해킹당했을 때 대처요령  (0) 2008.11.17
RPM src install  (0) 2008.06.24
linux bonding  (0) 2008.04.19
RPM Kernel 설치와 패치 방법  (0) 2008.03.12
rpm으로 커널 업그레이드 하기  (0) 2008.03.12
Posted by [PineTree]