[oracle 10g]오라클 한글깨짐 현상 해결방법[oracle 10g]오라클 한글깨짐 현상 해결방법

Posted at 2019. 10. 22. 08:25 | Posted in DataBase
반응형

오라클(Oracle) 연결시 한글이 깨진다? 무엇때문일까요?


한글이 깨지는 경우 보통 데이터베이스와 클라이언트 문자셋(characterset)


맞지 않아 발생됩니다. 오라클 한글깨짐 현상 해결방법을 살펴보시죠.


첫번째로 문자셋을 확인 해봐야합니다.


1. Oralce(오라클) 버전 확인

 

SELECT *

  FROM PRODUCT_COMPONENT_VERSION;




 


2. 서버 설정된 characterset 확인

 SELECT PARAMETER, VALUE

  FROM NLS_DATABASE_PARAMETERS

 WHERE PARAMETER LIKE '%CHAR%'




3. 캐릭터셋 변경 


UPDATE SYS.PROPS$ SET VALUE$='AMERICAN' WHERE NAME='NLS_LANGUAGE';

UPDATE SYS.PROPS$ SET VALUE$='AMERICA' WHERE NAME='NLS_TERRITORY';

UPDATE SYS.PROPS$ SET VALUE$='KO16MSWIN949' WHERE NAME='NLS_CHARACTERSET';



위처럼 update 하는 이유는 오라클 데이터베이스의 Characterset을 호스트 시스템과 같게 


해주기위한겁니다. 


4. DB 재가동


5. 시작 → 실행  Regdit 


 ▼ 윈도우10 Regdit 경로의 NLS_LANG에서 변경 

레지스터리


오라클 한글깨짐 현상 해결방법 잘 보셨나요?

간혹 이런경우가 발생하면 위 방법대로 해보시면 해결이 될겁니다.


#oracle versions #oralce copy table #fsb oracle #oracle database 18c

반응형

'DataBase' 카테고리의 다른 글

오라클 UPDATE 후 COMMIT 한 데이터 복구방법  (0) 2019.10.16
Table 목록 가져오기  (0) 2019.10.16
오라클 export 및 import  (0) 2013.08.30
archive mode로 변경  (0) 2013.08.30
Table Import  (0) 2013.08.30

//

오라클 UPDATE 후 COMMIT 한 데이터 복구방법오라클 UPDATE 후 COMMIT 한 데이터 복구방법

Posted at 2019. 10. 16. 11:21 | Posted in DataBase
반응형

오라클 COMMAND 창에서 아래처럼 쳐보면 

sql> show parameter undo;

undo_management
undo_retention
undo_tablespace 

속성들에 대한 정보가 나오게 된다.

그 중 undo_retention 은 delete, update 후에 ROLLBACK이 아닌 COMMIT을 하였을때 부터

속성값의 초 까지는 오라클에서 임시로 저장을 하게끔 되어있다.

DEFAULT 속성값은 '900' 으로 900/60초 = 15분

COMMIT 후 15분 안에는 데이터를 복구 할 수 있게 된다.

그 시간을 늘리거나 줄이려면

'alter system set undo_retention = 1500 ; '          --1500초(25분)

이렇게 늘릴수가 있다.

지금까지는 복구를 위한 셋팅 방법이었으며, 이제는 복구 방법을 알아보자.

복구를 하는 방법은

DELETE FROM TEST_DB WHERE USER_ID = 'STORYERP';

COMMIT;


위와 같은 방법으로 USER_ID = 'STORYERP' 의 데이터를 TEST 테이블에서 삭제를 하고 COMMIT을 하였을 경우,

SELECT *
  FROM TEST_DB 
 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '15' MINUTE)
WHERE USER_ID = 'STORYERP' ;

이렇게 하면 삭제를 한지 15분안의 데이터를 찾아서 조회를 할수 있다.

복구하는 방법은 CTAS를 써서 임시테이블에 넣어서 차차 복구를 하여도 되고

DIRECT로

INSERT INTO TEST_DB 
SELECT *
  FROM TEST_DB 
 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '15' MINUTE)
WHERE USER_ID = 'STORYERP' ;


이렇게 처리를 해도 된다. 

일단 서버를 셋팅을 하게되고 중요한 운영DB일 경우에는 이와같은 방법으로

데이타의 삭제를 예방할 수 있다.

DMP 백업이나 ARCHIVE 백업등의 처리 또한 백업의 종류이기는 하나,

위와 같은 방법이 백업복구의 대처 능력이 다른 복구작업보다 더 좋다고 생각한다. 

반응형

'DataBase' 카테고리의 다른 글

[oracle 10g]오라클 한글깨짐 현상 해결방법  (0) 2019.10.22
Table 목록 가져오기  (0) 2019.10.16
오라클 export 및 import  (0) 2013.08.30
archive mode로 변경  (0) 2013.08.30
Table Import  (0) 2013.08.30

//

Table 목록 가져오기Table 목록 가져오기

Posted at 2019. 10. 16. 11:08 | Posted in DataBase
반응형

SELECT A.TABLE_NAME, B.COMMENTS

    FROM ALL_TABLES A, ALL_TAB_COMMENTS B

   WHERE A.TABLE_NAME = B.TABLE_NAME AND A.TABLE_NAME LIKE :table_name || '%'

ORDER BY A.TABLE_NAME

;


반응형

'DataBase' 카테고리의 다른 글

[oracle 10g]오라클 한글깨짐 현상 해결방법  (0) 2019.10.22
오라클 UPDATE 후 COMMIT 한 데이터 복구방법  (0) 2019.10.16
오라클 export 및 import  (0) 2013.08.30
archive mode로 변경  (0) 2013.08.30
Table Import  (0) 2013.08.30

//

오라클 export 및 import오라클 export 및 import

Posted at 2013. 8. 30. 18:16 | Posted in DataBase
반응형

참고로 2005년도에 근무하면서 작업했던 내용을 토대로 작성한 글이며 차이가 있을수 있으니


참고만 하시기 바랍니다.

 

imp system/managerisp file=20061114.dmp fromuser=kies touser=kies log=kies_0312.log

exp kies/kies file=20061114.dmp log=20061114.log eduGroupuahost0709.zip
exp kies/kies file=파일네임.dmp log=로그네임.log


exp kies/kies file=eudGroup0709_uahost.dmp log=eudGroup0709_uahost.log 

반응형

'DataBase' 카테고리의 다른 글

오라클 UPDATE 후 COMMIT 한 데이터 복구방법  (0) 2019.10.16
Table 목록 가져오기  (0) 2019.10.16
archive mode로 변경  (0) 2013.08.30
Table Import  (0) 2013.08.30
DB 재생성  (0) 2013.08.30

//

archive mode로 변경archive mode로 변경

Posted at 2013. 8. 30. 18:15 | Posted in DataBase
반응형

참고로 2005년도에 서버관리자로 근무하면서 작업한 토대로 작성한 글이며 참고만 하시기 바랍니다.

 

archive mode로 변경

1. oracle user 계정으로 로긴

2. mkdir -p /ispdata/isp_oradata/ispdev/archive (디렉토리 생성)

3. sqlplus "/as sysdba" (관리자 계정으로 로긴)

4. archive log list; (archive mode 확인)

5. shutdown immediate

6. vi /oracle/admin/ispdev/pfile/init.ora (내용추가)
###########################################
#Enabled using ALTER DATABASE ARCHIVELOG
###########################################
log_archive_start = true
log_archive_dest = /backup/isp_oradata/ispdev/archive/
log_archive_format = arch_%s.arc

7. sql>startup pfile=/oracle/product/9.2.0/dbs/initispdev.ora mount (DB마운트)

8. sql>archive log list;

9. sql>alter database archivelog;

10 sql>archie log list

11. sql>alter database open; (마운트상태의 디비 오픈)

12. sql>alter system switch logfile;

13. /ispdata/isp_oradata/ispdev/archive에 파일 생성됨


반응형

'DataBase' 카테고리의 다른 글

Table 목록 가져오기  (0) 2019.10.16
오라클 export 및 import  (0) 2013.08.30
Table Import  (0) 2013.08.30
DB 재생성  (0) 2013.08.30
Hot Backup이란?  (0) 2013.08.30

//

Table ImportTable Import

Posted at 2013. 8. 30. 18:14 | Posted in DataBase
반응형

참고로 2005년도에 제가 작업했던걸 토대로 작성 하였기때문에 참고만 하시기 바랍니다.

 

 

/oracle>sqlplus kies/kies

SQL>Drop table t_orderinfo;

 

 

/백업파일경로> Imp system/managerisp file=dmp파일명  tables=t_orderinfo fromuser=kies touser=kies ignore=y

 

 

 

