'분류 전체보기'에 해당되는 글 89건
SQL*Loader 실행하기
Oracle/SQL

아무옵션 없이 sqlldr 명령어만 실행하면 옵션들이 나옵니다.

[oracle@localhost ~]$ sqlldr

SQL*Loader: Release 11.2.0.2.0 - Production on Thu Mar 28 04:02:10 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


Usage: SQLLDR keyword=value [,keyword=value,...]

Valid Keywords:

    userid -- ORACLE username/password
   control -- control file name
       log -- log file name
       bad -- bad file name
      data -- data file name
   discard -- discard file name
discardmax -- number of discards to allow          (Default all)
      skip -- number of logical records to skip    (Default 0)
      load -- number of logical records to load    (Default all)
    errors -- number of errors to allow            (Default 50)
      rows -- number of rows in conventional path bind array or between direct path data saves
               (Default: Conventional path 64, Direct path all)
  bindsize -- size of conventional path bind array in bytes  (Default 256000)
    silent -- suppress messages during run (header,feedback,errors,discards,partitions)
    direct -- use direct path                      (Default FALSE)
   parfile -- parameter file: name of file that contains parameter specifications
  parallel -- do parallel load                     (Default FALSE)
      file -- file to allocate extents from
skip_unusable_indexes -- disallow/allow unusable indexes or index partitions  (Default FALSE)
skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable  (Default FALSE)
commit_discontinued -- commit loaded rows when load is discontinued  (Default FALSE)
  readsize -- size of read buffer                  (Default 1048576)
external_table -- use external table for load; NOT_USED, GENERATE_ONLY, EXECUTE  (Default NOT_USED)
columnarrayrows -- number of rows for direct path column array  (Default 5000)
streamsize -- size of direct path stream buffer in bytes  (Default 256000)
multithreading -- use multithreading in direct path
 resumable -- enable or disable resumable for current session  (Default FALSE)
resumable_name -- text string to help identify resumable statement
resumable_timeout -- wait time (in seconds) for RESUMABLE  (Default 7200)
date_cache -- size (in entries) of date conversion cache  (Default 1000)
no_index_errors -- abort load on any index errors  (Default FALSE)

PLEASE NOTE: Command-line parameters may be specified either by
position or by keywords.  An example of the former case is 'sqlldr
scott/tiger foo'; an example of the latter is 'sqlldr control=foo
userid=scott/tiger'.  One may specify parameters by position before
but not after parameters specified by keywords.  For example,
'sqlldr scott/tiger control=foo logfile=log' is allowed, but
'sqlldr scott/tiger control=foo log' is not, even though the
position of the parameter 'log' is correct.
[oracle@localhost ~]$
위 값중에 errors 값이 default 50으로 되어있는데 50값보다 많은 에러가 발생하면 작업이 중단되어
더 이상 진행이 되지 않는다는 의미 이므로 옵션을 줄때 아주 충분히 값을 지정해 작업해야 합니다.

1) SQL*Loader 실습 1 - 입력할 데이터가 외부 프로그램 자료일 경우
(아래 그림의 엑셀 데이터를 오라클의 F_Animal 테이블로 입력할 경우)

엑셀을 열어서 위와 같이 데이터를 입력했습니다.

위의 엑셀 데이터를 csv(쉼표로구분) 파일로 저장합니다. 그리고 파일이름은 a1으로 하겠습니다.

저장이 완료 된 파일은 winscp나 xftp를 이용해서 oracle home의 원하는 디렉토리에 옮깁니다.
SQL> !vi /app/oracle/tran_ex/tran.cvs

15,Heracules baboon,21cm,Hysterocrates hercules,사나움,보통,나이지리아,10년이상,버로우
16,King baboon,23cm,Citharischius crawshayi,사나움,빠름,탄자니아 케냐 등,15년,버로우
~
~
vi editor를 이용해 xftp로 옮긴 tran.csv파일을 연다.
필요한것만 빼고 위처럼 만들어준 후에 저장 종료한다.

control file
SQL> !vi /app/oracle/tran_ex/tran.ctl

load data
infile "/app/oracle/tran_ex/tran.csv"
append
into table taran
fields terminated by ','
(no,name,max_size,technical_name,personality,growth,habitat,max_age,type)
~
~
위처럼 control file 만들어준후에 저장종료한다.

이제 데이터를 넣을 테이블을 만들어주면 된다.
SQL> create table taran
  2  (no number,
  3  name varchar2(50),
  4  max_size varchar2(50),
  5  technical_name varchar2(50),
  6  personality varchar2(50),
  7  growth varchar2(50),
  8  habitat varchar2(50),
  9  max_age varchar2(50),
 10  type varchar2(10)) to tablespace spider;

created table
테이블을 생성했으면 이제 데이터를 넣어주면 된다.
[oracle@dbserver ~]$
[oracle@dbserver ~]$ sqlldr scott/tiger control='/app/oracle/tran_ex/tran.ctl'

