Village For DreamChasers....

블로그 이미지
by 건빵쥔곰
  • 13662Total hit
  • 1Today hit
  • 19Yesterday hit

'Idea Village/database'에 해당되는 글 9건

  1. 2008/05/13
    CRS 와 10G REAL APPLICATION CLUSTERS
  2. 2008/04/14
    oracle 분석함수
  3. 2008/04/03
    oracle listener 기동
  4. 2008/04/02
    Toad - 잘못된 포인터 에러
  5. 2007/11/12
    ORACLE - NLS_PARAMETER 관련 정보 출력
  6. 2007/10/25
    PLAN 뜨기
  7. 2007/10/12
    ORA-12154 (2)
  8. 2007/08/24
    오라클 간단한 Tip (1)
  9. 2007/04/01
    Toad 에서 Excel 파일 import 시키기

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

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0
오라클 분석 함수
- 일하다가 업어 온건데.. 이래저래 유용한 함수와 예시가 있다
  계산/통계/분석시 필요한 함수들...
크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0

오라클을 수동으로 start 시킬때 가끔 listener 의 기동을 빼먹는다 -ㅅ-
단순한건데 오라클 자체의 기동/중지는 자주 일어 나는일이 아니기 떄문에
까먹고 안 올리고 왜!! DB Server 에 접속이 안되는지 우울해 하기도 한다.. -_ㅠ

해당 명령어는 lsnrctl start/stop

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0
2008년 04월 2일
Toad 를 통해 xls 데이타를 import  시키다가 다음의 에러가 발생

"잘못된 포인터 오류입니다."

딱히 엑셀 자체의 문제는 아닌거 같고 데이터 문제도 없는듯 하였는데
Error Code 를 보면 Object 를 제대로 인식 못하는 Error 인듯 하여
xls 데이터를 변환하기로 결정...

xls data 를 "다른이름으로 저장(tab).txt " 으로 저장하여
txt 파일을 import 하면 정상 작동

아마 String Data 를 Number Format 혹은 알수 없는 Format 형식일때
상기의 에러가 나는 듯 하다..

뭐.. 단지 추측일 뿐이지만.. -ㅅ-;;
크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0

SELECT * FROM v$nls_parameters;

PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_LANGUAGE
AMERICAN

NLS_TERRITORY
AMERICA

NLS_CURRENCY
$


PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_ISO_CURRENCY
AMERICA

NLS_NUMERIC_CHARACTERS
.,

NLS_CALENDAR
GREGORIAN

PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_DATE_FORMAT
YYYY-MM-DD-hh:mi:ss

NLS_DATE_LANGUAGE
AMERICAN

NLS_CHARACTERSET
US7ASCII


PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_SORT
BINARY

NLS_TIME_FORMAT
HH.MI.SSXFF AM

NLS_TIMESTAMP_FORMAT
DD-MON-RR HH.MI.SSXFF AM

PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_TIME_TZ_FORMAT
HH.MI.SSXFF AM TZH:TZM

NLS_TIMESTAMP_TZ_FORMAT
DD-MON-RR HH.MI.SSXFF AM TZH:TZM

NLS_DUAL_CURRENCY
$


PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_NCHAR_CHARACTERSET
US7ASCII

NLS_COMP
BINARY


17 rows selected.

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0



토드에서는

VIEW -> OPTIONS -> ORACLE -> GENERAL

메뉴에서  TOAD_PLAN_TABLE 에서 플랜테이블 생성후

플랜 실행..

SQLPLUS 에서는 첨부 문서 참고..
(여기저기서 얻은거라.. 출처는 좀;; )
크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0
Error while trying to retrieve text for error ORA-12154

얼마전 개발서버 DB 셋팅을 하던중 ORA-12154 에러가 발생하여 온갖 삽질을 다했다 -ㅅ-

원래 이 에러는 client 에서 DB 접근시 tnsnames.ora 에 db_alias 나 tnsnames.ora 설정이

잘못되어 있을 경우 나타난다

하지만!!! DB 셋팅 한두번 해보나 -ㅅ-)!!! 그런 초보적인 실수를 할리가 !!!

그래서 책자 찾아 보고 oracle 에 문의 해본 결과

SQLNET 설정에서 문제가 있을 수도 있다는 결론 도출!!!

(문제는  방화벽이었음.. orz... 당연히 방화벽이 막혀 있으니 alias 를 제대로 해도 못읽지..)

그래서 해결책 !!!

SQLNET.ORA 파일에서 해당 접속 IP 의 접근을 허용하여 주면된다!! (물론 방화벽 제거는 기본)


