1. 사용자 및 그룹생성
아래의 명령으로 사용자 및 그룹을 생성합니다.
# groupadd dba
# useradd -g dba oracle
# passwd oracle
오라클이 설치될 디렉토리를 생성합니다.
# mdkir -p /oracle
# chown -R oracle.dba /oracle
# chmod -R 755 /oracle
2. 커널 파라미터 수정
/etc/sysctl.conf 파일에 뒷 부분에 아래와 같이 내용을 추가합니다.
# vi /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
수정한 /etc/systl.conf의 파라미터 값을 새롭게 커널에 적용시킵니다.
# /sbin/sysctl -p
시스템 리소스를 제한하는 설정파일에 다음을 추가한다.
# vi /etc/security/limits.conf
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
# vi /etc/pam.d/login
session required /lib/security/pam_limits.so
# vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
3. 오라클 사용자의 환경변수 추가
/home/oracle/.bash_profile 파일의 뒤에 아래 내용을 추가합니다.
##############################################
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11g/db_1
export ORACLE_SID=ANZDORADB
export DISPLAY=0.0
alias sm='sqlplus "/as sysdba"'
##############################################
관리자(root) 권한으로 아래의 명령을 실행합니다.
# xhost + 127.0.0.1
※ 위 명령은 반드시 해당 로컬서버에서 작업을 하셔야 합니다.(원격에서는 안됩니다.)
(오라클 설치는 로컬서버에서 모든 작업을 하시는 것이 좋습니다.)
환경변수 적용위해 설치전 재부팅
4. 오라클 설치시작
※ 지금부터는 반드시 oracle 사용자 계정으로 실행해야 합니다.
지금 root권한으로 로그인 되어있다면 로그아웃 하시고,
oracle 계정으로 다시 로그인하시기 바랍니다.
오라클 설치 프로그램을 압축푼 장소로 이동하여, 아래 파일을 찾아서 실행시킵니다.
$ sh runInstaller
※ 만약 글자가 깨져서 보인다면, 프로그램을 종료하고 아래명령을 입력한후 다시 프로그램을 실행합니다.
$ unset LANG
5. Welcome
환영인사 입니다. Next를 클릭합니다.
6. Specify Inventory directory and credentials
디렉토리와 시스템그룹 지정. Next를 클릭합니다.
※ 경고창이 나타납니다.
/u01/app/oracle/oraInventory/orainstRoot.sh를 실행하라는 내용입니다.
콘솔을 띄워서 root 권한으로 변경한 다음, 아래와 같이 스크립트 파일을 실행합니다.
# /u01/app/oracle/oraInventory/orainstRoot.sh
팝업창의 Continue를 클릭합니다.
7. Specify File Locations
설치할 파일과 설치될 파일의 위치를 지정합니다. Next를 클릭합니다.
8. Select Installation Type
오라클을 설치할 유형을 선택합니다. Enterprise Edition을 선택하고, Next를 클릭합니다.
9. Specific Prerequisite Checks
이제까지의 설정을 확인합니다. 이상 없으면 Next를 클릭합니다.
커널 파라미터를 체크하는 부분에서 경고 팝업이 뜹니다.
Yes를 눌러 경고를 무시하고 계속 진행합니다.
12. Select Database Configuration
데이터베이스 사용 용도에 따라 설정 옵션을 선택합니다.
보통 General Purpose로 하면 됩니다. Next를 클릭합니다.
13. Specify Database Configuration Options
데이터베이스의 Global Database Name/SID/Character set의 옵션을 지정합니다.
Global Database Name와 SID는 [ORCL] 로 Character set은 [Korean KO16KSC5601]로 Database 예제 스키마도 생성합니다.
Next를 클릭합니다.
14. Select Database Management Option
데이터베이스를 관리하는데 필요한 옵션을 선택합니다. Next를 클릭합니다.
15. Specify Database File Storage Option
데이터베이스 파일의 스토리지 옵션을 지정합니다. 보통 File System으로 하시면 됩니다.
Next를 클릭합니다.
16. Specify Backup and Recovery Options
백업이나 복구 옵션을 지정합니다. 기본값으로 넘어갑니다.
Next를 클릭합니다.
17. Specify Database Schema Passwords
오라클 관리를 위한 계정들의 패스워드를 입력합니다.
(SYS, SYSTEM, SYSMAN, DBSNMP 등)
개별적으로 입력해도 되며, 하단의 "Use the same password for all the accounts"를 선택하여 한번에 동일하게 입력 가능합니다.
Next를 클릭합니다.
18. Summary
이제까지 선택한 내용을 창으로 보여줍니다. [Install] 버튼을 클릭하여 설치를 시작합니다.
19. Install
....[설치 진행 중]....
자동으로 설치가 진행되는 동안, 차한잔 하면서 느긋하게 기다려줍시다.
20. Configuration Assistants
파일 설치 후 데이베이스 관련 파일들을 복사하고 오라클 인스턴스를 생성합니다.
70%이상 넘어가면서 패스워드 오류가 날 수 있습니다. 이는 무시하셔도 좋습니다.
모든 설치가 끝난 후, 각 오라클 시스템에 패스워드를 지정하려면 [Password Management]를 클릭하고, 아니면 [OK] 버튼을 클릭합니다.
21. Setup Privileges
[OK] 버튼을 클릭하면 root.sh 파일을 실행하라는 창이 나타납니다.
root 권한으로 아래와 같이 스크립트 파일을 실행합니다.
# /u01/app/oracle/product/10.1.0/db_1/root.sh
기본값으로 Enter!
22. End of Installation
이제 설치가 모두 종료되었습니다. Exit 버튼을 눌러서 프로그램을 종료합니다.
-----------------------------------------------------------------------------
데이타베이스를 기동만 하면 안되죠 외부에서 접속하도록 리스너를 띄워야 합니다.
우선 listener.ora 파일을 수정합니다.
$ORACLE_HOME/network/admin/listener.ora 파일 내용
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
(PROGRAM = extproc)
)
# 추가부분 시작 - 이걸 추가해야 8i 이하의 클라이언트에서 연결했을 때 SERVICE_NAME 관련 내용이 없습니다.
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
)
# 추가 부분 끝
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 해당ip)(PORT = 1521)) # <== 서버명 대신에 반드시 ip를 넣으세요
127.0.0.1을 넣으시면 안됩니다. 외부에서 소켓이 닫힌 것으로 인식합니다.
)
)
)
이제 리스너를 띄웁니다.
$ lsnrctl start
리스너의 기동을 확인합니다.
$ netstat -a | grep 1521
tcp 0 0 해당ip:1521 *:* LISTEN
절대
tcp 0 0 서버명:1521 *:* LISTEN
으로 나오면 위 설정중 HOST의 내용을 확인하세요.
■ LINUX 부팅시 ORACLE 자동 실행하기
① oratab 파일 편집하기
# vi /etc/oratab
다음 부분을 수정 ([SID], [ORACLE_HOME], [자동실행/종료 플래그]로 구성되어 있습니다.)
ora10g:/oracle/product/10.2.0/db_1:N --> ora10g:/oracle/product/10.2.0/db_1:Y
② Parameter 파일 링크
xxxxxxxxxxxx은 일정치 않은 숫자 입니다.
# cp /oracle/admin/ora10g/pfile/init.ora.xxxxxxxxxxxx /oracle/product/10.2.0/db_1/dbs/initORA10G.ora
# chown oracle.oinstall initORA10G.ora
③ 직접 스크립트 작성시에는 아래와 같이 작성한다
# vi /etc/init.d/oracle
------------------------------------------------------------------------------------------------------
#!/bin/sh
#
# Startup script for ORACLE
#
# chkconfig: - 90 15
# Description: Starts and stops the Oracle database and listeners
# processname: oracle
# /etc/rc.d/init.d/oracle
#
# Source function library.
. /etc/rc.d/init.d/functions
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
# See how we were called.
case "$1" in
start)
echo -n "Starting Oracle Databases: "
echo "--------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
echo "--------------------------------------------" >> /var/log/oracle
su - oracle -c "dbstart" >> /var/log/oracle
echo "Done."
echo -n "Starting Oracle Listeners: "
su - oracle -c "lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "--------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "--------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
stop)
echo -n "Shutting Down Oracle Listeners: "
echo "--------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : ShutDown Oracle Databases as part of system down." >> /var/log/oracle
echo "--------------------------------------------" >> /var/log/oracle
su - oracle -c "lsnrctl stop" >> /var/log/oracle
echo "Done."
echo -n "Shutting Down Oracle Databases: "
su - oracle -c "dbshut" >> /var/log/oracle
echo "Done."
echo ""
echo "--------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "--------------------------------------------" >> /var/log/oracle
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
------------------------------------------------------------------------------------------------------
oracle에 실행권한을 부여한다.
# chmod 755 /etc/rc.d/init.d/oracle
시스템에 oarcle9i 데몬을 등록한다.
# chkconfig --add oracle
# chkconfig --level 2345 oracle on
Oracle Database를 재시작 시켜본 후, LISTENER 데몬이 띄워져 있는지 확인.
# /etc/rc.d/init.d/oracle start
# ps ax | grep LISTENER
■ Listener의 시작 및 중단:
$ lsnrctl start
$ lsnrctl stop
■ Oracle Enterprise Manager Database Control의 시작 및 중단:
$ emctl start dbconsole
$ emctl stop dbconsole
http://localhost:1158/em
■ iSQL*Plus의 시작 및 중단:
$ isqlplusctl start
$ isqlplusctl stop
http://localhost:5560/isqlplus
■ DB Console Port Number 확인
$ORACLE_HOME/install/portlist.ini
■ 만약 em(1158), isqlplus(5560), sqlplus(1521)가 접속되지 않는다면
서버의 iptables(방화벽)설정을 확인한다.
이에 대한 설명은 LINUX게시판을 참조한다.