Ex)  /isp_oradata/ispdev/backup> Imp system/managerisp file=0713.dmp  tables=t_orderinfo fromuser=kies touser=kies ignore=y

반응형

'DataBase' 카테고리의 다른 글

오라클 export 및 import  (0) 2013.08.30
archive mode로 변경  (0) 2013.08.30
DB 재생성  (0) 2013.08.30
Hot Backup이란?  (0) 2013.08.30
Oracle 8i + Linux + 네트워크 설치 및 설정  (0) 2013.08.30

//

DB 재생성DB 재생성

Posted at 2013. 8. 30. 18:14 | Posted in DataBase
반응형

참고로 제가 2005년도에 근무하면서 적용했던걸 토대로 적은겁니다...

 

참고만 하시기 바랍닌다.

 

 

1. DB export
      exp kies/kies file=20061027.dmp log=20061027.log buffer=20480000
  
2. tblspace.sql로 용량 체크 및 산정(kies계정으로 안되면 sys계정으로)

   SQL>@tblspace.sql

*설 명******************************************************* 
*  tblspace.sql를 통해 현재 사용중인 tablespace 구성을 확인 *
*  테이블스페이스 크기 산정시 고려한다.                     *
*  테이블스페이스 단위 크기는 가급적 5000으로 하고 add하는 방향  *
*************************************************************

3. drop user 할 것

   SQL> drop user kies cascade;

4. tablespace 삭제
 
    SQL> DROP TABLESPACE kies_db INCLUDING CONTENTS and datafiles;
    SQL> DROP TABLESPACE kies_idx INCLUDING CONTENTS and datafiles;
    SQL> DROP TABLESPACE kies_tmp INCLUDING CONTENTS and datafiles;

*설 명******************************************************* 
*  위 sql문에서 끝 and datafiles는 9i에만 적용.(8i는 안됨)  *
*************************************************************

5. tablespace 생성 (기존 용량 체크한 것을 참고한다)

   SQL> create tablespace kies_db datafile '/isp_oradata/ispdev/data/kies_db.dbf' size 5000m extent management local segment space management auto;
   SQL> create tablespace kies_idx datafile '/isp_oradata/ispdev/index/kies_idx.dbf' size 5000m extent management local segment space management auto;
   SQL> create temporary tablespace kies_tmp tempfile '/isp_oradata/ispdev/temp/kies_tmp.dbf' size 3000m extent management local uniform size 2m;
   SQL> alter tablespace kies_db add datafile '/isp_oradata/ispdev/data/kies1_db.dbf' size 5000m;
   SQL> alter tablespace kies_idx add datafile '/isp_oradata/ispdev/index/kies1_idx.dbf' size 5000m;


*설 명******************************************************************
*  미리 산정해둔 크기로 사이트 상황에 맞게 테이블스페이스 생성 및 추가 *
************************************************************************
======================= (6) end======================

6. kies user create.

   SQL> @kiesuser.sql

*************************************************
create user kies identified by kies
default tablespace kies_db
temporary tablespace kies_tmp
quota unlimited on kies_db
quota unlimited on kies_idx
profile default;

grant resource, connect, query rewrite to kies;
*************************************************

==================== (7) end ========================

7. import DB
  
   SQL>imp system/managerisp fromuser=kies touser=kies file=20051220_buf.dmp log=20051220_buf.log buffer=20480000
==================== (8) end ========================


8. kies_tmp 재생성

SQL> DROP TABLESPACE kies_tmp INCLUDING CONTENTS and datafiles;

SQL>create temporary tablespace kies_tmp tempfile '/isp_oradata/ispdev/temp/kies_tmp.dbf' size 3000m extent management local uniform size 2m;

alter user kies temporary tablespace kies_tmp;

=======================================================================
import작업 후 차지하고 있는 kies_tmp 초기화 하기 위해서 다시 생성하여 준다.
=======================================================================


9.  compile 후,  trigger , index가 깨져있는지 반드시 체크 (compile.sql은 기존 업그레이드 디렉토리에 있음)

    SQL> @compile.sql  시행횟수는 invalid 0 나올때 까지(보통 3번 정도면 )


10. ## Memory Keep ##

1. SYS User 로 sqlplus 로그인

sqlplus "/as sysdba"

   SQL> GRANT EXECUTE ON DBMS_SHARED_POOL TO KIES;

2. kies user로 sqlplus 로그인

   SQL> exec sys.dbms_shared_pool.keep('PACK_USERINFO', 'p');

3. 확인 (SYS user)

   SELECT * FROM V$DB_OBJECT_CACHE WHERE KEPT='YES' AND NAME = 'PACK_USERINFO';


11. 정상적인 테스트


반응형

'DataBase' 카테고리의 다른 글

archive mode로 변경  (0) 2013.08.30
Table Import  (0) 2013.08.30
Hot Backup이란?  (0) 2013.08.30
Oracle 8i + Linux + 네트워크 설치 및 설정  (0) 2013.08.30
솔라리스에 오라클 8.1.6 설치하기  (0) 2013.08.30

//

Hot Backup이란?Hot Backup이란?

Posted at 2013. 8. 30. 18:13 | Posted in DataBase
반응형

# HOT (ONLINE) BACKUP#

DATABASE가 running중인 상태에서 BACKUP을 받는 방법으로 특정 TABLESPACE단위로 BACKUP이 가능하며 ARCHIVE MODE로 DATABASE가 start되어야 한다.

 

Full Online Backup : 
DB가 running하고 있고 Archive log mode인 database에서 online으로 되어 있는 모든 Tablespace를 Backup 받는다.

 

Partial online Backup : 
DB가 running하고 있고 Archive log mode인 database에서 onlline으로 되어 있는 Tablespace 중에서 특정된 datafile , control file을 Backup 받는다.

 

Archive log Mode 
oracle은 순환적으로 online redo log file을 기록한다. 
첫번째 log file에 기입하고 나면 두 번째 것에 기입하기 시작하고 , 그것이 끝나면 세 번째 것에 기입하기 시작한다. 그리고 그 마지막online redo log file을 쓰고 나면 LGWR가 첫번째 log file을 덮어쓰기 시작한다 
oracle archive log mode에서 작동하고 있을 때에는 ARCH는 각각의 redo log file을 덮어쓰기 전에 그에 대한 복사본을 만든다. 이와 같이 archive된 redo log file들은 보통 device에 기록된다.


Archive log Mode 운영시 주의사항 
archive log mode로 운영 시 log_archive_dest directory밑에 archive file은 계속해서 갯수가 증가하므로 주기적으로 backup받고 OS상에서 삭제할 필요가 있다. 만약 file이 계속 쌓여서 disk상에 영역을 모두 사용한 경우 ORACLE이 더 이상 가동될 수 없는 상태까지 발생할 수 있다. 
주기적인 OS backup을 하여 보관 해야 할 archive file의 수를 줄이는 것이 바람직하며 이는 또한 복구를 필요로 하는 경우에 복구 시간을 단축할 수 있다.

 

alter tablespace ts_name begin backup ; 
tablespace에 속하는 모든 data file들은 hot-backup-in-progress라고 mark된다 
hot-backup mode에 있는 모든 data file들에 대해 checkpoint가 발생한다. 
이후의 checkpoint는 file header에 쓰여지지 않는다.

 

alter tablespace ts_name end backup ; 
begin backup checkpoint SCN을 가지는 redo record를 설정한다. 
block image의 logging이 종료되고 data file의 checkpoint가 database checkpoint까지 진행한다.


HOT backup시의 주의 사항 
- database는 archivelog mode로 운영중이어야 한다 
- begin backup과 end backup사이에 발생한 모든 archived log file도 backup되어야 한다. 
- HOT backup이 종료되면 반드시 end backup을 하여 backup이 끝난 tablespace의 모든 data 

  file을 nobackup mode로 바꾸어 주어야 한다. 
- HOT backup중에는 shutdown normal, shutdown immediate, backup중인 tablespace의

  offline은 불가능하다

반응형

'DataBase' 카테고리의 다른 글

Table Import  (0) 2013.08.30
DB 재생성  (0) 2013.08.30
Oracle 8i + Linux + 네트워크 설치 및 설정  (0) 2013.08.30
솔라리스에 오라클 8.1.6 설치하기  (0) 2013.08.30
Oracle 9i 언어변경하는 방법  (0) 2013.08.30

//

Oracle 8i + Linux + 네트워크 설치 및 설정Oracle 8i + Linux + 네트워크 설치 및 설정

Posted at 2013. 8. 30. 18:12 | Posted in DataBase
반응형

시스템 요구사항

메모리 : 최소 48MB RAM 
        - 활용의 목적이 아닐 경우 32메가도 가능

