공부/솔라리스 2012. 1. 25. 11:19

## Oracle10g DB 수동 생성 방법 (Solaris 기준)
    절대적인 방법은 아니므로 수정해야 할 부분은 알아서 잘 체크 할 것

[!. 참고사항]

* 로 표시된 사항은 자신의 계정이나 환경에 맞게 수정하여야 함

- Oracle Database Administrator's Guide
  http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/toc.htm


[1. .profile 수정]
※ ORACLE_HOME은 자신의 환경에 맞게 수정
각각의 DBA계정 profile에서 ORACLE_SID에 따라 인스턴스가 달라지므로 주의한다. 즉, DBA계정에 인스턴스 하나만 설치

umask 022
trap  2 3

export EDITOR=vi
set -o vi
stty erase ^H

export PS1=`hostname`' $PWD>'
export WCOLL=/tmp/wcoll
export ENV=$HOME/.kshrc

#LANG=ko
LANG=C
export LANG

export PATH=/oracle10g/bin:/opt/SUNWspro/bin:/bin:/opt/bin:/usr/bin:/usr/ccs/bin:/usr/local/bin:/usr/java/bin:/usr/java/bin/jar:/opt/SUNWspro/
bin/cc:/usr/openwin/bin:$ORACLE_HOME/OPatch
export ORACLE_HOME=/oracle10g
export ORACLE_SID=ORACLE



[2. Datafile 디렉토리 설정]
※ datafile 디렉토리 아래에 .dbf 파일이 생성됨
이 디렉토리가 없으면 데이터 베이스가 생성 되지 않는다.

/ora_dbf01/oradata 생성 (각자 환경에 맞게 수정)


[3. $ORACLE_HOME/dbs/init{SID}.ora 파일 생성]
※ ORACLE_HOME은 .profile에서 지정한 디렉터리 경로임

initmyDB.ora 파일 내용

control_files              = (/ora_dbf01/oradata/control.001.dbf,
                                  /ora_dbf01/oradata/control.002.dbf,
                                  /ora_dbf01/oradata/control.003.dbf)
db_name                    = myDB

db_block_size             = 8192
pga_aggregate_target   = 256M

processes                  = 100
open_cursors              = 1024

undo_management      = AUTO

undo_tablespace          = UNDOTS01
compatible                  = 10.2.0

sga_target                   = 128M

nls_language               = AMERICAN
nls_territory                  = AMERICA

background_dump_dest    = /oracle10g/admin/myDB/bdump
core_dump_dest              = /oracle10g/admin/myDB/cdump
user_dump_dest              = /oracle10g/admin/myDB/udump
audit_file_dest                  = /oracle10g/admin/myDB/adump


[4. dump 디렉토리 생성]
※ dump 디렉토리는 반드시 만들어 주어야 함
DBA 계정으로 생성할 수 없을 경우 root 권한으로 생성하고 권한을 DBA 계정이 Write할 수 있게 바꿔 주어야 함
bdump에 log파일에 데이터 베이스를 만드는 로그가 기록됨

/oracle10g/admin/myDB/bdump
/oracle10g/admin/myDB/cdump
/oracle10g/admin/myDB/udump
/oracle10g/admin/myDB/adump


[5. db 생성 쿼리 .sql 파일 생성]
Home 디렉토리에서 xxx.sql 파일에 아래의 쿼리문을 작성하자.

CREATE DATABASE myDB
   USER SYS IDENTIFIED BY password
   USER SYSTEM IDENTIFIED BY password
   LOGFILE GROUP 1 ('/ora_dbf01/oradata/redo01.log') SIZE 10M,
                GROUP 2 ('/ora_dbf01/oradata/redo02.log') SIZE 10M,
                GROUP 3 ('/ora_dbf01/oradata/redo03.log') SIZE 10M
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 256
   MAXDATAFILES 100
   MAXINSTANCES 1
   CHARACTER SET KO16KSC5601
   NATIONAL CHARACTER SET AL16UTF16
   DATAFILE '/ora_dbf01/oradata/system01.dbf' SIZE 325M REUSE
   EXTENT MANAGEMENT LOCAL
   SYSAUX DATAFILE '/ora_dbf01/oradata/sysaux01.dbf' SIZE 325M REUSE
   DEFAULT TABLESPACE tbs_1 DATAFILE '/ora_dbf01/oradata/tbs01.dbf' size 50m
   DEFAULT TEMPORARY TABLESPACE tempts1
      TEMPFILE '/ora_dbf01/oradata/temp01.dbf'
      SIZE 20M REUSE
   UNDO TABLESPACE UNDOTS01
      DATAFILE '/ora_dbf01/oradata/undotbs01.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;