SQL*Loader: Release 11.2.0.2.0 - Production on Tue Nov 11 09:12:39 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Commit point reached - logical record count 2
[oracle@dbserver ~]$
2개의 데이터가 들어갔다.
확인해보자

SQL> select * from taran
  2  order by 1;

  NO NAME                                MAX_SIZE TECHNICAL_NAME                 PERSONALIT GROWTH     HABITAT                        MAX_AGE         TYPE
---- ----------------------------------- -------- ------------------------------ ---------- ---------- ------------------------------ --------------- ----------
   0 Mexican Golden Redrump              15cm     Brachypelma ruhnaui            온순함     느림       멕시코                         20년이상        배회성
   1 Mexican_Redknee                     13cm     Brachypelma_smithi             온순함     느림       멕시코                         15년 이상       배회성
   2 Mexican_redleg                      15cm     Brachypelma_emilia             온순함     느림       멕시코                         15년 이상       배회성
   3 Antilles Pinktoe                    14cm     Avicularia versicolor          예민함     보통       마티니크섬                     14년            나무위성
   4 Giant Mustard stripe                18cm     Grammastola aureostriatum      온순함     보통       프랑스챠코                     20년 이상       배회성
   5 Mexican Pink                        15cm     Brachypelma Klaasi             온순함     느림       멕시코                         20년 이상       배회성
   6 Mexican flame knee                  15cm     Brachypelma Klaasi             온순함     느림       멕시코                         20년 이상       배회성
   7 Mexico Fireleg                      14cm     Brachypelma Klaasi             온순함     느림       멕시코                         20년 이상       배회성
   8 Costa Rican Zebra                   12cm     Aphonopelma seemani            온순함     보통       파나마 과태말라 열대우림       20년 이상       배회성
   9 Brazillian giant white knee         22cm     Acanthoscurria geniculata      보통       빠름       브라질 아마존                  15년            배회성
  10 Mexican true red leg                13cm     Brachypelma emillia            온순함     보통       멕시코                         15년 이상       배회성
  11 Goliath birdeater                   30cm     theraphosa blondi              사나움     빠름       베네수엘라 등                  25년            배회성
  12 Peruvian Blonde                     15cm     Lasiodoredes polycuspulatus    온순함     보통       페루                           null            null
  13 Brazillian salmon pink              15cm     Lasiodoredes parahybana        공격적     빠름       브라질                         20년            배회성
  14 Amazon Spaier Pinktoe               12cm     Avicularia fasciculata         온순함     보통       브라질                         10년이상        나무위성
  15 Heracules baboon                    21cm     Hysterocrates hercules         사나움     보통       나이지리아                     10년이상        버로우
  16 Usambara Orange Baboon              15cm     Pterinochilus Murinus          엄청사나움 엄청빠름   탄자니아 케냐 등               12년            3성
  17 King baboon                         23cm     Citharischius crawshayi        사나움     빠름       탄자니아 케냐 등               15년            버로우

18 rows selected.

SQL>
데이터가 정상적으로 들어가져 있다.
(*추가적으로 실습하면서 같이 썼던 쿼리들*)
SQL> insert into taran(clumns.....) /데이터 여 넣기
  2  values(key....)
-------------------------------------------
SQL> alter table taran  /type 바꾸기
  2  modify(clumns type);
-------------------------------------------
SQL> alter table taran /컬럼추가
  2  add (clumns type)
-------------------------------------------
update taran  /업데이트. where절 조심
  2  set 변경할 컬럼 = 변경된 값
  3  where 조건
-------------------------------------------
SQL*Loader 수행 전 확인해야 할 사항들
Oracle

오라클을 설치할 때 기본적으로 설치되는 유틸리틴데

예를들어 신규 ERP 구축 프로그램에서 기존 엑셀 데이터를 오라클DB로 입력해야 할 경우 굉장히 많은 

데이터를 일일이 수동으로 입력해야 하는데 이럴 때 쓰이는 유틸리티가 SQL*Loader 입니다.


1) SQL*Loader 수행 전 확인해야 할 사항들

a. 우선 NLS_LANG 환경변수를 먼저 체크해서 서버의 Character set과 동일하게 설정하세요.

이 환경변수는 서버에게 현재 클라이언트가 입력할 데이터 유형을 알려주는 역할을 하게 된다.

만약 이 변수가 서버의 Character set과 다를 경우 내부적으로 변환이 일어나기 때문에 속도 저하 

및 데이터가 입력되다가 에러가 발생할 수도 있게 된다.


