Oracle 28일차

수업 내용

사전 환경 설정

vmware 에서 new machine,
Oracle Linux 7,
머신이름 : oel7,
Virture Disk : single,
HDD 100GB,
RAM 2GB,
CPU Process 2

기동 후 설치

english
-date & time -> seoul
-software selection -> server with GUI / Java Platform, Compatibility Libraries, Development Tools
-Installation Destination -> I will configure partitioning. Done 후 + 클릭.
/boot 1GB
swap 8000MB
/oracle12 30GB
/home 20GB
/ 나머지(용량 부분을 생략하면 알아서 나머지 할당)
-KDUMP -> enable을 체크 해제해서 disable로
-Security Policy -> ON 을 OFF로
-Network & Host Name -> 맨 아래에 Host Name 을 oel7 로 변경 후 apply / 오른쪽위에 ethernet ON으로 켜주기

root 비밀번호 세팅
create user -> itwill & 비밀번호 세팅 -> make this user admin

Xmanager

리눅스는 GUI 지원 안 됨. 하지만 oracle DB를 깔 때 팝업창이 뜸. 그래서 그 팝업창을 보기 위해 oracle DB 설치 커맨드를 원격으로 보냈던 GUI 지원되는 PC에 팝업창이 대신 뜨도록 해주는 프로그램.

ex)
윈도우 -> VMware 오라클리눅스 로 DB설치 명령어 보냄 -> 팝업창을 윈도우에서 뜨게 함 = Xmanager

Oracle 설치

1 사전 설치

  • su – root
    비밀번호 입력
  • vi /etc/hosts
    리눅스의 ip, hostname추가 -> 172.16.237.129 oel7
  • vi /etc/hostname
    oel7 적혀있는지 확인
  • preinstall 실행(오라클DB 설치에 필요한 사전 환경설정을 명령어 하나로 자동 설치 시켜주는 것)
    ** oracle user, dba group 생성, system control file 수정, 메모리 세팅 등
    yum install oracle-database-server-12cR2-preinstall -y
    yum update -y
    ** yum 설치 시 주의
    1. 외부 통신 확인 : wget www.naver.com
    2. 중복된 yum 실행 시 에러 (기존 yum 실행 시)
    ps -ef | grep yum | grep -v grep # yum 돌아가는 중인지 확인
    kill -9 “yumPID” # PID는 ps -ef 결과의 두번째 필드
  • oracle 유저 / dba 그룹 생성 확인
    grep oracle /etc/passwd
    grep dba /etc/group
  • /etc/selinux/config 수정 및 실행(root 유저로)
    vi /etc/selinux/config
    중간에 selinux=enforcing을 permissive로 변경 (보안정책을 끄는 것)(외부에서 작업하기 편하게)
    저장 후 나와서
    $ setenforce permissive
    실행해서 반영해주기
  • 방화벽 내리기 (root로)
    systemctl stop firewalld
    systemctl disable firewalld
  • oracle 유저 패스워드 변경 (root로 진행)
    passwd oracle
  • yum install -y xorg-x11-apps 설치
    which xclock (설치 확인)

2 Xmanager 세팅

  • Host(윈도우)에서
    넷사랑 xmanager 설치
    xmanager-passive 실행(자동실행됨)
  • Guest(리눅스)에서
    su – oracle
    export DISPLAY=192.168.11.21:0.0 (뒤에 0.0은 xmanager의 server고, 앞에 ip주소는 host(윈도우)의 ip주소)
    xclock -> 시계 창이 뜸

3 Oracle 유저의 .bash_profile 수정하기

  • # Oracle Settings
    export TMP=/tmp
    export TMPDIR=$TMP

    export ORACLE_HOSTNAME=oel7
    export ORACLE_UNQNAME=db1
    export ORACLE_BASE=/oracle12/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1
    export ORACLE_SID=db1
    export PATH=/usr/sbin:/usr/local/bin:$PATH
    export PATH=$ORACLE_HOME/bin:$PATH

    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
    export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
  • .profile은 수정직후 반영되지 않으니
    재접속하든가, “. .bash_profile” 실행하든가 한 뒤,
    echo $ORACLE_HOME 입력해서 반영되었는지 확인
    (현업에서 profile 관련 수정할 때는 무조건 cp로 백업해놓고 수정하기)