[6. Oracle Start and Run Scripts]
※ 5번에서 작성한 xxx.sql 파일을 sqlplus에서 실행 시킴
as sysdba 옵션은 db관리자로 접속하라는 의미
@는 파일을 실행
?는 $ORACLE_HOME을 의미
database 생성을 실패할 경우에는 ./oradata의 파일을 모두 삭제한 뒤
sql> shutdown abort 로 oracle을 내렸다 다시 시작하면 됨
pupbld.sql은 user profile에 관련된 sql이고 유저 profile이 생성되지 않았다는 오류가 날 경우에는 system 계정으로 (dba권한 없이) 접속해서 실행하자.

$HOME> sqlplus / as sysdba

sql> startup nomount
sql> @xxx.sql
sql> show parameter background
sql> @?/rdbms/admin/catalog.sql
sql> @?/rdbms/admin/catproc.sql
sql> @?/sqlplus/admin/pupbld.sql
sql> EXIT


!!! 참고사항
database 생성 쿼리 중 UNDO TABLESPACE 이름과 initmyDB.ora 파일의 undo_tablespace의 설정값이 동일해야 create database 줄에서 오류가 나지 않음


[7. 외부 접속을 위한 listener.ora 파일 설정]
※ 
http://download.oracle.com/docs/cd/B19306_01/network.102/b14213/listener.htm#sthref769

/oracle10g/network/admin/listener.ora 파일내용

#
# Listener Name (Listener Identification)
# Default Port 1521
#

LISTENER1=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=***.***.***.***)(PORT=1521))
    )
  )
SID_LIST_LISTENER1=
  (SID_LIST=
    (SID_DESC=
      (ORACLE_HOME=/oracle10g)
      (SID_NAME=ORACLE)
    )
  )
 

[8. Listener 실행 및 서비스 포트 확인]

> lsnrctl start LISTENER1
> netstat -an |grep LISTEN |grep 1591


[9. 클라이언트에서 원격 db접속을 위한 tnsnames.ora 파일 설정(클라이언트만 해당)]
http://download.oracle.com/docs/cd/B19306_01/network.102/b14213/tnsnames.htm#sthref649
!!! tnsnames.ora는 클라이언트 PC에서 원격 DB 서버에 접속하기 위해 설정하는 프로파일

ORACLE =
 (DESCRIPTION=
   (ADDRESS=(PROTOCOL=tcp)(HOST=***.***.***.***)(PORT=1521))
   (CONNECT_DATA=
     (SERVICE_NAME=myDB)
   )
 )

 

[10. 클라이언트에서 원격 접속]

>sqlplus /nolog

SQL*Plus: Release 10.2.0.2.0 - Production on Fri Apr 10 16:46:34 2009

Copyright (c) 1982, 2005, Oracle.  All Rights Reserved.

SQL> connect
Enter user-name: system
Enter password:
Connected.
SQL>


또는


>sqlplus system/password

SQL*Plus: Release 10.2.0.2.0 - Production on Fri Apr 10 16:46:15 2009

Copyright (c) 1982, 2005, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning and Data Mining options

SQL>

출처 :  
http://jmson.tistory.com/46

'공부 > 솔라리스' 카테고리의 다른 글

솔라리스 상태확인  (0) 2012.02.22
솔라리스 8,9 오라클 8,9 설치  (1) 2012.01.25
posted by 나무사이
: