linux mint13 oracle 11g express 설치
DB & SQL 2015. 6. 23. 17:48설치에 성공하지 못했다. 공통적으로 설명해 놓은 것들을 중심으로 작성, 다운로드는 생략
삽질 끝에 드뎌 성공했다. 가급적 리부팅한뒤 설치하자. 시간되면 엔터프라이즈 버전을 도전해봐야겠다. 더 복잡한듯...
1.1.1. 시스템 확인
$ uname -i x86_64
64bit인지 확인할 필요는 없지만 혹시나 해서...
1.1.2. 압축 풀기
$ unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
압축을 풀면 Disk1 디렉토리 밑에 풀림
1.1.3. 필요한 패키지 설치
$ sudo apt-get install alien libaio1
alien 패키지는 rpm 패키지를 deb 패키지로 변환하기 위해 필요
$ sudo apt-get install alien autoconf automake autotools-dev binutils $ sudo apt-get install doxygen elfutils expat gawk gcc $ sudo apt-get install gcc-multilib g++-multilib ksh less lesstif2 $ sudo apt-get install lesstif2-dev lib32z1 libaio1 libaio-dev libc6-dev $ sudo apt-get install libelf-dev libltdl-dev libmotif4 libodbcinstq4-1 libpth-dev $ sudo apt-get install libpthread-stubs0 libpthread-stubs0-dev libstdc++5 lsb-cxx make $ sudo apt-get install rlwrap rpm sysstat unixodbc $ sudo apt-get install unixodbc-dev x11-utils zlibc $ sudo apt-get install openssh-serverpdksh
다른 곳에서 설명하는 필요 패키지, 민트에서는 openssh-serverpdksh 패키지를 찾지 못하며 설치한 패키지가 많아서 인지 안해도 됨
1.1.4. 패키지 변환
$ sudo alien --scripts -d ./Disk1/oracle-xe-11.2.0-1.0.x86_64.rpm
rpm 패키지를 deb 패키지로 변환 성공시 oracle-xe-11.2.0-2_amd64.deb 생성
$ sudo chown user_name:user_group oracle-xe-11.2.0-2_amd64.deb
생성된 deb 패키지는 root 소유로 소유권 변경을 하려면 실행
1.1.5. root 계정으로 작업
$ su
루트계정으로 작업하는 것이 더 안정적(?)인 느낌. 이후부터는 sudo 없어도 됨
1.1.6. 설치환경 설정
1.1.6.1. chkconfig script 생성
$ gedit /sbin/chkconfig
chkconfig script 파일 생성하여 래드햇으로 인식하도록 한다고 설명되어있음
#!/bin/bash # Oracle 11gR2 XE installer chkconfig hack for Ubuntu file=/etc/init.d/oracle-xe if [[ ! `tail -n1 $file | grep INIT` ]]; then echo >> $file echo '### BEGIN INIT INFO' >> $file echo '# Provides: OracleXE' >> $file echo '# Required-Start: $remote_fs $syslog' >> $file echo '# Required-Stop: $remote_fs $syslog' >> $file echo '# Default-Start: 2 3 4 5' >> $file echo '# Default-Stop: 0 1 6' >> $file echo '# Short-Description: Oracle 11g Express Edition' >> $file echo '### END INIT INFO' >> $file fi update-rc.d oracle-xe defaults 80 01
chkconfig script 파일에 들어갈 내용
$ chmod 755 /sbin/chkconfig
chkconfig script 파일의 권한 변경
1.1.6.2. kernel parameter 설정
$ gedit /etc/sysctl.d/60-oracle.conf
파일 생성, 대부분의 설명에 하라도 되어있는데 안해도 설치됨
# Oracle 11g XE kernel parameters fs.file-max=6815744 net.ipv4.ip_local_port_range=9000 65000 kernel.sem=250 32000 100 128 kernel.shmmax=536870912
파일에 들어갈 내용
$ service procps start $ sysctl -q fs.file-max
파일 적용 및 확인, 출력된 fs.file-max의 값이 파일 내용의 6845744와 같으면 됨
1.1.6.3. swap 공간 확인 및 확보
$ free -m $ df -h //둘중 하나만 해도 확인이 가능, 아래 명령이 더 낳은듯
swap 공간이 최소 2G이상 이면 된다고 하는데 /dev/shm이 없으면 설치후 설정에서 에러남, 위 명령은 단순히 용량확인하는 것
$ gedit /etc/init.d/oracle-shm
설치하려면 /dev/shm 공간을 확보해야 함, 아래 내용을 파일에 넣고 저장
#! /bin/sh # /etc/init.d/oracle-shm # # case "$1" in start) echo "Starting script /etc/init.d/oracle-shm" # Run only once at system startup if [ -e /dev/shm/.oracle-shm ]; then echo "/dev/shm is already mounted, nothing to do" else rm -f /dev/shm mkdir /dev/shm mount --move /run/shm /dev/shm mount -B /dev/shm /run/shm touch /dev/shm/.oracle-shm fi ;; stop) echo "Stopping script /etc/init.d/oracle-shm" echo "Nothing to do" ;; *) echo "Usage: /etc/init.d/oracle-shm {start|stop}" exit 1 ;; esac # ### BEGIN INIT INFO # Provides: oracle-shm # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Bind /run/shm to /dev/shm at system startup. # Description: Fix to allow Oracle 11g use AMM. ### END INIT INFO
ORA-00845 에러를 방지하기 위해서라고 함, 부팅시 시작되도록 설정해야 됨
$ chmod 755 /etc/init.d/oracle-shm $ update-rc.d oracle-shm defaults 01 9 $ /etc/init.d/oracle-shm start //리부팅 안하고 바로 실행
1.1.6.4. awk 링크 설정
$ ln -s /usr/bin/awk /bin/awk
뭐땜시 하는건지 잘 모르겠으나 안하면 설치후 설정시 에러
1.1.7. 패키지 설치
$ dpkg --install oracle-xe_11.2.0-2_amd64.deb
변환한 deb 패키지 설치, 경로는 알아서 잘 지정할 것
1.1.8. 패키지 설치후 설정전에 할 것들
1.1.8.1. oracle 계정 관리
$ usermod -a -G dba oracle
oracle 계정이 dba 그룹에 포함되어 있어야 됨
1.1.8.2. oracle 계정 접근 권한 설정
$ chown -R oracle:dba /var/tmp/.oracle $ chmod -R 755 /var/tmp/.oracle $ mkdir /tmp/.oracle $ chown -R oracle:dba /tmp/.oracle $ chmod -R 755 /tmp/.oracle
oracle 계정이 사용하는 디렉토리에 소유권을 oracle로 변경해야 함
/tmp/.oracle 디렉토리는 부팅때마다 사라지므로 굳이 할 필요없으나 해주는게 좋을듯
오라클이 설치되는 /u01/app/oracle 디렉토리는 oracle 소유로 되어 있으나 확인해 볼것
1.1.8.3. oracle 경로 수정
$ grep /var/lock/subsys /etc/init.d/oracle-xe //oracle-xe 파일내에 일치하는 문자열이 있는 줄을 출력해 줌 //$ grep /var/lock /etc/init.d/oracle-xe 라고해도 됨 $ sed -i 's;/var/lock/subsys;/var/lock;' /etc/init.d/oracle-xe //앞의 문자열을 뒤의 문자열로 치환해줌 $ grep /var/lock /etc/init.d/oracle-xe //잘 바뀌었는지 확인
/var/lock/subsys 디렉토리를 /var/lock으로 변경하라고 함, 안바꾸면 설정시 리스너 에러남
1.1.8.4. oracle 환경 변수 설정
$ cat /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh //파일 내용 출력
파일 내용은 오라클 환경 변수 설정값이 들어있는데 이걸 적용시켜야함
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export ORACLE_SID=XE export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` export PATH=$ORACLE_HOME/bin:$PATH
$ gedit /etc/bash.bashrc //파일 맨 뒤에 오라클 환경변수를 추가함
파일 내용을 bash.bashrc에 넣음, 사용자 계정의 bash에 넣어도 되지만 그냥 루트에 넣음
1.1.8.5. host 설정파일 수정
$ gedit /etc/hosts
파일 내용에 localhost.localdomain을 추가하라고 하지만 필요없음
1.1.9. oracle db 설정
이 작업은 왠만하면 리부팅한뒤에 하는게 좋을듯하다. 바로 설정들어가면 에러나기도한다.
에러나면 리부팅하고 다시 설정하던가 아니면 설치제거한뒤 재설치하고 해야한다.
$ sudo /etc/init.d/oracle-xe configure
oracle 사용 환경 설정, 5번의 입력 사항이 있음, 패키지 설치과정에서 물어보기 땜시 실행할 필요가 없음
- 사용할 포트 기본값 8080
- 사용할 포트 기본값 1521
- system, sysdba 패스워드 입력
- system, sysdba 패스워드 확인 재입력
- 부팅시 oracle 시작 여부 y or n
여기까지 진행되고 이후 부터 리스너, 디비 생성 등을 하는데 이 과정에서 리스너 또는 디비 instance를 생성할 수 없다고 ERROR
이후 내용은 필요없음. 단지 삽질 기록일 뿐...
1.1.10. 환경변수 설정
1.1.10.1. 환경변수 입력
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export ORACLE_SID=XE export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` export ORACLE_BASE=/u01/app/oracle export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH
자신의 .bashrc 파일에 내용을 추가하라고 함
1.1.10.2. 환경변수 적용
~/.profile
환경변수 적용
1.1.11. 실행
$ sudo service oracle-xe start
위에서 발생한 에러땜시 /etc/init.d/oracle-xe configure를 실행하라고 함
$ sudo /etc/init.d/oracle-xe start
역시나 /etc/init.d/oracle-xe configure를 실행하라고 함
이전 내용은 필요없음. 단지 삽질 기록일 뿐...
'DB & SQL' 카테고리의 다른 글
mysql timestamp default current_timestamp (0) | 2015.10.10 |
---|---|
linux mint13 oracle 11g express 제거 (0) | 2015.06.23 |
oracle SQL*PLUS command (0) | 2015.06.23 |
mysql 계정 및 DB 생성 (0) | 2015.06.23 |
mysql 인코딩 utf8 적용 (0) | 2015.06.23 |