4 설치 디렉토리 생성 및 권한 부여 (root에서)

현재는 /oracle12 폴더가 root 소유로 되어있다. 이를 oracle:oinstall 로 소유 변경(root유저에서)

mkdir -p /oracle12/app/oracle/product/12.2.0.1/db_1
mkdir -p /oracle12/database
chown -R oracle:oinstall /oracle12
chmod -R 775 /oracle12
chmod -R 775 /home

** (이건 단순 alias 설정)
vi .bash_profile 들어가서
alias ll=’ls -al’
변경 후 저장 -> 원래는 ll이 ls -l로만 되어있어서 숨김파일 안 나왔음

5 db 설치

winscp 이용해서 zip 파일 자체를 /oracle12/database 로 전송

unzip V839960-01.zip 해서 압축해제

cd /oracle12/database/database
export LANG=C # 한글 깨짐 현상 방지 위한 언어 변경
export DISPLAY=윈도우의IP주소.0.0
./runInstaller

create and configure a database -> server class -> single -> Advanced -> Enterprise -> orcl이던 거를 db1 로 변경 & create as container database 체크 해제 -> character set을 KO16MSWIN949로 변경 -> use the same password -> 설치

설치 중에 화면 하나 나오는데 거기 설명대로 명령어 2개 다 실행.
아래 명령어는 2번 물어보는데 첫번째 거는 그냥 엔터, 두번째 거는 no 엔터 하기.

했으면 다시 윈도우에 떠있는 화면에 ok 눌러서 계속 설치하기

완료되면 close 눌러서 창 닫기

DB 확인

리눅스 프롬프트에서 sqlplus / as sysdba

select status from v$instance;

select username, account_status from dba_users where username in (‘SCOTT’,’HR); # 계정 2개의 상태 확인
alter user hr account unlock identified by oracle; # hr 계정 unlock 하고 비번 재설정

exit 후에
cd 쳐서 홈디렉토리로 간 뒤에
vi .bash_profile 에서
alias ss=’sqlplus / as sysdba’
alias tns=’cd $ORACLE_HOME/network/admin’
추가 해주기

Orange랑 연결

상황 설명

현재 윈도우에는 oracle 11g, orange 6 설치되어있음.
oel7에는 oracle 12c 설치되어있음.
버전이 리눅스가 더 높기 때문에 orange로 다이렉트로는 접속이 불가능하고
윈도우에 깔린 oracle 11g를 거쳐서 윈도우에 깔린 orange로 접속이 가능.
즉, orange는 oracle 11g 만 보고 있다.

과정 : orange -> oracle 11g -> oracle 12c

oel7쪽의 리스너 ip주소, port 확인을 위해
$lsnrctl status
또는 listener.ora 파일 확인

sid 확인 : DB 접속 후 인스턴스명 확인
> select instance_name from v$instance;

oel7쪽에서는 oracle 12c가 oracle 11g(아래 버전)에서 접속 허용하도록 설정해줘야 된다.
sqlnet.ora 파일에 11g 접속 허용 설정.

윈도우에서(client쪽)

시스템 환경 변수 편집 들어가서 path 에 oracle11경로가 oracle12경로보다 위에 있어야 됨.

11c 버전의 tnsnames.ora 파일에 들어가서

# VMware oel7 oracle 12c
 DB1=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.237.129)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = db1)
    )
  )

추가 후 저장

리눅스에서(server쪽)

/oracle12/app/oracle/product/12.2.0.1/db_1/network/admin 위치로 이동
sqlnet.ora 파일 수정

SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11

추가

sqlplus / as sysdba
create user scott identified by oracle quota unlimited on users;
alter user system identified by oracle;
grant create session to scott;
grant dba to scott;

ORANGE로 접속.
(접속 안 됐는데 tnsnames.ora 파일 수정했던거 다시 수정했더니 됐음. 중간에 오타났었나보다.)

test_data.sql F5로 전체 실행해서 테이블들 생성하기

select * from professor
order by pay desc
fetch first 5 rows only;

써서 제대로 생성됐는지 확인하기

Leave a Comment