가상머신을 이용하여 CentOS 7 리눅스에 oracle를 설치할 수 있다.
목차
1.................................... 가상머신 설정 및 리눅스 설치과정
2.................................... 리눅스 초기 설정 및 오라클계정, 그룹 만들기
3.................................... 오라클 설치 전 리눅스에 설치해야하는 파일
4.................................... 오라클 계정 설정
5.................................... 설치용 패키지 준비
6.................................... 오라클 설치
7.................................... 오라클 사용자 계정 생성
8.................................... 오라클 네트워크 설정과 접속
1)................................ 오라클 서버 설정 : 리스너 구동
2)................................ 리눅스 클라이언트 설정과 접속
3)................................ 윈도우 클라이언트 설정과 접속
9.................................... 오라클 자동실행 설정
10.................................. 관리자 패스워드 지정
11.................................. 인스턴스 클라이언트
1)................................ 오라클 인스턴스 클라이언트 설치
2)................................ 접속 환경 설정
3)................................ 접속 테스트
1. 가상머신 설정 및 리눅스 설치과정
가상머신에 리눅스 데이터베이스를 설치하기 전 먼저 하드웨어는 40GB이상, 메모리는 2GB이상으로 설정해 준다.
설정이 끝났으면 가상머신에서 설치를 실행해준다.
x윈도우가 꼭 필요하므로 GNOME 데스크탑으로 소프트웨어를 선택해준다.
KDUMP는 비활성화 시켜준다.
파티션 설정에서 boot은 500MB, swap은 기존 설정한 메모리의 2배를 해준다. 나머지는 / 에 할당하면 된다.
네트워크 설정을 해주어 연결이 원활하게 되었으면 완료버튼을 누른다.
2. 리눅스 초기 설정
ntsysv를 실행하여 방화벽인 firewalld.service 항목의 체크를 해제해 주고 저장해 준다.
# vi /etc/selinux/config를 입력하여 vi에디터로 SELINUX=enforcing를 SELINUX disabled 변경해주고 저장한다.
로컬파일에 실행권한을 주기 위하여 해당 명령어를 입력해준다.
vi /etc/rc.d/rc.local 명령어를 입력하여 rdate -s time.bora.net 입력해주고 저장해 준다.
vi /etc/hosts 입력하여 오라클을 설치할 리눅스의 ip주소와 도메인주소와 데이터베이스의 이름을 입력해 준다.
오라클에서 사용할 사용자 계정과 오라클 그룹을 만들어주고 오라클베이스와 오라클 홈의 경로를 만들어주고 반드시 기억해야 한다.
3. 오라클 설치 전 리눅스에 설치해야하는 파일
[root@ora19c ~]# yum -y install ksh
[root@ora19c ~]# yum -y install libaio-devel
[root@ora19c ~]# yum -y install compat-libcap1
[root@ora19c ~]# yum -y install compat-libstdc++-33
[root@ora19c ~]# yum -y install glibc-devel
[root@ora19c ~]# yum -y install libstdc++-devel
[root@ora19c ~]# yum -y install gcc-c++
[root@ora19c ~]# yum install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
해당 명령어를 입력해 설치를 해준다.
4. 오라클 계정 설정
[ora19c@ora19c ~]$ vi .bash_profile 입력하여
.............
.............
# oracle setup
export ORACLE_OWNER=ora19c
export ORACLE_BASE=/app/ora19c
export ORACLE_HOME=/app/ora19c/19c
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_SID=DB19
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_HOSTNAME=DB19.itclass.co.kr
export TMP=/tmp
export TMPDIR=$TMP
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME:/usr/bin:.
해당 내용을 입력해 준다.
5. 설치용 패키지 준비
root계정으로 로그인 하여 yum -y install ftp와 yum install -y vsftpd를 설치해주고 ftp를 이용하여 오라클의 설치 파일을 다운받아 줘야 한다. systemctl start vsftpd를 실행해주고 파일질라(FTP프로그램)로 ora19c 접속 LINUX.X64_193000_db_home.zip 파일을 /app/ora19c/19c위치에 다운받아 준다.
다운로드가 다 되었으면 systemctl stop vsftpd로 vsftpd실행을 꺼주고 cd $ORACLE_HOME 디렉토리로 가서
ls 명령어로 LINUX.X64_193000_db_home.zip파일이 있는지 확인하고
unzip LINUX.X64_193000_db_home.zip 명령어로 압축을 풀어준다.
6. 오라클 설치
X윈도우를 오라클계정으로 접속하여 터미널을 실행해준다.
cd %ORACLE_HOME ( /app/ora19c/19c/) 설치 파일이 있는 오라클 홈 디렉토리로 이동하여
./runInstaller 명령어로 설치를 실행해 준다.
인스턴스는 오라클의 메모리구조, 데이터베이스 하드웨어구조를 나타내 준다 체크를하고 다음을 눌러준다.
데스크톱 클래스를 체크하여 기본설정이 포함된 클래스로 설치를 진행한다.
오라클 베이스와 데이터베이스 파일의 위치는 절대 경로를 변경해서는 안되고 자동으로 잡혀 있어야한다.
전역 데이터베이스 이름을 hosts에서 입력한 DB19로 입력해주고 오라클의 비밀번호를 설정해 준다.
컨테이너 데이터베이스로 생성은 체크를 해제해 준다.
인벤토리 디렉토리에 대한 쓰기 권한이 있는 멤버가 속한 운영체제 그룹을 dba로 설정하고 다음을 눌러준다.
자동으로 구성 스크립트 실행을 체크하고 리눅스의 루트 비밀번호 입력해 준다.
필요 조건 검사후 입력했었던 값들이 출력해서 보여주는데 문제가 없다면 설치버튼을 눌러준다.
설치 프로그램에서 생성한 구성 스크립트는 권한이 부여된 사용자(루트)로 실행되어야 한다고 나오는데 예(Y) 눌러 주어
설치를 계속 진행한다.
문제없이 설치가 안료 되었다면 푸티로 ora19c 계정으로 로그인 해준다.
[ora19c@linux85 ~]$ sqlplus / as sysdba 로 오라클 관리자로 오라클에 접속을 해준다 이때 설치과정에서 설정한 비밀번호를 묻지 않는데 그 이유는 리눅스 접속시 오라클관리자 그룹에 속한 계정으로 로그인 했음으로 보안상 문제가 없다고 판단하여 묻지 않는다. 만약 오라클관리자 그룹에 속하지 않은 계정에서 접속시 접속이 안된다.
SQL> show sga 는 오라클의 메모리 구성을 보여주는 명령어로
Total System Global Area 830469472 bytes
Fixed Size 8901984 bytes
Variable Size 562036736 bytes
Database Buffers 251658240 bytes >> 데이터를 이안에서 불러와서 읽음 (메모리에 올려서 읽음)
Redo Buffers 7872512 bytes >> 작업내용을 저장(다시수행) / (반대로 undo는 취소)
SQL> shutdown immediate
데이터베이스 종료
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
데이터베이스 실행
SQL> startup
ORACLE instance started.
실행과 종료등 작동 여부를 확인해 준다.
7. 오라클 사용자 계정
st 계정 생성
- st 계정을 생성한다. 암호는 임의로 선택한다.
- 사용할 테이블스페이스 이름은 ② 단계에서 확인한다.
- 명령
SQL> CREATE USER [사용자]
2 IDENTIFIED BY [암호]
3 DEFAULT TABLESPACE [테이블스페이스]
4 TEMPORARY TABLESPACE [임시테이블스페이스]
5 QUOTA UNLIMITED ON [테이블스페이스];
SQL > CREATE USER st IDENTIFIED BY zaqxsw123 DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users;
st 유저를 생성하고
생성한 계정에 권한을 부여해 주어야 하는데 먼저 sys계정으로 sqlplus 로그인하여
SQL> GRANT connect, resource TO st;
SQL> GRANT create view TO resource;
SQL> GRANT execute ON dbms_crypto TO resource;
생성한 st계정이 로그인이 되는지 접속을 통해 확인한다.
8. 오라클 네트워크 설정과 접속
1)................................ 오라클 서버 설정 : 리스너 구동
1. 오라클 서버
- IP : 192.168.10.85(oracle)
- Host명 : DB19.itclass.co.kr
- ORACLE_OWER : ora19c
- ORACLE_HOME : /app/ora19c/19c
- TNS_ADMIN : $ORACLE_HOME/network/admin
- ORACLE_SID : DB19
2. Linux 클라이언트
- IP : 192.168.10.81
- ORACLE_HOME : /app/ora19c/19c
3. 윈도우 클라이언트
- IP : 192.168.10.80
- ORACLE_HOME : C:₩DB₩ora19c₩19c
8. 1) 오라클 서버 설정 : 리스너 구동
root 계정으로 오라클 서버 리눅스로 로그인 한 후
cd /app/ora19c/19c/network/admin 로 이동한 후
vi listener.ora로
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = DB19)
(ORACLE_HOME = /app/ora19c/19c)
)
)
를 추가해 준다.
*- Default 리스너명은 listener이다.
- HOST : 서버의 호스트명이나 IP 주소
- PORT : TCP port 번호
- SID_NAME : Instance 명
- 클라이언트는 반드시 <호스트명>에 해당하는 <IP>에 접근 가능해야 한다.
lsnrctl 명령
$ lsnrctl [옵션] <리스너명>
- 옵션
. start : 리스너를 시작한다.
. stop : 리스너를 종료한다.
. status : 리스너의 상태를 출력한다.(listener.ora 파일의 내용을 확인 할 수 있다.)
. reload : listener.ora를 다시 읽는다.
2)................................ 리눅스 클라이언트 설정과 접속
<TNS 명> =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP) (HOST = <IP 주소>) (PORT = <port 번호>))
(CONNECT_DATA = (SID = <서버의 SID>))
)
- TNS 명 : 접속 서버의 네트워크 이름
. 호스트명은 각 클라이언트가 임의로 정한다. (DNS 도메인명과는 무관하다.)
- HOST : 오라클 서버의 IP주소
- PORT : 접속 서버의 리스너 port 번호
- SID : 접속 오라클 서버의 SID
TNS_ADMIN=/app/ora19c/19c/network/admin의 tnsnames.ora 파일에 서버의 호스트ip와 SID명을 입력해준다.
3)................................ 윈도우 클라이언트 설정과 접속
윈도우 TNS_ADMIN ( C:\app\client\st01\product\19.0.0\client_1\network\admin) 위치에서 tnsnames.ora 파일을 열어
st01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.10.85)(port = 1521))
(CONNECT_DATA = (SID = DB19))
)
해당 내용을 입력해 주고 저장해 준다.
CMD를 실행하여
오라클 서버와 연결을 확인하고 SQLPLUS를 이용하여 DB접속을 한다.
9. 오라클 자동실행 설정
오라클이 설치된 리눅스를 root로 로그인하여
/etc/oratab 파일 수정한다.
vi /etc/oratab
'$ORACLE_SID:$ORACLE_HOME:Y'를 추가한다.
리눅스 실행시 오라클의 자동실행을 위해 /etc/rc.d/rc.local 에 실행 스크립트를 추가한다.
vi /etc/rc.d/rc.local
su - ora19c -c /app/ora19c/19c/bin/"lsnrctl start"
su - ora19c -c /app/ora19c/19c/bin/dbstart
ora19c 계정의 권한으로 부팅시 오라클이 실행되게 스크립트를 추가한다.
10. 관리자 패스워드 지정
환경
SID : DB19
네트워크 접속을 위해 sys(관리자) 패스워드를 지정한다.
orapwd
file = [패스워드파일]
password = [사용할 패스워드]
force =[y/n]
. 패스워드 파일이 있을 경우 강제 생성
format = [호환버전]
. 12이하로 지정하면 패스워드에 특수문자 불필요.
entries = [인원수]
# orapwd file=$ORACLE_HOME/dbs/orapwDB19 password=zaqxsw123 force=y
format=12
# sqlplus sys/zaqxsw123@dal as sysdba
11. 인스턴스 클라이언트 설치
1). 오라클 인스턴스 클라이언트 설치
root 계정으로 로그인하여 ftp로 oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm과 oracle-instantclient19.5-sqlplus-19.5.0.0.0-1.x86_64.rpm을 다운받아 준다.
rpm -Uvh oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm
rpm -Uvh oracle-instantclient19.5-sqlplus-19.5.0.0.0-1.x86_64.rpm
다운받은 파일을 설치해 준다.
# mkdir -p /usr/lib/oracle/network/admin/
디렉토리를 만들고
# vi /usr/lib/oracle/network/admin/sqlnet.ora
sqlnet.ora 파일에 NAMES.DIRECTORY_PATH= (TNSNAMES)을 추가한다.
vi /usr/lib/oracle/network/admin/tnsnames.ora
oracle =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp) (HOST = 192.168.12.12) (port = 1521))
(CONNECT_DATA = (SID = DB12))
)
를 추가한다.
2). 접속 환경 설정
vi .bash_profile에
# oracle install
export TNS_ADMIN=/usr/lib/oracle/network/admin
export LD_LIBRARY_PATH=/usr/lib/oracle/19.5/client64/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
를 추가해 준다.
3). 접속 테스트
접속을 확인한다.
# sqlplus 계정/패스워드@TNS명
'SQL' 카테고리의 다른 글
SQL 명령어 Self join, Outer join (0) | 2022.11.08 |
---|---|
SQL LIKE, BETWEEN, IN 연산자 (0) | 2022.11.08 |
SQL 명령어 정렬 order by, 선택(selection) where (0) | 2022.10.26 |
SQL 명령어 select, from, as생략 및 별명, nvl (0) | 2022.10.25 |
Oracle 베이스, 홈과 데이터베이스의 정의 (0) | 2022.10.24 |