[oracle@localhost ~]$ env | grep NLS_LANG
NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
[oracle@localhost ~]$
b.ORACLE_HOME 환경변수를 확인하세요.
[oracle@localhost ~]$ env | grep ORACLE_HOME
ORACLE_HOME=/app/oracle/product/11g
[oracle@localhost ~]$
c.LD_LIBRARY_PATH 환경변수를 확인하세요(UNIX만 해당)
[oracle@localhost ~]$ env | grep LD_LIBRARY_PATH
LD_LIBRARY_PATH=/app/oracle/product/11g/lib:/lib:/usr/lib:/usr/local/lib
d.ORA_NLS33이나 ORA_NLS10 환경변수를 설정하세요.
[oracle@localhost ~]$ env | grep ORA_NLS33
ORA_NLS33=/app/oracle/product/11g/ocommon/nls/admin/data
[oracle@localhost ~]$
[oracle@localhost ~]$ env | grep ORA_NLS10
[oracle@localhost ~]$
ORA_NLSxx란 환경변수는 Character set을 저장하고 있는 .nlb 파일의 위치를 지정하는 변수입니다.
이는 오라클 버전마다 다르며 ORA_NLS32파라미터는 8버전이상부터 사용할 필요가 없고
ORA_NLS33파라미터는 10G 이상 버전부터 사용할 필요가 없습니다.
2) SQL*Loader의 구조



위 그림처럼 SQL*Loader는 OS에서 다른 응용프로그램에서 생성된 특정 규칙을 가진 텍스트 파일을 메모리에 거치지 않고
데이터파일로 직접 대량 입력하게 됩니다.
a. 입력 파일을 여러 개 가질 수 있다.
b. 입력 파일의 여러 개의 레코드를 입력 시 하나의 논리적 레코드로 가공하여 한꺼번에 입력이 가능하다.
c. 입력 필드가 고정길이나 가변길이로 가능합니다.
d. 입력 데이터가 문자, binary,날짜,packed 십진 데이터,zone 십진 데이터 등의 여러가지 형태가 가능합니다.
e. 하나의 입력 데이터로 여러 테이블에 동시 입력이 가능하다.
f. 테이블의 기존 데이터를 변경하거나 지우고 다시 입력하거나 추가하는 등의 작업도 가능합니다.
g. SQL 함수를 사용하여 입력 가능합니다.
h. Sequence를 사용하여 데이터를 순차적으로 입력할 수 있습니다.

3)SQL*Loader를 구성하는 주요 파일들 



위 그림에서 보는것과 같이 SQL*Loader에는 2개의 "입력 관련 파일과" 3개의 "출력 관련 파일"을 사용할 수 있습니다.
아래에서 각각의 파일에 대해서 자세히 살펴보겠습니다.


*Control File*
이 파일은 Oracle을 운영하기 위해 사용하는 conrol file이 아니라 SQL*Loader를 사용하기 위한 정보를 가진 control file입니다.
피 파일 안에 SL*Loader를 실행시키기 위한 각종 정보가 들어 있으며 확장자는 ctl로 합니다. 자세한건 아래와 같습니다.

--sample control file--

LOAD DATA : 새로운 데이터 입력이 시작됨을 의미합니다.
만약 작업이 중단 되었다가 다시 시작해야 할 경우 CONTINUE LOAD DATA 문장을 사용합니다.
INFILE* : 입력하고자 하는 데이터파일이 외부에 있을 경우에는 * 대신 파일이름을 적어주면 되고
CONTROL FILE 내부에 데이터가 있을 경우 *를 사용합니다.
DISCARDFILE "DISFILE.DSC' : 폐기된 파일 목록을 저장할 파일 WHERE 절의 조건에 해당하지 않아 폐기되는 파일을 기록함
필요할 경우만 생성하며 내용을 수정해서 다시 사용 가능합니다.
RELACE : 테이블의 기존 행을 모두 삭제(DELETE)한 후 다시 입력하라는 의미
INSERT : 내용이 없는 테이블에 신규 데이터를 입력할 경우 사용합니다.
TRUNCATE : 기본 내용을 모두 TRUNCATE한 후 다시 입력 하라는 의미
APPEND : 기존 내용 아래에 신규 내용을 추가하라는 의미
INTO TABLE STEST : 데이터를 입력할 테이블명을 적어줍니다.
WHEN : 입력하고자 하는 조건이 있을 경우 이곳에 적어줍니다.
FIELDS TERMINATED BY ',' : 각 필드의 구분 기호를 이곳에 적어줍니다.
OPTIONALLT ENCLOSED BY ',' : (A,B,C...) < 데이터가 있을 경우 칼럼 이름을 적어줍니다.
BEGINDATA : A,B,C ... > 실제 데이터를 적어줍니다.

위에서 본 여러가지 옵션들을 활용해서 SQL*Loader 실습을 해보겠습니다.


'Oracle' 카테고리의 다른 글

