수업 내용
사전 환경 설정
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;
써서 제대로 생성됐는지 확인하기