스왑영역 : 일반적으로 RAM의 3배 크기의 스왑영역이 권장.
           1GB이상의 RAM을 가진 시스템에서는 2배 크기의 스왑영역이 권장된다.

디스크 : 최소한 4개(At least four devices) : Oracle 소프트웨어 설치를 위해 
         하나, 나머지 세개는 OFA호환 데이터베이스를 생성하기 위해 사용된다.
        - 활용의 목적이 아닐 경우 한 개의 디스크라도 상관없다.
        - 활용의 목적이라면 최소 2개의 물리적 디스크 추천 (리눅스, 오라클 )
        - 다운로드받은파일과 압축을 풀고 설치할 용량으로 최소 1기가 이상이 
          필요하다.

Operating System : Linux 2.0.34
        - 오라클의 리눅스 팀은 실제 2.0.33 이상이라고 한다. 
        - 필자는 참고로 국내에서 유명한 알짜 리눅스 5.2를 사용하였으며 커널은 
        2.0.36을 사용하였다.

System Libraries : GNU C Library, version 2.0.7
        - 문서상에서는 2.0.7이상을  요구하고 있으나  오라클의 리눅스 개발팀으로
        부터의 설명으로는 실제 2.0.6이상이면 된다고한다. 



Window Manager : 어떤 X 윈도우 시스템도 가능 
        - 솔라리스에서는 X-window 상에서 관리할수 있는 svrmgrm 이 있지만 Linux 
        에서는 현재 커맨드라인모드에서만 작동하는svrmgrl 만이 존재한다. 


root 로 하여야 할일

1. 다운로드

http://technet.oracle.com에서 반드시 엔터프라이즈 버젼의 오라클 리눅스를 다운
받는다.
        - 필자의 경험상으로 오라클은 0.0.01  의 버전차이도 상당한 차이(안정성
        ,설치)가 있다. 실제로 엔터프라이즈 버전에서는 기존 install 상의 문제점
        이대다수 해결이 되었다.

2. ora 라는 임시디렉토리를 만든다
# mkdir ora

3. /usr/src 에 다운로드 받은 Oracle8051EE_Inter.tgz 파일을 옮긴다.
# cp mv /home/urstory/Oracle8051EE_Intel.tgz /usr/src/ora

3. Oracle8051EE_Intel.tgz을 /usr/src/ora에서 압축을 푼다.
tar xvfz Oracle8051EE_Intel.tgz 

/usr/src/ora 상에 다음과 같은 파일과 디렉토리가 생성되었을 것이다.
+------------------------------------------------------------------------------+
|[root@julia ora]# ls                                                          |
|DST.LST                 network/                plsql/                        |
|Oracle8051EE_Intel.tgz  nlsrtl/                 precomp/                      |
|RELDESC.TXT             ocommon/                rdbms/                        |
|bin/                    oemagent/               slax/                         |
|ctx/                    oracore/                sqlplus/                      |
|jdbc/                   orainst/                svrmgr/                       |
|lib/                    ord/                    unix.prd                      |
|mlx/                    otrace/                 unixdoc/                      |
+------------------------------------------------------------------------------+

4. Create Mount Points 
이제 오라클을 설치할 위치를 정하는  단계이다. 여기서는 /home/oracle에 오라클을 
설치하는 것으로 가정하겠다. 이 위치에 오라클을 설치할 하드디스크 파티션을 마운트
시켜야한다. 
- 대부분의 사용자가 하나의 파티션에 리눅스를 설치할 것이다. 그렇지만 만일 두개 
이상의 하드디스크 파티션을 이용할 것이라면 /etc/fstab의 내용을 적합하게 고쳐야 
한다.각 파티션의 내용을 다음에 설명하도록 하겠다. 

5. DBA group 생성 
/etc/group 파일에 dba라는 그룹을 생성한다. 
   1) linux 유틸리티를 이용한 그룹생성 - 유틸리티를 이용하여서 생성하였다 하더래
도 dba 의 gid 는 vi나 cat 명령등으로 
확인하여야 한다.
        # groupadd dba 
   2) 혹은 직접 vi edit 로 /etc/group을 편집할수도 있다.
   
+----------------------------------------------------------------------------+  
    dba:x:502:   <== 다음과 같은식으로 gid 가 중복이 안되도록 하여 삽입한다.
    gid
+----------------------------------------------------------------------------+     
      

+-----------------------------------------------------------------------------+      
여기서 잠깐 ***
- 리눅스 커널 설정 : 솔라리스의 경우에는 다음의 값들을  /etc/system 파일에서 
설정해 주어야 하지만, 설정을 하지 않아 문제가 발생한적은 없었다. 기본 커널 
상태로 놓고 인스톨하여도 무방하다. (레드헷의 디폴트 커널이든 다시 컴파일한 
커널이든) 

-오라클8 서버의 SGA 구조를 수용하기위해 리눅스 커널의 Interprocess  
Communication (IPC) 파라메터들을 설정해야한다. 시스템이 SGA를 수용하기에 충분한
  shared 메모리를 가지지 않았다면 데이터베이스를 실행할 수 없을 것이다. 

1. 시스템의 현재 shared 메모리dhk 세마포어(semaphore) 세그먼트 상황을  알기 
위해서 ipcs 명령을 사용한다.

2. 다음에 상응하는 커널 파라메터를 설정한다. 
maximum size of a shared memory segment(SHMMAX) 
maximum number of shared memory segments in the system(SHMMNI) 
maximum number of shared memory segments a user process can attatch(SHMSEG) 
maximum amount of shared memory that can be allocated system-wide(SHMMNS) 
SHMMAX*SHMSEG에 의해 허용되는 전체 shred 메모리 크기가 결정된다.

3. 아래에 설명된 세마포어와 shared 메모리 제어를 위한  파라메터들의 권장값들은
하나의 인스턴스에 최적화 되어 있으며 디폴트 initsid.ora 파일에 기반을 두고
  있다. 만일 하나이상의 인스턴스를 설치하려거나 initsid.ora 파일을 수정하려면 
  여기있는 파라메터들의 값들을 높여 주어야 한다.
Oracle사는 가능한한 이 값들을 높게  지정할 것을 권장하지만 너무 높은  값은 
오히려 컴퓨터가 부팅하지 못하는 사태를 일으키기도 한다. 

4. 공유 메모리와 세마포어 파라메터 
  1) SHMMAX = 4294967295 : 단일 공유메모리 세그먼트의 최대크기(바이트단위) 
  2) SHMMIN = 1 : 단일 공유메모리 세그먼트의 최소크기(바이트) 
  3) SHMIMNI = 100 : 공유메모리 지시자(identifiers)의 갯수 
  4) SHMSEG = 10 : 각 프로세스에 부여될 수 있는 공유메모리 세그먼드의 최대 갯수 
  5) SEMMNS = 200 : 시스템 내의 세마포어 갯수 
  6) SEMMNI = 70 : 세마포어 지시자(identifiers)의 갯수. SEMMNI은  동시에 생성될 
  수 있는 세마포어 갯수를 결정한다. 
  7) SEMMSL = PROCESSES 초기화 파라메터의 값과 같거나 크도록  : 하나의 세마포어
  안에 존재할 수 있는 세마포어들의 최대 갯수. 오라클 프로세스들의 최대 갯수와 
  같아야 한다. 

+-----------------------------------------------------------------------------+

6. 오라클 관리자 계정 생성 
adduser 혹은 useradd 로 dba그룹에 속하는 유저 oracle을 생성한다. 
Login Name : oracle 
GID : dba의 gid를 참조한다. 
HOME : ORACLE_HOME과과 같으며 /home/oralce로 하겠다. 
Shell : /bin/sh, /bin/csh/, or /bin/ksh 가능.
이 문서는 /bin/bash로 가정한다. 

  1) adduser 명령으로 oracle user를 생성한다.
     # adduser oracle
  2) vi /etc/passwd 명령을 사용하여  oracle user 의 설정값을 위에서  설명한것대
  로 바꾼다. - 항목 5에서 설명한것처럼 dba gid 와 같아야 한다.

+-----------------------------------------------------------------------------+
oracle:hkfPW0UVl2zHo:501:502::/home/oracle:/bin/bash
Login Name:password:uid :gid : home : shell
+-----------------------------------------------------------------------------+



7. oratab 파일 생성 
오라클 인스턴스에 대한 정보는 oracle  소유의 oratab 파일에 저장된다.  하지만 이
스크립트를 root로 실행해서 /var/opt/oracle 디렉토리에 oratab 파일이 생성되도록 
한다. 위의 내용중의 /var/opt/oracle 디렉토리는 솔라리스용 오라클에 해당되는 
말이다. 물론 리눅스용 오라클 설치 가이드를 보면 /var/opt/oracle디렉토리라고  
되어있어서 그대로 번역하였지만, 실제 레드헷에서 인스톨해보면 /etc/oratab이 
생성되는 것을 확인할 수 있다. 

  1) 실제 인스톨과정에서 oratab.sh을  실행하면 ORACLE_OWNER환경변수가 설정되어있
는지 묻고 있다. 따라서 ORACLE_OWNER을 다음과 같이 설정한다.
     #export ORACLE_OWNER=oracle


+-----------------------------------------------------------------------------+
- ORACLE_OWNER을 설정하지 않았을 경우 나오는 메시지
[root@julia orainst]# /usr/src/ora/orainst/oratab.sh 

*************************************************************************
Following conditions should be met to run this script successfully.
1. Needs root permission to run this script.
2. Need to set ORACLE_OWNER enviornment variable to the user who
   installs oracle product.
3. This ORACLE_OWNER should be part of group "dba".

If any of these conditions are not met, please re-run after satisfying
these conditions.
*************************************************************************
Is it OK to continue (Y/N)? [Y]: y
ORACLE_OWNER is not set.
Set and export ORACLE_OWNER, then restart oratab.sh execution.
+-----------------------------------------------------------------------------+


  2) 7-1) 과 같이 설정을 하였다면 /usr/src/ora/orainst/oratab.sh를 실행한다.
위와 같이 실행해야 /etc/oratab 파일이 생성된다. 


+-----------------------------------------------------------------------------+
- 아래와 같이 oratab file 이 /etc 아래에 oracle.dba 권한으로 설정되어 있음을 
알수가 있다.
[root@julia orainst]# ls -la /etc/oratab
-rw-rw-r--   1 oracle   dba           667 Apr 24 21:26 /etc/oratab
+-----------------------------------------------------------------------------+


+-----------------------------------------------------------------------------+
- ORACLE_OWNER을 설정한후 oratab.sh을 실행한다.
[root@julia orainst]# /usr/src/ora/orainst/oratab.sh
*************************************************************************
Following conditions should be met to run this script successfully.
1. Needs root permission to run this script.
2. Need to set ORACLE_OWNER enviornment variable to the user who
   installs oracle product.
3. This ORACLE_OWNER should be part of group "dba".

If any of these conditions are not met, please re-run after satisfying
these conditions.
*************************************************************************
Is it OK to continue (Y/N)? [Y]: y

The ORACLE_OWNER is set as:  oracle
Are these settings correct (Y/N)? [Y]: y

Checking for "oracle" user id...

Creating /etc/oratab file...
+-----------------------------------------------------------------------------+


oracle user 로 할 일.

8. ~/.bash_profile의 수정 ( sh을 사용할 경우 .profile을 수정한다. redhat 리눅스를 기준으로 
설명한다. )

+-----------------------------------------------------------------------------+
oracle 로 접속하여 다음과 같이 .profile을 만든다.
RedHat에서는 .bash_profile 이다.

export ORACLE_HOME=/home/oracle/app/oracle/product/8.0.5
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib
export ORACLE_SID=linux
export ORACLE_TERM=386
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$PATH:$ORACLE_HOME/bin
export TMPDIR=/tmp
export CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
umask 022 
위의 경우는 "root 작업 4"의 "Create Mount Points"에서 이야기한 오라클을 설치할 
경로로 /home/oracle인 경우이다.
+-----------------------------------------------------------------------------+


+-----------------------------------------------------------------------------+
각 설정에 대한 설명 

ORACLE_HOME      :     오라클을      /home/oracle에     설치하기로 하였으므로 
/home/oracle/app/oracle/product/8.0.5 로 지정된다. 

LD_LIBRARY_PATH : 오라클의 동적/정적  라이브러리의 경로를 나타내는 환경변수로 
Pro*C나 PHP등을 사용할때 중요하게 적용된다. 

ORACLE_SID : 오라클 인스턴스의 이름이다. 영문자로 3-4글자로 정해준다.필자는 
인스턴트의 이름을 linux 라고 지었다.

그 외의 환경변수는 예제에 나와 있는 데로 하면 된다. 

지역언어설정 환경변수 NLS_LANG은 모든 인스톨이 끝나고 설명하도록 하겠다.

환경변수 갱신 
위와 같이 .profile내용을 변경하였다면 
# . .bash_profile 혹은
# source .bash_profile 하여 환경변수 내용을 업데이트한다.
또는 oracle계정으로 다시 로그인한다. 
+-----------------------------------------------------------------------------+



9. 요약
     Oracle8 서버를 설치하기위해 필요한 환경설정 사항을 Oracle Installation 
     Guide의 내용 그대로 요약한 것이다.
     

+-----------------------------------------------------------------------------+     
환경설정요소 
요구사항
Linux Kernel Parameters
+-----------------------------------------------------------------------------+
SHMMAX 4294967295
     Note: 이 설정은 얼마나 많은 shared 메모리가 오라클이나 
     시스템에 의해 사용/요구되는지에 영향을 주는 것은 아니며 
     단지 최대한 허용되는 크기를 나타낼때 사용될 뿐이다. 이 
     설정은 시스템 커널 리소스에 영향을 주지 않는다.
SHMMIN 1
SHMMNI 100
SHMSEG 10
SEMMNS 200
SEMMNI 70
SEMMSL PROCESSES 초기화 파라메터와 같거나 큰값.

Mount Points (Storage Devices)
        디렉토리 구조상 동일 레벨의 최소한 4개의 마운트 포인트(mount 
        points). 소프트웨어를 위해 1개, OFA 호환 데이터 베이스를 위해 
        3개. ( 설명에서는 /home/oracle 로 하였다. )
그룹
        OSDBA role을 위해 LINUX에 group을 생성하여야 하며 보통 dba라 
        명해진다. OSOPER role은 OSDBA와 동일한 그룹에 속하게 되거나 
        다른 그룹으로 만들 수 도 있다.
계정
        Oracle system을 설치하고 업그레이드하기위한 계정. 이 계정은 
        반드시 OSDBA 그룹에 속해야 한다. (보통 oracle이란 계정을 
        만들어 사용한다.)

/usr/local/bin
        Oracle 사용자들이 오라클을 사용하기 위한 디렉토리로 디폴트는 
        /usr/local/bin이다.
oratab 파일
        Oracle instances에 대한 정보를 담고 있다.
파일 생성 권한
        umask를 022로 설정
DISPLAY
        서버에 연결할 컴퓨터의 이름과 모니터를 설정 (X에서의 설정)
LD_LIBRARY_PATH
        Oracle 제품들이 사용할 shared libraries에 대한 경로로 반드시 
        $ORACLE_HOME/lib 를 포함해야한다.
ORACLE_BAE
        필수는 아니며, OFA호환 설치를 위해 권장사항이다.
ORACLE_HOME
        Oracle이 설치될 디렉토리를 설정한다.
ORACLE_SID
        인스턴스 이름과 Oracle서버의 sid를 지정한다. 동일 기계에서 
        운영되는 Oracle 인스턴스끼리는 유일해야한다. 영문 4자 이하를 
        권장
ORACLE_TERM
        문자 모드와 Motif 모드의 오라클 제품을 위해 필요
        ORA_NLS33 US7ASCII이 아닌 문자셋으로 데이터베이스를 생성하기위해 필요
PATH
        반드시 다음을 포함해야한다.:
        $ORACLE_HOME/bin, /bin, /usr/bin, /usr/local/bin
SRCHOME
        installer를 실행하기 전에 이 환경변수가 설정되어 있지 않음을 
        확인할 것. 만일 SRCHOME이 설정되면 Installer는 설치할 
        소프트웨어를 설정된 디렉토리에서 찾는다.
TWO_TASK
        Oracle8 Server를 설치하기 전에 정의되지 않았음을 확인할 것
TMPDIR
        20MB이상의 여유공간이 있고 oracle 계정이 쓰기 권한이 있는 디렉토리. 
        디폴트는 /usr/tmp 이다.



실제적인 Oracle 의 설치

1. 인스톨러 실행
  
   1) oracle 로 로그인 한다. - 절대 root 로 인스톨로를 실행하면 안된다.
   2) oracle 설치 디렉토리로 이동
      # cd /usr/src/ora/orainst 
   3) orainst를 실행한다.
      # ./orainst 를 실행한다. 

- 화면에서 [TAB]키, 화살표키, 스페이스바를 이용하여 항목을 선택할 수 있다. 

2. 검은 배경의 설치화면이 나오면 Custom Install을 선택한다.


3. 아래와 같은 오라클에 간략한 readme를 읽고 다음으로 넘어갑니다.