SQL* Loader로 외부 데이터 입력하기  (0) 2014.11.10
윈도우 Client로 Oracle Server 접속하기  (0) 2014.11.04
toad for oracle 설치 및 세팅  (0) 2014.11.04
OEL5 + Oracle 11g rac rawdevice  (0) 2014.09.28
oracld 11g rac asm  (0) 2014.09.26
SQL* Loader로 외부 데이터 입력하기
Oracle



오라클에서 데이터를 입력하는 방식은 2가지로 나뉩니다.
1. Convertional path
2. Direct path
Direct path는 다른말로 Bulk Load방식이라고 부르기도 합니다.

SQL Loader는 위 기능 중 Direct path 방식을 이용하여 대량의 데이터를 아주 빠른 속도로 입력할수 있는 유틸리티 중에 하나인데,
이 기능을 사용하려면 입력하는 테이블에 select 할 수 있는 권한만 있으면 가능합니다.

1) Convertonal Path Method 기본모드
데이터가 입력되거나 조회될때 항상 메모리(database buffer cache)를 통해서 작업된다.
사용자가 select를 수행하면 우선 database buffer cache에 해당 블록이 load되어 있는지를 살펴보고
있으면 바로 Fetch를 하고 없으면 data file에서 해당 block을 불러와(load) Fetch를 하게 됩니다.





또한 새로운 데이터를 insert할 경우 database buffer cache의 free list에서 빈 블록을 찾아보고 없을 경우 

data file에서 빈 블록을 database buffer cache로 이동(load)한 후 데이터를 insert하게 됩니다.


단, 데이터를 load하는 도중에 다른 사용자와 작업 승인 테이블을 공유해서 작업 할 수 있다는 장점이 있지만

속도가 Direct load보다 느리고 redo log와 undo data가 많이 발생한다는 단점이 있습니다.


convertional path방식은 자주 사용하는 블록을 메모리에 공유해서 디스크 I/O를 줄이기 위해서 도입된 방식입니다.

그래서 자주 사용하는  블록은 메모리에 저장해서 재활용하고 없을경우에만 디스크에 찾아서 메모리로 적재합니다.

하지만 만약에라도 재사용하지 않는 블록이 메모리에 남게되면 오히려 심각한 성능 저하를 발생시킬 수가 있습니다.


이럴경우 메모리에 걸쳐 사용하지 않고 직접 블록에 작업하는것이 훨씬 더 빠를건데 그래서 등장한 방법이

Direct Path 방법입니다. 아래에서 더 자세하게 살펴보겠습니다.


2)Direct path Mothod



위 그림에서 보는것처럼 메모리(database buffer cache)에 저장하지않고 바로 data file로 데이터를 입력합니다.


3) 입력원리


Convertional Path 방법에서는 위 그림처럼 High Water Mark 왼쪽에 있는 빈 블록(free block)에 데이터를 입력하게 됩니다.

*HWM*

Data file에서 사용한  블록을 표시하는 마크로써 일종의 책갈피와 같은 역할을 하게 해주는게 HWM이다.

데이터를 입력할 때는 HWM 왼쪽부터 입력하는데 왼쪽블록을 다 사용하게 되면 잠시 일시정지하고 HWM을

오른쪽으로 이동하여 빈 블록들(EXTENT)을 확보한후 다시 데이터를 입력하게 됩니다. 

이러한 과정을 반복하게 되는데 이것을 HWM Bump up 이라고 한다.


하지만 이렇게 HWM Bump Up을 하면서 데이터를 입력하게 되면 HWM Bump up을 하면서 소요되는 시간이 많이 걸리기 때문에

대량의 데이터를 입력할 때는 문제가 많은 방식입니다.


반면에 Direct path 방식은 처음부터 HWM 오른쪽에 비어있는 블록을 한꺼번에 데이터를 입력하고 commit을 한 번만 하는 방식입니다.

그래서 HWM Bump up이 별도로 필요 없고 HWM오른쪽에 입력되는 블록이라 다른 세산과 공유도 되지 않기에 undo data도 필요없습니다.

만약 roll back을 하더라도 실제 block을 그대로 두고 dictionary 정보만 roll back 하기에 roll back시간도 적게 걸립니다.


하지만, redo를 사용하지 않으므로 중간에 장애가 생길 경우 처음부터 다시 입력해야 합니다. 

속도고 빠르다는 장점이 있지만 반면에 Direct path의 단점은 data를 입력하는 작업을 할때 해당 테이블에 Exclusive Lock을 설정하기 때문에

다른 트랜잭션이 DML을 일으키지 못하도록 막게 되어 동시에 변경 작업을 할 수 없게 된다는 점입니다.


즉 Direct path로 입력하는 작업은 사용량이 적은 시간에 해야한다는 점과 해당 테이블에서 nologging 옵션이 활성화 되어있어야 합니다.

오라클에서는 대량의 데이터를 입,출력할때 Direct path방법을 지원하며, Direct path방법은 아래와 같이 분류됩니다.

          1.정렬할 때 (Temp segment에 읽고 쓰기 합니다)

          2.병렬 작업 할 때(Parallel,Append 옵션을 사용할때)

          3.Direct 옵션 사용시(export,datapump 등)

disk I/O가 오라클 성능에 괸장한 영향을 주므로 각 상황에 맞도록 방법을 선택해서 사용하여야 합니다.

'Oracle' 카테고리의 다른 글

SQL*Loader 수행 전 확인해야 할 사항들  (0) 2014.11.10
윈도우 Client로 Oracle Server 접속하기  (0) 2014.11.04
toad for oracle 설치 및 세팅  (0) 2014.11.04
OEL5 + Oracle 11g rac rawdevice  (0) 2014.09.28
oracld 11g rac asm  (0) 2014.09.26
No archive mod에서 archive mode 변경하기
Oracle/Administoration
archive mode에서 주의해야 할 몇가지가 있습니다.
1. 별도의 저장공간이 필요합니다.
archive redo log는 online redo log file을 복사하는것이기 때문에 online redo log file 외 별도의 공간이 필요합니다.

2. Archive hang 이라는 문제가 발생하여 서비스가 중단 될 수도 있습니다.
여러 가지 이유로 Archiver Process 가 Archive Redo Log File 을 저장할 수 없게 될 경우
(예를 들어 저장 공간이 가득 찰 경우나 권한이 없을 경우 등) 전체 Database 가 중단이 되는 현상이 발
생하게 됩니다. 이런 현상을 Archive Hang 이라고 합니다.

3. 관리가 까다롭습니다.
Archive Log Mode의 원리를 정확히 모를 경우 관리하기가 힘들며 관리가 잘 못될 경우
장애가 발생해도 복구를 할 수 없게 됩니다.
SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /app/oracle/data/arc2
Oldest online log sequence     17
Current log sequence           19
SQL>
현재 database open 상태에서 조회해보니 no archive log로 출력됩니다.
이제 archive redo log를 저장할 디렉토리를 만들고 archive mode로 변경해보겠습니다.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
database를 종료시키고 parameter file에 archive log file을 저장할 경로를 지정해야 합니다.
SQL> !vi $ORACLE_HOME/dbs/initykdb.ora
----------------------------------------------------
*.log_archive_dest_1='location=/app/oracle/data/arc1'
*.log_archive_dest_2='location=/app/oracle/data/arc2'
*.log_archive_format=%s_%t_%r.arc
해당 경로와 디렉토리 네임은 마음대로 지정해주셔도 됩니다
밑에 %s는 logfile의 시퀀스넘버, %t는 스레드, %r은 인카네이션(ex filename 1-1-2)이고
설정을 완료했으면 wq! 저장 종료하셔서 나오면 됩니다.
SQL> !
[oracle@dbserver ~]$ cd /app/oracle/
[oracle@dbserver oracle]$
[oracle@dbserver oracle]$ mkdir data
원하시는 경로로 가서 원하는 네임으로 디렉토리(parameter file에 설정해놨던)를 생성하시면 됩니다.
[oracle@dbserver oracle]$ cd data/
[oracle@dbserver data]$ mkdir arc1 arc2
data 디렉토리에 들어가서 arc1 arc2를 생성한다.
[oracle@dbserver data]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Tue Nov 4 17:59:37 2014

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup mount
ORACLE instance started.

Total System Global Area  422670336 bytes
Fixed Size                  1336960 bytes
Variable Size             276826496 bytes
Database Buffers          138412032 bytes
Redo Buffers                6094848 bytes
Database mounted.
SQL>
SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /app/oracle/data/arc2
Oldest online log sequence     17
Next log sequence to archive   19
Current log sequence           19
SQL>
세팅은 완료됐고 이제 mount로 database를 올려서 archive mode로 변경후 나머지 open하면 된다.
SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /app/oracle/data/arc2
Oldest online log sequence     19
Next log sequence to archive   21
Current log sequence           21
SQL>

database를 올리고 archive 스퀀스 넘버를 확인해보니 17번이다.
좀 더 제대로 된 확인을 위해 강제로 log switch를 일으켜서 다시 확인해봤다.
확인해 보니가 시퀀스번호가 19번으로 올라가있다.
vmware(10) tool 설치
Linux

vmware version 10.4

tool -> 최신


1.Vmware 카테고리에 VM메뉴를 클릭한다.

아래로 내리다보면 Cancel VMware Tools Installation이 있는데 클릭해보면

sr0 cd가 mount되면서 해당 설치 디렉토리로 이동됨


2.root계정으로 작업하길 권장합니다.

작업 할 위치에 디렉토리를 하나 만들고 tool설치 파일이 있는 곳까지 이동한다.

여기서는 /home/oracle/vmwaretool 이라는 디렉토리를 만들었고

설치파일 모든것을 vmwaretool 디렉토리로 이동시켰다.


