* 우분투 오라클 설치
=> 우분투 데스크탑 환경에서 설치 함
* 설치 파일 다운
http://www.oracle.com/technetwork/indexes/downloads/index.html#database
-> Database -> Database 11g Standard / Enterprise Edition -> 로그인 -> 파일저장
================================================================================
1. 우분투 설정 변경
================================================================================
* 우분투 16.04 64bit
sudo addgroup oinstall
sudo addgroup dba
sudo addgroup nobody
sudo usermod -g nobody nobody
sudo useradd -g oinstall -G dba -m -d /home/oracle -s /bin/bash oracle
sudo chown -R oracle:dba /home/oracle
sudo passwd oracle
=>비번 : oracle
* 시작 스크립트 및 설치 디렉토리 준비
sudo mkdir /etc/rc.d
for i in 0 1 2 3 4 5 6 S
do sudo ln -s /etc/rc$i.d /etc/rc.d/rc$i.d
done
sudo mkdir -p /u01/app/oracle
sudo chown -R oracle:dba /u01
* 커널 파라미터 변경
* 우분투 13.04
sudo sh -c 'cat >> /etc/sysctl.conf << EOF
# Settings for Oracle Database Installation
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.sem=250 32000 100 128
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
kernel.shmmax=1073741824
EOF'
* 적용 실행
sudo sysctl -p
* 우분투 13.04
root 계정에서 다음 Shell limit 설정을 뒤에 추가합니다.
sudo sh -c 'cat >> /etc/security/limits.conf << EOF
# Settings for Oracle Database Installation
oracle soft nproc 2048
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF'
===============================================================================
3. 필요 패키지 추가
================================================================================
* 우분투 16.04
sudo apt-get update
sudo apt-get install gcc make binutils gawk x11-utils rpm build-essential libaio1 libaio-dev libtool expat alien ksh sysstat elfutils libelf-dev binutils libstdc++5
# 서비스 종료 패키지
# libmotif4 pdksh unixODBC unixODBC-dev lesstif2 lsb-cxx
================================================================================
4. 설치시 오류에 대한 대비
================================================================================
* 우분투 16.04
sudo ln -s /usr/bin/awk /bin/awk
sudo ln -s /usr/bin/rpm /bin/rpm
sudo ln -s /usr/bin/basename /bin/basename
#lib 디렉토리 전체 링크를 사용해서 (미사용)
#sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a #/usr/lib/libpthread_nonshared.a
#sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib/libc_nonshared.a
#sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib/libgcc_s.so.1
#sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/libstdc++.so.6
#sudo ln -s /usr/lib /usr/lib64
#64bit
sudo mkdir -p /usr/lib64
sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/lib64/libgcc_s.so.1
sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/libc_nonshared.a
sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/libstdc++.so.6
* oracle 계정 환경변수
su - oracle
touch .bashrc
ln -s .bashrc .bash_profile
/home/oracle/.bashrc 파일에 다음과 같은 내용을 넣어준다.(*ORACLE_SID대소문자 주의 listener.ora 와 대소문자 동일 해야 함)
# set file creation mask
umask 022
# setting up oracle environment variables
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=${ORACLE_BASE}/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin
아래 명령을 실행해 oracle 환경변수 적용
. .bashrc
================================================================================
6. Oracle 설치
================================================================================
* 우분투 16.04
cd /home/oracle
sudo mv /home/somewhere/linux*database*.zip .
sudo chown oracle:dba linux*database*.zip
su oracle
unzip linux*database_1of2.zip
unzip linux*database_2of2.zip
cd database
LANG=C ./runInstaller -ignoreSysPrereqs
* 오류 시 화면조정
owthit@owthit-desktop:~$ sudo xhost +
[sudo] password for owthit:
access control disabled, clients can connect from any host
owthit@owthit-desktop:~$ su oracle
암호:
oracle@owthit-desktop:/home/owthit$ xhost +
access control disabled, clients can connect from any host
* 재실행
LANG=C ./runInstaller -ignoreSysPrereqs
* 설치 오류 시 실행
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' ${ORACLE_HOME}/sysman/lib/ins_emagent.mk
sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' ${ORACLE_HOME}/bin/genorasdksh
sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' ${ORACLE_HOME}/srvm/lib/ins_srvm.mk
sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' ${ORACLE_HOME}/network/lib/env_network.mk
sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' ${ORACLE_HOME}/rdbms/lib/env_rdbms.mk
* 설치 중 실행 후 재시도
su root
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
* Web Manager 접속 URL
https://owthit-desktop:1158/em
* listener.ora 설정
HOST는 /etc/hosts IP 등록 후 도메인 작성
SID_NAME는 ORACLE_SID와 대소문자 확인 후 동일하게 작성
listener.ora--------------------------------------------------------
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = owthit.oracle)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
)
)
ADR_BASE_LISTENER = /u01/app/oracle
--------------------------------------------------------
lsnrctl stop
lsnrctl start
* Connect TEST
sqlplus system/oracle@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.17)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))
<< Linux에서 오라클 삭제하기 >>
1. $ORACLE_HOME 디렉토리에 있는 설치 화일을 전부 삭제
sudo rm -rf $ORACLE_HOME
2. /etc 디렉토리에 있는 oraInst.loc, oratab 파일 삭제
sudo rm -r /etc/ora*
3. /usr/local/bin/oraenv 파일 삭제
sudo rm -fr /usr/local/bin/oraenv
4. /tmp 디렉토리에서 Ora 관련 파일 및 디렉토리 삭제
sudo rm -fr /tmp/Ora*
4.5 /oraInventory 디렉토리 삭제
sudo rm -rf /u01/app/oracle/oraInventory/
5. oracle 계정의 환경설정 파일 백업
.bashrc or .bashrc_profile or .profile ... backup
6. oracle 계정을 삭제
sudo deluser oracle
7. oracle 계정의 HOME 디렉토리를 삭제
sudo deluser --remove-home oracle
<oracle service start/shutdown>
su - oracle
sqlplus /nolog [sqlplus "/as sysdba"]
connect /as sysdba
shutdown immediate
startup
<리스너>
lsnrctl stop, start, reload, status
1. 계정의 테이블 스페이스 생성
sqlplus /nolog
conn sys as sysdba
create tablespace [tablespace_name]
datafile '/oradata/DANBEE/[file_name].dbf' size 500m;
예)
CREATE TABLESPACE ADMIN DATAFILE '/oradata/xe/admin.dbf' SIZE 500M ;
SELECT TABLESPACE_NAME, STATUS, CONTENTS FROM DBA_TABLESPACES;
2. 오라클 유저 만들기
sqlplus /nolog
conn sys as sysdba
CREATE USER [user_name]
IDENTIFIED BY [password]
DEFAULT TABLESPACE [tablespace_name]
TEMPORARY TABLESPACE TEMP;
예)
CREATE USER ugis IDENTIFIED BY tprPchlrkd DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
3. 생성한 USER에 권한주기
GRANT connect, resource, dba TO [user_name];
예)
grant connect, dba, resource to ugis; (모든 권한 주기)
GRANT CREATE SESSION TO 유저명 // 데이터베이스에 접근할 수 있는 권한
GRANT CREATE DATABASE LINK TO 유저명
GRANT CREATE MATERIALIZED VIEW TO 유저명
GRANT CREATE PROCEDURE TO 유저명
GRANT CREATE PUBLIC SYNONYM TO 유저명
GRANT CREATE ROLE TO 유저명
GRANT CREATE SEQUENCE TO 유저명
GRANT CREATE SYNONYM TO 유저명
GRANT CREATE TABLE TO 유저명 // 테이블을 생성할 수 있는 권한
GRANT DROP ANY TABLE TO 유저명 // 테이블을 제거할 수 있는 권한
GRANT CREATE TRIGGER TO 유저명
GRANT CREATE TYPE TO 유저명
GRANT CREATE VIEW TO 유저명
GRANT
CREATE SESSION
,CREATE TABLE
,CREATE SEQUENCE
,CREATE VIEW
TO 유저명;
4. 생성한 USER로 ORACLE에 접속하기
sqlplus nextree/nextree[@db_sid]
5. 계정 삭제하기
drop user 사용자계정 cascade;
'나 어제 배웠다 > Database' 카테고리의 다른 글
우분투 Postgresql 설치 (0) | 2018.05.04 |
---|---|
MySQL 사용자 관리 및 DB생성 (0) | 2017.03.23 |
오라클 특정(일부) 테이블 Drop (0) | 2013.12.03 |
Oracle 계층형 Query (0) | 2013.10.12 |
DB2 날짜 변환 참고 (0) | 2013.08.26 |