4. 처음 설치하는 것이므로,  (o) Install, Upgrade, or De-Install Software을 
선택한다.

5. 새롭게 인스톨할것이므로  Install New Product - Create DB Objects을 선택한다.

5. Mount Point를 설정한다. 
  root user 로 할 일 5. 번에서 설정한것처럼 mount point를 /home/oracle 로 
  설정한다.

6. .bash_profile에서 설정한것처럼 $ORACLE_HOME 디렉토리를 설정한다.

7. ORACLE_BASE 와 ORACLE_HOME을 설정한다.

8. log 파일이 남을 위치를 설정한다.

9. Install from CD-ROM을 선택하여야 한다.

10. ORACLE_SID를 .bash_profile에서 설정한것과 같이 linux 로 선택한다.

11. NLS 의 설정 - 여기에서는 일단 ALL language를 선택한다.

12. install 이 끝이 난후 root.sh을 실행하라는 메시지가 출력된다.
   반드시 install 후에는 root.sh을 실행하여야 한다. 

13. Software Asset Manager에서 설치한 부분을 선택합니다.
   여기에서는 모든 부분을 설치한다고 가정을 합니다. 
   Pro*C 와 같은 Precompiler 는 자신이 필요없다고 생각하면 선택을 하지 않으셔도
   됩니다.

14. 13)에서 처럼 Install을 선택한후 몇가지 사항에 대하여 OK를 한후 
    OSOPER group (dba)를 설정한다.

15. 생성할 DB Object를 선택한다. -  Filesystem-Based Database을 선택한다.

16. Database Mount Points를 정한다. 
  - 설치도중에 3개의 mount points를 기입하라고 하는데 물리적으로 분리된 하드가 
  3개 존재하면 가장 좋지만 실제 PC에서는 힘든일이다. 이렇게 3곳으로 데이터를 
  분리하는 이유는 데이터베이스가 하드 디스크로의 읽기/쓰기를 하는 과정에서 
  경합을 줄이고 에러 및 문제의 발생시 자연스런 복구를 위한 것이다.
하지만 오라클 프로그램과 동일한 하드디스에 밖에 인스톨할 공간이 없다면 여기에 
모두 동일한 경로를 적어주면 된다.

필자도 오라클을 설치할 때  /home/oracle에 오라클 프로그램을 설치하고 데이터
파일을 위한 3개의 마운트 포인트도 /home/oracle로 설정하였다.

17. Character Set 설정 - US7ASCII 로 설정하였지만, 나중에 Character 은 바꿀수
있다.보통은 KO16KSC5601 로 설정한다. 


18. National Character Set 설정

19. System password 의 설정 (보통 manager 라고 password를 입력한다. )

20. sys password 의 설정 ( manager 로 password를 설정. )

21. dba password 의 설정 ( no 라고 설정한다. )

22. TNS Listener Password 의 설정

23. Configure MTS and start SQL*Net listener 설정은 no 로 한다.

24. Control files 의 위치 확인.

25. 기본적인 데이터베이스 관련 파일의 위치와 용량의 확인

26.  JDBC 셋의 선택 (default 로 선택을한다. )

27. Default tablespace for Oracle ConText Cartridge users and data dictionary 의 선택

28. CTX Temporary Tablespace을 선택한다.

29. CTX demo table을 설치할 것을 선택한후에, Oracle Document를 설치할것에 대하여 
셋팅한다. 디렉토리를 설정한후 pdf ,html , both 어떤 형식으로 설치할것인지 묻는데 
그때에는 자신이 원하는 항목중에서 한가지를 선택하면 된다.

30. 이제 인스톨이 시작되기 시작하고 그래프가 올라가기 시작한다. 하염없이 
기다리자 -_-;

31. 설치완료 화면.

32.  설치 검증 
설치가 모두 끝났다면 $ORACLE_HOME/orainst 디렉토리에 생성된 root.sh을 root 
계정으로 실행 시킨다. 

   1) root로 로그인한다. 
   2) cd $ORACLE_HOME/orainst 
   3) ./root.sh 

+-----------------------------------------------------------------------------+
[root@julia orainst]# ./root.sh

Running Oracle8 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /home/oracle/app/oracle/product/8.0.5
    ORACLE_SID=   linux
Are these settings correct (Y/N)? [Y]: y

Enter the full pathname of the local bin directory [/usr/lbin]: /usr/local/bin

Checking for "oracle" user id...
ORACLE_HOME does not match the home directory for oracle.
Okay to continue? [N]: y
Replacing existing entry for SID in /etc/oratab...
The previous entry is now in a comment.


Leaving common section of Oracle8 root.sh.
+-----------------------------------------------------------------------------+

+-----------------------------------------------------------------------------+   
- /etc/oratab 아래에 다음과 같은 내용이 추가되었다.
*:/home/oracle//app/oracle/product/8.0.5:N
linux:/home/oracle/app/oracle/product/8.0.5:N
+-----------------------------------------------------------------------------+


Oracle Database 의 구동

1. oracle user 로 login.
2. svrmgrl을 실행시킨후 database를 가동한다.

+-----------------------------------------------------------------------------+
[oracle@julia oracle]$ svrmgrl   - svrmgrl 의 실행

Oracle Server Manager Release 3.0.5.0.0 - Production

(c) Copyright 1997, Oracle Corporation.  All Rights Reserved.

Oracle8 Enterprise Edition Release 8.0.5.1.0 - Production
With the Partitioning and Objects options
PL/SQL Release 8.0.5.1.0 - Production

SVRMGR> connect internal   -  internal 접속
Connected.

SVRMGR> startup;
ORACLE instance started.
Total System Global Area                          4754704 bytes
Fixed Size                                          48400 bytes
Variable Size                                     4222976 bytes
Database Buffers                                   409600 bytes
Redo Buffers                                        73728 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode

SVRMGR> exit               - svrmgrl 의 종료
Server Manager complete.
+-----------------------------------------------------------------------------+


3. lsnrctl 명령을 이용하여 Oracle listener을 가동시킨다.
- lsnrctl start : Oracle listener 의 가동
- lsnrctl stop  : Oracle listener 의 멈춤

+-----------------------------------------------------------------------------+
[oracle@julia bin]$ lsnrctl start

LSNRCTL for Linux: Version 8.0.5.0.0 - Production on 26-APR-99 21:56:51

(c) Copyright 1997 Oracle Corporation.  All rights reserved.

Starting /home/oracle/app/oracle/product/8.0.5/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 8.0.5.0.0 - Production
System parameter file is /home/oracle/app/oracle/product/8.0.5/network/admin/
listener.ora
Log messages written to /home/oracle/app/oracle/product/8.0.5/network/log/
listener.log
Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=6)(KEY=linux))
Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=10)(KEY=PNPKEY))
Listening on: (ADDRESS=(PROTOCOL=tcp)(DEV=11)(HOST=192.168.1.1)(PORT=1521))

Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=linux))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 8.0.5.0.0 - Production
Start Date                26-APR-99 21:56:56
Uptime                    0 days 0 hr. 0 min. 1 sec
Trace Level               off
Security                  OFF
SNMP                      OFF
Listener Parameter File   /home/oracle/app/oracle/product/8.0.5/network/admin/
listener.ora
Listener Log File         /home/oracle/app/oracle/product/8.0.5/network/log/
listener.log
Services Summary...
  extproc               has 1 service handler(s)
  linux         has 1 service handler(s)
The command completed successfully
+-----------------------------------------------------------------------------+



- 오라클 리스너가 제대로 실행이 되지 않을 경우 listener.ora, tnsnames.ora을 
알맞게 편집한다. ( /home/oracle/app/oracle/product/8.0.5/network/admin 위치하여 
있다. )

다음은 tcp/ip 프로토콜을 기준으로 하여서 listener.ora를 알맞게 편집한것이다.
+-----------------------------------------------------------------------------+
#
# Installation Generated Net8 Configuration
# Version Date: Jun-17-97
# Filename: Listener.ora
# 
LISTENER =
  (ADDRESS_LIST =
        (ADDRESS= (PROTOCOL= IPC)(KEY= linux))
        (ADDRESS= (PROTOCOL= IPC)(KEY= PNPKEY))
        (ADDRESS= (PROTOCOL= TCP)(Host= 192.168.1.1)(Port= 1521))
        - database 가 설치되어 있는 ip를 적어준다.
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME= 192.168.1.1.)
- database 가 설치되어 있는 ip를 적어준다.
      (ORACLE_HOME= /home/oracle/app/oracle/product/8.0.5)
      (SID_NAME = linux)
- linux sid , 설치도중 적어준 sid를 적어준다.
    )
    (SID_DESC = 
      (SID_NAME = extproc) 
      (ORACLE_HOME = /home/oracle/app/oracle/product/8.0.5) 
      (PROGRAM = extproc) 
    ) 
  )
STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 10
TRACE_LEVEL_LISTENER = OFF
+-----------------------------------------------------------------------------+



+-----------------------------------------------------------------------------+
# 
# Installation Generated Net8 Configuration 
# Version Date: Oct-27-97 
# Filename: Tnsnames.ora 
 
extproc_connection_data = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = IPC)(KEY = linux)) 
    (CONNECT_DATA = (SID = extproc)) 
  ) 

linux =
- oracle alias
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL= TCP)(Host= 192.168.1.1)(Port= 1521))
- database 가 설치되어있는 database 의 ip
    (CONNECT_DATA = (SID = linux))
- oracle sid 
  )

linux_BEQ =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = BEQ)(PROGRAM = /home/oracle/app/oracle/product/8.0.5)
             (argv0 = oraclelinux)
             (args = '(DESCRIPTION = (LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))')
             (envs = 'ORACLE_HOME=/home/oracle/app/oracle/product/8.0.5,ORACLE_SID=linux')
    )
  )
+-----------------------------------------------------------------------------+

4. 이제 다시 lsnrctl start 명령으로 실행하여 Oracle listener을 실행한다. 이제 
sqlplus을 실행하여 접속이 되나 확인을 하자. test 용으로 id : scott  password : 
tiger 가 죄공됨을 알수 있다. 이미 설치중에 system 과 sys 의 password 는 직접 
입력하였으므로, system 혹은 sys로 접속이 가능한지 확인할수 있다.



5. sqlplus 로 접속이 확인 되었으면 이제 listener을 종료한후 database를 종료시켜
보자.

+-----------------------------------------------------------------------------+
- listener 의 종료
[oracle@julia admin]$ lsnrctl stop

LSNRCTL for Linux: Version 8.0.5.0.0 - Production on 26-APR-99 22:18:35

(c) Copyright 1997 Oracle Corporation.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=linux))
The command completed successfully
+-----------------------------------------------------------------------------+


+-----------------------------------------------------------------------------+
- oracle database 의 shutdown 
[oracle@julia admin]$ svrmgrl

Oracle Server Manager Release 3.0.5.0.0 - Production

(c) Copyright 1997, Oracle Corporation.  All Rights Reserved.

Oracle8 Enterprise Edition Release 8.0.5.1.0 - Production
With the Partitioning and Objects options
PL/SQL Release 8.0.5.1.0 - Production

SVRMGR> connect internal
Connected.
SVRMGR> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
SVRMGR> exit
Server Manager complete.
[oracle@julia admin]$ 
+-----------------------------------------------------------------------------+


Oracle SQL*Net 설정.

1. Oracle Net8 Assistant을 실행하여 Oracle 8 SQL*Net을 설정한다.
+ 버튼을 눌러 linux Oracle 에 접속가능하도록 새로운 Service Name을 추가한다.

2. Oracle Net8 에 새롭게 추가할 Service Name을 추가한다.

3. TCP/IP를 선택한다.

4. 데이터베이스가 설치된 서버의 ip(혹은 도메인)을 알맞게 적은후 Next 버튼을 
누른다.

5. Oracle SID를 설정한다. Oracle Database를 설치할 때 설정한 sid를 적어준다.

6. 이제 SQL*Net 이 잘 설정이 되어있는지 Test Service 버튼을 누른후, test( demo ) 
용으로 기본제공되어지는 Scott/tiger 로 접속test를 하여본다.

- 아래와 같이 successful 이 나온다면 SQL*Net 은 바르게 설치된 것이다.
  이제 Done 버튼을 빠져나가보면 SQL*Net 에 linux.World 라는 이름이 하나 추가된 
  것을 볼수 있을 것이다.

7. C:\orant\NET80\ADMIN\tnsnames.ora을 직접 edit 로 수정하여 SQL*Net을 설정할수 
있다. ( sid 가 linux, imap 두가지인 이유는 2개의 데이터 베이스가 설치되어있기 
때문이다. )

+-----------------------------------------------------------------------------+
# C:\ORANT\NET80\ADMIN\TNSNAMES.ORA Configuration File:C:\orant\net80\admin\
tnsnames.ora
# Generated by Oracle Net8 Assistant

LINUX.WORLD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
    (CONNECT_DATA = (SID = linux))
  )

IMAP.WORLD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(Host = 127.0.0.1)(Port = 1521))
    (CONNECT_DATA = (SID = imap))
  )

ODB.WORLD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
    (CONNECT_DATA = (SID = linux))
  )

BEQ-LOCAL.WORLD =
  (DESCRIPTION =
    (ADDRESS  =  (PROTOCOL  =  BEQ)(PROGRAM  =  oracle80)(ARGV0  =  oracle80imap)(ARGS  = 
'(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))
    (CONNECT_DATA = (SID = imap))
  )
+-----------------------------------------------------------------------------+



Oracle ODBC 설치

1. Oracle ODBC를 설치하기 위하여는 기본적으로 Oracle Installer 가 설치되어 
있어야 하며, SQL*Net 이 설정되어 있어야한다. Oracle ODBC 드라이버는 SQL*Net을
기초로 작동하기 때문이다. ( Oracle Installer 는 설치되어있는 것으로 가정한다. )

2. http://www.oracle.com에서 Oracle ODBC 드라이버를 다운로드 받는다.
- Oracle ODBC 8.0.5.3을 예제로 한다.

3. 다운로드받은 ora8053.exe를 실행한다.
- 자동으로 압축풀릴 디렉토리를 지정한다. 기본은 c:\temp 이다.
- 압축이 풀리면, C:\TEMP\orainst\win32\install\ 
                C:\TEMP\orainst\win32\odbc32\ 
  와 같은 디렉토리가 생긴다. 

4. Oracle Installer를 실행한후, From... 버튼을 누른후 C:\TEMP\orainst\win32\
install\ 에 있는 Nt.prd를 선택한후 열기 버튼을 누른다.

5. Oracle ODBC Driver 8.0.5.3.0을 선택한후 Install 버튼을 누른다. 잠시후 
인스톨이 끝이나면 exit 하여 나온다.

6. 제어판에서 ODBC 아이콘을 더블클릭한다. 

7. Add 버튼을 누른후, Oracle ODBC Driver 8.00.0500을 선택한후 마침버튼을 누른다.

8. ODBC 설정후 OK 버튼을 누른다. 이제 linux 에 설치한 Oracle 에 접속할수 있는 
Odbc 가 설치되었다.



+-----------------------------------------------------------------------------+
참고한곳 http://technet.oracle.co.kr
         http://database.sarang.net
         http://technet.oracle.com
참고한글 : 오라클 메뉴얼
+-----------------------------------------------------------------------------+

반응형

'DataBase' 카테고리의 다른 글

DB 재생성  (0) 2013.08.30
Hot Backup이란?  (0) 2013.08.30
솔라리스에 오라클 8.1.6 설치하기  (0) 2013.08.30
Oracle 9i 언어변경하는 방법  (0) 2013.08.30
Oracle - ALTER TABLE  (0) 2013.08.30

//

솔라리스에 오라클 8.1.6 설치하기솔라리스에 오라클 8.1.6 설치하기

Posted at 2013. 8. 30. 18:11 | Posted in DataBase
반응형

오라클 설치환경

- OS : 솔라리스 2.7 SPARC 버전
- RDBMS : 오라클 8.1.6 Enterprise
- System : Sun SPARC Enterprise 3500
- HDD : 18GB(최소운영용량 3GB)

* 환경설정  ( %,$ : 일반유저 Prompt, # : Root유저 Prompt )

  설치환경의 오라클유저에게 설정해야 할 사항
- 관리자툴을 이용하여 사용자(oracle)와 그룹(dba)를 등록한다.
   등록된 유저의 기본쉘은 csh로 설정한다.
   # admintool
- 오라클 유저의 홈을 만들어서 셀환경을 설정하여 준다.
   % mkdir -P /oracle/product/8.1.6
   % vi .cshrc
   .cshrc안의 내용에는 뒤쪽 참고 1의 내용 그대로를 입력하여 저장하면 된다.
- Root 유저를 이용하여 /oracle 디렉토리의 소유권을 변경한다.
   # chown  -R  oracle:dba /oracle
- /etc/system 의 내용을 참고 4와 동일하게 변경한다.
- 이제까지 변경한 내용이 적용될 수 있도록 시스템을 Reboot한다.
- Reboot된 시스템의 환경을 확인하여 /etc/system의 설정이 적용되었는지 확인한다.
   # sysdef
- Root유저를 이용하여 그래픽 모드를 변경하여 준다.
   # xhost +
- oracle유저를 이용하여 화면모드를 설정한다.(cdm-svr은 hostname)
   % setenv DISPLAY cdm-svr:0.0
- oracle유저를 이용하여 /cdrom/cdrom0에 있는 오라클을 실행한다
   % ./runInstaller


* Oracle Universal Installer
  작업의 진행상황은 각 안내문의 타이틀앞의 두개의 원을 확인하면 알 수 있다. 
  작업의 진행율에 따라 계기일식의 모양이 일어나기 때문에 완료가 되면 두개의 원이 
  완전히 겹치게 된다.

1. Welcome
  오라클의 runInstaller를 실행하면 환영인사말이 나온다.
  Next를 선택한다.

2. File Locations
  Source는 products파일이 위치한 Full Path이다. 기본으로 설정되어 있으니 그대로 적용하면 
  된다. Destination은 서버측의 오라클 홈디렉토리의 Full Path를 적용한다.
  설치자가 임의대로 사용하고자 하는 위치를 설정해 주면 된다.

예)/oracle/product/8.1.6
    Next를 선택한다.

3. UNIX Group Name
  유닉스 그룹명을 지정하는 부분이다.이전에 DB그룹명으로 등록된 이름을 적용하면 된다.

예) dba
     Next를 선택한다.

4. orainstRoot.sh 실행하기
  /tmp/OraInstall/orainstRoot.sh의 스크립트를 실행한다.
  이때 root 유저를 사용하여 다른 터미널창에서 실행하기 바란다.

예) ./tmp/OraInstall/orainstRoot.sh
     실행후 Retry를 선택한다.

5. Availcable Products
- Oracle8i 8.1.6.0.0
   오라클 8.1.6 DB 서버설치
- Oracle8i Client 8.1.6.0.0
   오라클 8.1.6 DB 클라이언트 설치
- Oracle8i Management Infrastructure 8.1.6.0.0
   오라클 8.1.6 기본 클라이언트와 서버관리툴 설치
   Oracle8i 8.1.6.0.0을 클릭한 후 Next를 선택한다.

6. Installation Types
   인스톨 유형을 선택하는 부분이다.
- Typical(966MB)
   가장 일반적인 인스톨 형태로 필요한 모든 툴을 설치한다.
- Minimal(798MB)
   최소한의 기본적인 툴만을 인스톨한다.
- Custom
   사용자가 직접 필요한 툴을 선택하여 인스톨을 결정한다.
   우리는 여기서 Custom을 선택한다.
   이유는 DB에서 한글을 사용하기 위해서이다. 위의 Typical과 minimal은 컴퓨터가 기본으로
   선택되어 있는 양식을 그대로 설치하기 때문에 언어선택부분이 기본 영문으로 설정되어 있기 
   때문에 닥스오픈에서 한글내용을 검색하면 ????로 출력이 된다.
   Custom을 선택하여 Korean을 추가선택 할 것이다.
   Custom을 클릭한 후 Next를 선택한다.

7. Available Product Components
  Oracle8i의 패키지를 추가하거나 제외시킬 수가 있다.
  여기서 우리는 먼저 Product Languages..을 선택하여 Language Selection의 작업창에서   Available Languages에서 Korean을 찾아서 더블클릭을 하면 Selected Language부분에 추가가 
  될 것이다. OK를 선택한다.
  그리고 나서 오라클 패키지에 대한 설치를 추가할 것과 제외할 것을 선정하여 선택한 다음 
  Next를 선택한다. 추가/제외를 모를경우 Next를 선택해도 무방하다.

8. Component Location
  선택할 수 있는 Component인 Java Runtime Environment 1.1.8.10을 선택하여 설치할 수 있다.
  그러나 그냥 Next를 선택한다.

9. Privileged Operating System Groups
  데이터베이스의 관리자 그룹명과 운영그룹을 설정하는 부분이다.
  이전작업에서 우리는 dba를 선택한적이 있다.
  이곳에서도 역시 두 곳 모두 dba를 입력하여 준다.

10. Create Database
  데이터베이스 생성에 대한 질문이다.
  Yes를 클릭한 후 Next를 선택한다.

11. Database Identification
  Global Database Name과 SID를 입력하는 부분이다.
  작업환경에 맞게 입력하길 바란다. 본 문서에서는 ORA8로 입력하였다.
  입력후 Next를 선택한다.

12. Database File Location
   Directory for Database Files의 저장위치를 설정한다.
   여기에서는 /oracle/data로 설정하였다. 
   입력후 Next를 선택한다.

13. Summary
  이제까지 수행한 작업에 대한 확인절차이다.
  꼭 필히 확인해야할 부분은 Product Language를 확인하여 English와 Korean이 있는지 확인을 
  하기 바란다.
  확인이 끝났다면 Install을 선택한다.

14. Install
  이제부터 선택된 패키지와 설정된 내용으로 설치가 시작된다.

15. Setup Privileges
  Step8에서 /oracle/product/8.1.6/root.sh을 root 유저가 실행한다.
  실행한 다음질문에 Yes 또는 default로 설정된 내용은 엔터를 입력하면서 수행한다. 
  완료가 되었다면 실행명령형 대화상자의 OK를 선택한다.

16. Net8 Configuration Assistant
Perform typical configuration을 클릭한 후 Next를 선택한다.

17. Oracle Database Configuration Assistant
  데이터베이스에 사용될 응용프로그램의 주요 유형 선택이다.
- OLTP(온라인 트랜잭션 프로세싱)
- 데이터 웨어하우징
- 다목적
   여기서 우리는 다목적을 클릭하고 다음을 선택한다.

18. 동시 접속 사용자
  동시에 접속할 수 있는 사용자(Process)의 대략적인 수를 입력한다.
  입력후 다음을 선택한다.

19. 데이터베이스가 기본으로 실행될 모드
- 전용서버모드(dedicate)
- 공유서버모드 
   전용서버모드를 클릭한 후 다음을 선택한다.

20. 데이터베이스용으로 구성할 옵션
   SQL Plus Help를 선택하여 도움말을 설치한다. 다음을 선택한다.

21. 데이터베이스 정보변경
    검토후 적절한 정보로 변경한다.
    꼭 문자집합변경(charecterset)은 KO16KSC5601로 문자집합과 국가별 문자집합이 
    변경되었는지 확인하여야 한다.
    초기화 파일명을 변경하고자 하면 관리가 가능한 적절한 디렉토리명으로 변경한다.
    변경이 완료되었다면 다음을 선택한다.

22. 제어파일 매개변수 변경
    제어파일에 대한 변경이다.
    관리가 용이한 적절한 디렉토리명과 기타사항을 변경/수정한 후 다음을 선택한다.
    그대로 진행하여도 무관하지만 디렉토리명이 길어지면 관리하기에 불편하다.

23. 시스템/도구/사용자/롤백/인덱스/임시
    시스템    Size   200
    도구      Size   8
    사용자    Size   8
    롤백      Size   256       Minimum   256       Initial  256        Net  256
    인덱스    Size   54
    임시      Size   128
    정보를 확인후 적절하게 변경한다.
    변경이 완료되었다면 다음을 선택한다.

24. Redo 로그 파일 매개변수
    리두 로그파일 매개변수정보 변경사항이다.
    변경후 다음을 선택한다.

25. 로그 매개변수
    정보를 검토후 적절하게 변경한다. 아카이브로그사용은 사용하지 않는다.
    변경후 다음을 선택한다.

26. SGA 매개변수
    정보를 검토후 적절하게 변경한다. 변경후 다음을 선택한다.

27. 추적 파일 디렉토리
    추적파일디렉토리에 대한 경로를 검토후 적절히 변경한다.
    변경후 다음을 선택한다.

28. 데이터베이스 생성
- 지금 데이터베이스 생성
- 쉘 스크립트에 정보 저장
   지금 데이터베이스생성을 클릭후 완료를 선택한다.

29. 데이터베이스 생성 작업 진행
    다음의 작업이 순서대로 진행된다.
- Oracle 인스턴스 생성과 시작
- 데이터베이스 파일 생성
- 데이터 딕셔너리 뷰 생성
- PL/SQL 지원 추가
- 데이터베이스 생성 완료

30. End of Installation
   오라클 8i의 설치가 완료되었습니다.
   Exit를 선택하여 설치화면을 빠져 나오면 설치작업은 종료가 된다.

* Pro C 설치하기
   먼저 실행해야 할 작업은 처음에서와 같다. 여기서는 간단하게 설명을 하였다.

1.      xhost +

2.      setenv  DISPLAY  edms1:0.0

3.      cd cdrom/cdrom0       :오라클 시디로 이동

4.      ./runInstaller

5.      Availcable Products
- Oracle8i 8.1.6.0.0
   오라클 8.1.6 DB 서버설치