3. 복사한 위치로 와서 VMwareToole-9.6.2-1688356.tar.gz의 압축을 푼다.

tar -zxvf VMwareToole-9.6.2-1688356.tar.gz


4. 압축을 풀었더니 vmware-tools-distrib 디렉토리가 생겼고 cd로 이동한다.

리스트를 조회해보니 설치 파일이 보인다. 실행

./vmware-install.pl


5. 오라클 계정인지 깜빡하고 다시  root  계정으로 실행시켰다

(oracle 계정으로 실행시 abort라는 에러메세지가 뜸)


6. 설치가 진행중인데 처음부터 끝까지 엔터로 넘어가면 된다.


7.설치가 정상적으로 완료된 화면

Enjoy, --  VMware team


8. 업그레이드를 안해줘도 무방하지만 내눈에 보였으므로 업그레이드까지 설치한다.

해당 OS는 (linux) 32bit이므로 vmware-tools-upgrader-32를 설치한다.

./vmware-tools-upgrader-32

설치과정은 위와 동일하다. 무한 엔터


9.설치가 완료되면 linex를 한번 shutdown 시키고 가동시킨다.


10.재부팅이 완료된 화면

위 메뉴에서 enter unity mode를 클릭하면 끝

터미널 하나 열고 클릭하길 바란다.


11. 정상적으로 바탕화면에 보이는 터미널 창


* 삭제 방법*



vmware 설치파일 디렉토리에 보면 bin이라는 디렉토리가 있는데 들어가자

그러면 uninstall이라는 실행파일이 보인다. 실행시키면 삭제된다.

./vmware-uninstall-tools.pl



윈도우 Client로 Oracle Server 접속하기
Oracle

OS : windows7 64bit

OS instance : win64bit

Oracle : OEL6 + 11g R2



1.오라클사에서 배포하는 Win64bit 11gR2 client를 다운받는다.

Os가 32bit면 32bit로 다운받아야 한다.


2. 해당 압축파일을 풀면 아래와 같은 파일들이 보이는데 셋업(Setup)을 더블클릭한다


3. OUI설치전 체크중


4. 사양에 따라 조금 오래 걸릴수도 있다

기다리다보면 아래와 같은 OUI(Oracle User Interface)창이 뜨게 된다.

맨 위인 instance client가 Default값이 되있을텐데 Admin체크후에 다음으로 넘어간다.


5.한국어를 추가해 주고 넘어간다.

어떤 언어를 선택해도 상관은 없다. 용량만 늘어날뿐


6. Oracle Base가 설치 될 경로인데 한번 체크하고 다음으로 넘어가자.


7. 여기서 에러가 뜰텐데 ignore 체크 후에 다음으로 넘어가자.

맨 아래 박스보면 예상값, 실제값이 보이는데 해당사항없음으로 표시된다. 이때 Status란에 실패나 에러가 떠도 넘어가도 되지만

예상값과 실제값이 다르게 나와 실패로 뜨면 설치해도 접속하지 못하게 된다. 문제를 해결하고 넘어가자.


8. Summary


9. 설치 진행 중


10. 문제 없이 설치가 완료되면 아래와 같이 뜨는데 Close 클릭후에 나오자.


11. 설치는 완료됐고 윈도우 실행 명령어창에 cmd라고 치고 엔터를 누른다.


12. 이 상태에서 prompt에 netca라고 치고 엔터를 누른다.

(Server에서 /app/oracle/product/11g/cib/netca 와 같다)


13. 윈도우에서 Server로 접속해야 하니까 로컬 네트 서비스만 만들면 된다.(tnsnames.ora)

해당 Client가 tnsnames.ora파일을 보고 Server를 찾아간다.


14. 처음 생성이니 추가를 누른다.


15. 서비스 이름은 접속할려는 Server의 database명을 입력해주면 된다.



16. TCP - 서버와 클라이언트간에 데이타를 신뢰성있게 전달하기 위해 만들어진 프로토콜이다.

Transmission Control Protocol 의 줄임말이다. 클릭하고 넘어가자

데이타를 전송하기 전에 데이타전송을 위한 연결을 만드는 연결지향 프로토콜이다데이타는 네트워크선로를 통해 전달되는 과정에서 손실되거나 순서가 뒤바뀌어서 전달될수 있는데, TCP는 손실을 검색해내서, 이를 교정하고 순서를 재조합할수 있도록 해준다.


17. 호스트 이름에는 접속할려는 해당 아이피를 입력해준다.

포트번호는 테스트용도로 쓰일것이니 햇갈리지 않게 표준포트를 이용한다.


18. 테스트를 해도 되지만 에러가 뜰것이다.

테스트 안해도 후에 전부 해결할수 있는 에러메세지가 뜨니 우선 테스트를 수행하지 않겠다.


19. 네트워크 서비스 이름

YKDB동일


20. 아니오


21. 다음 클릭


22. 완료를 클릭하고 빠져나오자


23. 이제 Client가 Server를 찾아갈 수 있도록 tnsnames.ora파일을 생성해줘야 한다.

아까 OUI창에서 봤던 경로를 찾아 admin까지 이동한다.

C:\app/YK/product/11.2.0/client_1/network/admin/


24. admin 폴더까지 오면 sample폴더와 sqlnet.ora 파일이 있을건데

sample폴더 안에는 sqlnet.ora , tnsnames.ora, listener.ora 3개의 샘플파일이 들어있다. 지우세요.

admin폴더에 tnsnames.ora파일을 메모장으로 생성하고 아래와 같이 써주자.

알면 그냥 쓰고 모르면 Server쪽 tnsnames.ora파일을 열어서 그대로 복사 붙여넣기 하고 저장 종료한다.

(저장할때 엑세스 거부뜨면 메모장열때 관리자 권한으로 실행해서 메모장을 열어 작업한다.)


25. 다시 cmd창을 열어서 oracle server로 접속한다.

sqlplus scott/tiger@ykdb

접속되고 다음에 접속됨이라고 떠야 제대로 접속된것이다.


26. scott 계정으로 select가 되는지 확인해보자.

접속 에러 체크

1. 접속이 되지 않는다면 로컬 네트 서비스를 제거하고 다시 netca해서 재생성한다.

2. listener가 켜져 있는지 확인한다.

3. 윈도우 client tnsnames.ora파일에 공백이나 특수문자가 있는지 확인한다.

4. 그래도 안되면 Server쪽 listener.ora, tnsnames.ora파일을 삭제한후 다시 생성한다.(대체로 여기)


'Oracle' 카테고리의 다른 글

SQL*Loader 수행 전 확인해야 할 사항들  (0) 2014.11.10
SQL* Loader로 외부 데이터 입력하기  (0) 2014.11.10
toad for oracle 설치 및 세팅  (0) 2014.11.04
OEL5 + Oracle 11g rac rawdevice  (0) 2014.09.28
oracld 11g rac asm  (0) 2014.09.26
toad for oracle 설치 및 세팅
Oracle

클라이언트 OS : win7 64bit

(Win8~8.1에서는 뭔짓을 해도 sqlnet.ora를 찾을 수 없다는 에러 메세지를 띄우니 빠르게 포기)

Server OS : OEL64bit

Oracle : 11g

Toad : 64bit

Oracle instance 64bit


1. 델 홈페이지 다운로드 메뉴에서 해당 os bit를 찾아 다운로드 받는다.(Freeware 기준)

Oracle instance도 Oracle 홈페이지에 가서 클라이언트 OS에 맞는 bit를 보고 다운받는다.

Toad를 설치할때 특수문자로 된 경로안에 설치하면 에러를 띄울 가능성이 상당히 높으므로

Program File(x86) 을 하위폴더나 64bit program file 폴더로 옮긴다.


2. 다운로드 받은 해당 Oracle instance 압축을 풀고 특수문자가 들어 가지 않는 경로로 이동시킨다.


3.Oracle instance 폴더로 들어가면 network폴더가 있을지도, 없을지도 모른다.

없으면 생성해주고 network가 포함된 경로를 복사한다. (TNS_ADMIN)


4.환경변수를 넣어줘야 하는데 내 컴퓨터 메뉴에서 속성 클릭


5. 왼쪽 고급시스템 설정 클릭


6. 맨 아래 환경변수를 클릭해준다.


7. 시스템변수쪽 새로만들기에

변수 이름 :  TNS_ADMIN

변수 값 : 위에 복사한거 붙여넣기


8. 그리고 Path 더블클릭하고

;(세미콜론) network를 뺀 나머지 instance 경로 붙여넣기

;C:\instance_11_2

여기까지가 Client 설정은 끝났고 Server쪽 listener.ora파일과 listener를 켜주면 된다.


9. 해당 경로로 가서 listener.ora파일을 vi로 열어서 편집한다.

없으면 /app/oracle/product/11g/bin/ 디렉토리에 가서 ./netca 를 실행시켜 listener 파일을 생성한다.(tns 동일)


10. listener.ora파일을 열어보면 아래와 같이 나오는데 밑에 SID_LIST_LISTENER 부분은 추가해줘야 할것이다.

위 아래가 한쌍이므로 하나의 리스너를 사용할려면 아래와 같이 설정되어 있어야한다.

기본 Port 번호는 1521 , host는 아래와 같이 아이피로 잡아줘도 되고,

호스트명으로 잡아줄려면 /etc/hosts파일을 열어 아이피옆에 호스트명을 추가해주면 된다.


11. tnsnames.ora파일을 열어보면(생성해서) 아래와 같이 나오는데 HOST와 Port번호는 listener와 동일해야 한다.

(지금은 tns가 필요가 없다)