# tcp.invited_nodes=(DB로컬 아이피와 접속을 허용할 ip)
tcp.invited_nodes=(192.167.3.224)
# tcp.excluded_nodes=(접속을 차단할 ip)

등의 설정을 해 주면 만사 OK!!!

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 2

요즘 이런저런 이유로 오라클의 LOCK 걸린 USER  나 TABLE 이 자주 발생해서 말썽이다 -ㅅ-
뭐.. 귀찮긴 하지만 이런 저런 쿼리 때리다 보면 공통적으로 사용하는 쿼리가 몇가지 발생해서
간단하게 정리~

1) Lock 걸린 유저의 해제

ALTER USER 'username' ACCOUNT UNLOCK;
-- ex) ALTER USER TIGER ACCOUNT UNLOCK;

2) LOCK 걸린 OBJECT  조사

case1) 단순 질의의 경우 locked_object 를 조사
- 현재 lock 이 걸린 모든 object 를 질의 할 수 있지만 효용성이 떨어짐

SELECT * FROM V$LOCKED_OBJECT

case2) LOCK 발생 USER, SQL, OBJECT

SELECT DISTINCT X.SESSION_ID, A.SERIAL#, D.OBJECTNAME, A.MACHINE, A.TERMINAL, A.PROGRAM, B.ADDRESS, B.PIECE, B.SQL_TXT
FROM V$LOCKED_OBJECT X, V$SESSION A, V$SQLTXT B, DBA_OBJECTS D
WHERE X.SESSION_ID = A.SID
AND A.SQL_ADDRESS = B.ADDRESS
ORDER BY B.ADDRESS, B.PIECE;

case3) LOCK 발생 사용자 확인  

SELECT DISTINCT X.SESSION_ID, A.SERIAL#, D.OBJECT_NAME, A.MACHINE, A.TERMINAL, A.PROGRAM, A.LOGON_TIME
FROM GV$LOCKED_OBEJCT X, GV$SESSION A, DBA_OBJECT D
WHERE X.SESSION_ID = A.SID
AND X.OBJECT_ID = D.OBJECT_ID
ORDER BY LOGON_TIME;

case4) 현재 접속자의 SQL 분석

SELECT DISTINCT A.SID, A.SERIAL#, A.MACHINE, A.TERMINAL, A.PROGRAM, B.ADDRESS, B.PIECE, B.SQL_TEXT

FROM V$SESSION A, V$SQLTEXT B

WHERE A.SQL_ADDRESS = B.ADDRESS

ORDER BY A.SID, A.SERIAL#, B.ADDRESS, B.PIECE;


3)  세션 킬

-- ALTER SYSTEM KILL SESSION 'SESSION_ID, SERIAL#';

ALTER SYSTEM KILL SESSION '51, 1234';



크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0

며칠전 Toad 에서 엑셀로 data 를 import  시키는 작업이 있었는데

어렴풋 한 기억만 가지고 할려니 잘 안되서 네**를 뒤졌다..


1. Database -> Import -> Table Data

2. Database 와 Table, Commit 방법을 선택후 Show Data 를 누르면 Execute Wizard 가 활성화 된다
역시 Execute Wizard 실행..

3. 파일종류를 선택( Text, Excel, mdb(Access) )

4. 자료형식 선택
--> Row  는 Excel 의 경우 1열에서 시작하면 말 그대로 엑셀의 1열부터 읽어 오기 때문에
컬럼 이름이 있을경우 2열부터 선택한다....
(컬럼이름과 매치될경우  Argument 에런가 뭔가가 난다... 그러니 선택 잘 해야함!!)

--> 날자 칼럼의 경우 디폴트로 해도 되긴 하지만 date 형식이 특별한 경우 맞게 잘 지정하지 않으면
동일한 에러 발셍

5. File Preview 에서 각 컬럼 맵핑
(Automapping 으로 매핑을 하면 자동을됨.. 꼭 매핑할것!! )

6. 매핑된 값을 확인하고

7. import 모드를 확인하고 클릭
-->
1. 단순 add
2. 단순 update
3. 해당 record 가 있으면 update, 없으면 add
4. 해당 record 가 있으면 delete

8. process 와 Add 된 결과를 확인!!!

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
TRACKBACK 0 AND COMMENT 0

ARTICLE CATEGORY

분류 전체보기 (35)
Stroy Village (6)
Daily Village (9)
Idea Village (20)

RECENT TRACKBACK

CALENDAR

«   2008/08   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

ARCHIVE