- Oracle8i Client 8.1.6.0.0
   오라클 8.1.6 DB 클라이언트 설치
- Oracle8i Management Infrastructure 8.1.6.0.0
   오라클 8.1.6 기본 클라이언트와 서버관리툴 설치
   Oracle8i Client 8.1.6.0.0을 클릭한 후 Next를 선택한다.

6.Installation Types
  인스톨 유형을 선택하는 부분이다.
- Typical(966MB)
   가장 일반적인 인스톨 형태로 필요한 모든 툴을 설치한다.
- Minimal(798MB)
   최소한의 기본적인 툴만을 인스톨한다.
- Custom
   사용자가 직접 필요한 툴을 선택하여 인스톨을 결정한다.
   우리는 여기서 Custom을 선택한다.
   Custom을 선택하여 Product Languages에서 Korean을 추가선택한다.
   Custom을 클릭한 후 Next를 선택한다.

7. Available Product Components
   Oracle8i의 패키지를 추가하거나 제외시킬 수가 있다.
   여기에서 우리는 Pro C 만을 설치하면 된다.
   다행히도 스크롤을 이용하여 아래로 내려가면 선택되어진 패키지가 하나 있다.
   Oracle Programmer 아래에 Pro C 가 있다. 이것만 선택하면 된다.
   다음을 선택하면 간단하게 설치가 되면서 끝난다.
   종료를 하고 나온다.

8. TEST
   %  make  -f  Pro C Source  Target FileName
   에러 없이 컴파일이 된다면 이상없이 설치가 완료된 것이다.
   만일 make파일을 못찾는다면 .cshrc파일의 path에 /usr/css/bin 경로를 확인한다.

* 오라클 8.1.6 삭제하기
  오라클은 꼭 아래와 같이 삭제하여 주기 바란다.

  # nsr_shutdown
  # pkgrm
  설치된 패키지중에 아래의 패키지를 Ctrl + D를 누르고 번호를 입력하여 질문에 Yes
  또는 default로 설정된 값에 엔터등을 입력하면 삭제가 된다. 
  삭제해야할 패키지 - ORCLclnt
- ORCLdrvr
- ORCLman
- ORCLnode
- ORCLserv
  # rm -R /oracle
  # rm /var/opt/oracle
  # sync;sync;sync;sync;sync
  # reboot


  위와 같은 순서로 진행하고 마지막에 시스템을 재부팅하여 주면 오라클은 완전하게 삭제가 
  완료된다.

* 오라클 설치후 Old파일 삭제
  $Oracle_Home/bin/ file_name0
   파일명 마지막에 0 의 파일명을 가진 모든 파일을 삭제한다.
   불필요한 파일로 용량을 점유할 필요가 없기 때문에 삭제하기 바란다.

* 오라클 리스너 설정
  #  cd $Oracle_Home
  #  ./Root.sh           본 파일에 아래내용을 설정

   set ORACLE_HOME = /oracle/product/8.1.6
   set  ORACLE_SID = ORA816
   set path=(/bin /oracle/product/8.1.6/bin /usr/bin /usr/ucb /usr/css/bin
          /opt/SUNWspro/bin /etc .)

* 솔라리스 Hostname IP 변경후 오라클 재설정
  $Oracle_Home/network/admin/Listener.ora 파일내용에 HostName를 변경하면 된다.
  $Oracle_Home : .cshrc에 설정된 오라클 홈디렉토리를 말한다.

* 오라클 DataBase 올리기
  오라클 유저를 이용하여 작업을 수행한다.
   % svrmgrl                         오라클 서버매니저 실행
   svrmgrl> connect internal         일반적인 접속방법(권장)
            connect system/manager   system 관리자로 접속하는 방법
            connect scott/tiger      scott 일반유저로 접속하는 방법(아이디/비밀번호)
   svrmgrl> startup                  오라클 Database 시작
   svrmgrl> exit                     오라클 서버매니저 나오기
   % lsnrctl start                   리스너 시작하기(오라클 연결 데몬)

* 오라클 DataBase 내리기
   svrmgrl> connect internal
   svrmgrl> shutdown                 모든 시스템 사항을 무시하고 Database가 내려짐
   shutdown immediate       Process가 모두 내려진 다음에 Database가 내려짐
                                  (권장)
   shutdown abort           Process는 남겨두고 Database가 내려짐
   ctrl + D                 모든 시스템 사항을 무시하고 Database가 내려짐
   svrmgrl> exit                     오라클 서버매니저 나오기
   % lsnrctl stop                    리스너 종료하기(오라클 연결 데몬)



참고 1. $ORACLE_HOME/.cshrc

#@(#)cshrc 1.11 89/11/29 SMI
umask 022
set path=(/bin /oracle/product/8.1.6/bin /usr/bin /usr/ucb /usr/css/bin
/opt/SUNWspro/bin /etc .)
if ( $?prompt ) then
        set history=32
endif

alias h history
alias ll "ls -al"

setenv TERM vt100
setenv ORACLE_TERM vt100
setenv ORACLE_HOME /oracle/product/8.1.6
setenv ORACLE_SID ORA8
setenv ORACLE_OWNER oracle
setenv LANG ko
setenv NLS_LANG KOREAN_KOREA.KO16KSC5601
setenv EDITOR vi
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/opt/SUNWspro/lib:
/usr/lib:/opt/SUNWspro/SC5.0/lib:/usr/ccs/lib
set path=(/sbin /usr/bin /openwin/bin /opt/SUNWspro/SC5.0/bin 
$ORACLE_HOME/bin /usr/ccs/bin .)

* 변경된 쉘 정보 반영하기
# source .cshrc
# env                현재 적용된 환경정보 확인

참고 2. /etc/passwd

root:x:0:1:Super-User:/:/bin/csh
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
lp:x:71:8:Line Printer Admin:/usr/spool/lp:
smtp:x:0:0:Mail Daemon User:/:
uucp:x:5:5:uucp Admin:/usr/lib/uucp:
nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico
listen:x:37:4:Network Admin:/usr/net/nls:
nobody:x:60001:60001:Nobody:/:
noaccess:x:60002:60002:No Access User:/:
nobody4:x:65534:65534:SunOS 4.x Nobody:/:
oracle:x:1001:11::/oracle/product/8.1.6:/bin/csh

참고 3. /etc/group

root::0:root,oracle
other::1:
bin::2:root,bin,daemon
sys::3:root,bin,sys,adm
adm::4:root,adm,daemon,oracle
uucp::5:root,uucp
mail::6:root
tty::7:root,tty,adm
lp::8:root,lp,adm
nuucp::9:root,nuucp
staff::10:
dba::11:root,adm,daemon,oracle
daemon::12:root,daemon
sysadmin::14:
nobody::60001:
noaccess::60002:
nogroup::65534:

참고 4. /etc/system

forceload:sys/shmsys
forceload:sys/semsys
forceload:sys/msgsys

// 오라클 Shared memory 설정
set shmsys:shminfo_shmmax=251658240
set shmsys:shminfo_shmmin=50
set shmsys:shminfo_shmmni=256
set shmsys:shminfo_shmseg=256

// 오라클 세마포어 설정
set semsys:seminfo_semume=128
set semsys:seminfo_semmap=128
set semsys:seminfo_semopm=64
set semsys:seminfo_semmni=2048
set semsys:seminfo_semmni=2048
set semsys:seminfo_semmns=2048
set semsys:seminfo_semmnu=2048
set semsys:seminfo_semmsl=400      // 세마포어 실수량(Process 수)

//  for/background 작업용 프로토콜 Msg 매개변수 설정 (IPC)
set msgsys:msginfo_msgmap=512
set msgsys:msginfo_msgmax=8192
set msgsys:msginfo_msgmnb=65536
set msgsys:msginfo_msgmni=256
set msgsys:msginfo_msgssz=8
set msgsys:msginfo_msgtql=512
set msgsys:msginfo_msgseg=8192

set maxusers=1000                  // 최대유저수 정의
set max_nprocs=10000             // ps -ef 명령시 프로세스 출력수
set rlim_fd_max=1500               // 한 개의 프로세스가 관장하는 파일수
set rlim_fd_cur=128             
set pt_cnt = 128                      // /dev/ptXXXXX  가상터미널 수(Telnet)

반응형

'DataBase' 카테고리의 다른 글

Hot Backup이란?  (0) 2013.08.30
Oracle 8i + Linux + 네트워크 설치 및 설정  (0) 2013.08.30
Oracle 9i 언어변경하는 방법  (0) 2013.08.30
Oracle - ALTER TABLE  (0) 2013.08.30
Oracle CharacterSET 변경  (0) 2013.08.30

//