12. 위 설정까지 마추고 Toad에 접속할려면 tns오류가 뜰건데 Server쪽에 한가지가 더 남아있다.

보통 리스너가 죽어있는데 한번 stop해주고 start해주면 오류없이 잘 올라올것이다.


lsnrctl listener stop

lsnrctl listener start

lsnrctl listener status


13. 이제 Toad에 접속해서 user /schema에 사용자명

password에 암호 넣어주고 host는 위 설정과 동일 포트도 동일

sid에 체크해주고 해당 database명을 입력후에 connect를 클릭하자.(connect 위에 네모로 표시해놨는데

instant client가 자동으로 잡혀있어야 된다. 그렇지 않으면 해당instance를 잡지 못하는 것이므로 환경변수 및

경로체크를 다시 해보고 잡힐때까지 하시면 된다.)


14. scott 계정으로 login

select name from student;


'Oracle' 카테고리의 다른 글

SQL* Loader로 외부 데이터 입력하기  (0) 2014.11.10
윈도우 Client로 Oracle Server 접속하기  (0) 2014.11.04
OEL5 + Oracle 11g rac rawdevice  (0) 2014.09.28
oracld 11g rac asm  (0) 2014.09.26
oracle 10 rac rawdevice  (0) 2014.09.26
SGA size cannot be greater than maximum shared memory segment size (0) 에러
Oracle/Administoration

해당 에러는 오라클을 인스톨하기전에

sysctl.conf 파일 맨 밑에 공유메모리 값을 넣어줬을텐데


최대 공유메모리 값보다 초과되서 출력된 에러다.


11g 기준으로 여러개 돌아다니는 공유메모리 설정값이 있을텐데

기본값으로 엔진 및 db를 install할때 참고하길 바란다.



kernel.shmall = 2097152

Linux : not in gzip format 에러 (tar~)
Linux

Linux로 설치파일을 받았는데 압축파일로 압축해제 할때 에러 대처


firefox로 설명해보겠습니다.


[root@dbserver ~]# cd /app

[root@dbserver app]# ls

firefox-30.0.tar.bz2 lost+found oracle oraInventory temp tmp


[root@dbserver app]# tar zxvf firefox-30.0.tar.bz2

gzip: stdin: not in gzip format

tar: Child returned status 1

tar: Rrror is not recoerable: exiting now


압축파일이 tar.gz 가 아니고 tar 일때는 z를 빼면 된다.

tar -zxvf "압축파일명.tar.gz


tar -xvf "압축파일명".tar(buz~)


tar.gz인가 tar인가 확인하고 입력해주면 된다.



No package oracle-rdbms-server-12cR1-reinstall available
Linux

Oracle enterprise linux 64bit

oracle 12cR1  기준


yum으로 oracle-rdbms-server-12cR1-preinstall 다운받으려고 하면

No Packege oracle-rdbms-server-12cR1-preinstall available.

이라고 뜬다.


이럴때 쓰는 방법이 직접 다운로드 받는법이 있는데 네트워크 설정이 되어 있어여 한다.


아래는 에러문구

[root@dbserver ~]# yum install oracle-rdbms-server-12cR1-preinstall -y

Loaded plugins: refresh-packagekit, rhnplugin

This system is not registered with ULN.

ULN support will be disabled.

shtting up install process

No package oracle-rdbms-server-12cR1-preinstall available.


리눅스 서버에 따라 설정이 약간씩 다르니 스냅샷정도는 찍어놔도 될듯하다.

[root@dbserver ~]# cd /etc/yum.repos.d

[root@dbserver yum.repos.d]# wget http://public.oracle.com/public-yum-ol6.repo


[root@dbserver ~]# cd /etc/yum.repos.d

[root@dbserver yum.repos.d]# wget http://public.oracle.com/public-yum-ol6.repo

Resolving public-yum.oracle.com . . .  61.111.58.32, 61.111.58.8

Connecting to public-yum.oracle.com|61.111.58.32|:80 . . . connected.

HTTP repuest sent, awaiting response . . .  200 OK

Length: 4233 (4.1K)  [Text/plain]

Saving to: "Public-yum-ol6.repo"


이하생략


Installed:

oracle-rdbms-server-12cR1-preinstall.x84_64 0:1.0-11.el6

Dependency Installed:

ksh.x86_64  0:20120801-10.el6_5.6                    libaio-devel.x86_64 0:0.3.107-10.el6

complete!

[root@dbserver yum.repos.d]#


'Linux' 카테고리의 다른 글

vmware(10) tool 설치  (0) 2014.11.04
Linux : not in gzip format 에러 (tar~)  (2) 2014.10.31
set sqlprompt 사용법  (0) 2014.10.31
리눅스 디스크 관리 및 추가  (0) 2014.10.31
리눅스(linux) LVM 디스크 관리 및 추가  (0) 2014.10.31