-- CentOS7 (64bit) 환경에 Oracle 19c 설치
- CentOS7 최소 사양
Memory 2GB
Processors 1
Hard Disk(SCSI) 60GB
CD/DVD (IDE) Auto detct // Linux 이미지
Network Adapter Bridged(Automatic)
Display Auto detect
- Linux 설치 매뉴얼
step 1) 방화벽 비활성화 > #ntsysv > firewalld.service * 제거
step 2) /etc/rc.d/rc.local 파일에 다음 내용 추가 > rdate -s time.bora.net
step 3) /etc/rc.d/rc.local 파일 권한 변경 > #chmod u+x /etc/rc.d/rc.local
* CentOS7은 /etc/rc.d/rc.local 파일에 실행 권한이 없다. 그러므로 반드시 추가해준다.
step 4) selinux 비활성화 > /etc/selinux/config > #SELINUX=disabled
+ 오라클 자동 실행
step 5) /etc/oratab 파일 수정 > '$ORACLE_SID:$ORACLE_HOME:Y' 추가
step 6) /etc/rc.d/rc.local 파일에 다음 내용 추가 > su - ora19c -c /app/ora19c/19c/bin/"lsnrctl start"
su - ora19c -c /app/ora19c/19c/bin/dbstart
- Oracle 원본 파일 다운로드
FTP를 통해 오라클 원본 파일 'LINUX.X64_193000_db_home.zip' Download
step 1) #yum install ftp [FTP 설치]
step 2) 경로 이동 cd /app/ora19c/19c
step 3) 'LINUX.X64_193000_db_home.zip' Download
ftp [Server IP] ftp 192.168.10.11
해당 파일이 존재하는 디렉터리로 이동 cd /home2/data/down/DB/DBMS/19c
get [파일명] get LINUX.X64_193000_db_home.zip
- Linux 환경 설정
step 1) Oracle 관리 계정 및 그룹 생성
<환경 요약>
호스트명, IP: ora19c, 192.168.10.115
설치 계정: ora19c (UID: 1900)
소속 그룹: dba (GID: 1900)
홈 디렉터리: /home/ora19c
$ORACLE_BASE: /app/ora19c
$ORACLE_HOME: /app/ora19c/19c
#groupadd -g 1900 dba
#useradd -g dba -u 1900 ora19c
#passwd ora19c
****** 관리자 접속을 위한 패스워드 파일 생성
#orapwd file=$ORACLE_HOME/dbs/orapwDB19 password=admin1234 force=y format=12
#sqlplus sys/admin1234@dal as sysdba 는 외부에서 접속할 때 !
orapwd
file=[패스워드파일]
force=[y/n]
* 패스워드 파일이 있을 경우 강제로 생성한다.
format=[호환버전]
* 12 이하로 지정하면 패스워드에 특수문자 불필요
entries=[인원수]
****** sqlplus / as sysdba는 자기 서버에 들어갈 때만 !
#mkdir -p /app/ora19c/19c
#mkdir -p /app/oraInventory
$ORACLE_BASE는 oraInventory 디렉터리에 대한 권한이 없으므로
ora19c 계정이 /app 디렉터리에 대한 소유권과 쓰기 권한을 갖도록 설정한다.
#chown -R ora19c.dba /app/ora19c
#chown -R ora19c.dba /app/oraInventory
#chgrp -R dba /app
#chmod -R 775 /app
step 2) 리눅스 설정
#vi /etc/hosts > 다음 내용 추가
192.168.10.115 DB19.itclass.co.kr DB19
step 3) 추가 패키지 설치 - 오라클 설치에 반드시 필요
#yum -y install ksh libaio-devel compat-libcap1 compat-libstdc++-33 glibc-devel libstdc++-devel gcc-c++
#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
만약 해당 rpm 파일이 이미 존재한다면, #rpm -Uvh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
step 4) ora19c 계정 설정
- ora19c 계정으로 로그인
- .bash_profile 설정
#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:.
- ora19c 계정으로 재로그인 후 설정 확인
#env |grep ORACLE
- 설치용 패키지 준비 [Oracle Database 19c]
step 1) 압축 해제
#unzip LINUX.X64_193000_db_home.zip
step 2) Installer 실행
VMWARE 터미널에서 실행해야 함
#cd /app/ora19c/19c
설치 파일은 database 디렉터리에 생성된다.
#./runInstaller
step 3) Universal Installer
[설치 과정]
[구성 옵션] 단일 인스턴스 데이터베이스 생성 및 구성
[시스템 클래스] 데스크톱 클래스
[일반 설치 구성] Oracle Base: /app/ora19c
데이터베이스 파일 위치: /app/ora19c/oradata
전역 데이터베이스 이름: DB19.itclass.co.kr[혹은 DB19]
* 컨테이너 데이터베이스로 생성 절대 체크해서는 안 됨.
[인벤토리 생성] 인벤토리 디렉토리: /app/oraInventory
[루트 스크립트 실행 구성] 자동으로 구성 스크립트 실행 > "루트" 사용자 인증서 사용 > 비밀번호
...
[완료]
- 사용자 계정 생성
step 1) 관리자 접속
$ sqlplus /as sysdba
step 2) 테이블스페이스 확인
- USERS, TEMP 테이블 스페이스를 확인한다.
SQL> SELECT tablespace_name, status FROM dba_tablespaces;
step 3) 접속 가능한 사용자를 확인한다.
SQL> SELECT username, account_status FROM dba_users
2> WHERE account_status = 'OPEN';
step 4) st 계정 생성
SQL> CREATE USER [사용자]
2> IDENTIFIED BY [암호]
3> DEFAULT TABLESPACE [테이블스페이스]
4> TEMPORARY TABLESPACE [테이블스페이스]
5> QUOTA UNLIMITED ON [테이블스페이스];
step 5) 권한 부여
SQL> GRANT connect, resource TO st;
SQL> GRANT create view TO resource;
SQL> GRANT execute ON dbms_crypto TO resource;
step 6) 접속 확인
- 추가한 사용자로 접속을 확인한다.
$ sqlplus 사용자/암호
-- Oracle Network 설정과 접속
<시스템 구성>
1. 오라클 서버
IP: 192.168.10.115(oracle), 192.168.10.11(dal)
HOST명: DB19.itclass.co.kr
ORACLE_OWER: ora19c
ORACLE_HOME: /app/ora19c/19c
TNS_ADMIN: $ORACLE_HOME/network/admin
* $TNS_ADMIN은 listener.ora 파일을 저장하는 위치를 지정하는 환경변수로 $ORACLE_HOME 아래에 위치한다.
ORACLE_SID: DB19
2. 리눅스 클라이언트
IP: 192.168.10.111
ORACLE_HOME: /app/ora19c/19c
3. 윈도우 클라이언트
IP: 192.168.10.110
ORACLE_HOME: /app/ora19c/19c
------------------------------------------------
-- 오라클 서버 설정 : 리스너(Listener) 구동
- listener.ora 파일의 구성 - 자동생성
$ vi $TNS_ADMIN/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DB19.itclass.co.kr)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
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 [옵션] <리스너명>
* 리스너명을 적어주지 않으면 Default 리스너인 listener이 작동됨.
[옵션]
- start: 리스너 시작
- stop: 리스너 종료
- status: 리스너의 상태를 출력 (listener.ora 파일 내용 확인 가능)
- reload: listener.ora 다시 읽음
-- Linux Client 설정과 접속
- Local naming 방식에서 sqlnet.ora 파일의 구성 : 자동 생성
NAMES.DIRECTORY_PATH= (<변환방식>)
& vi $TNS_ADMIN/sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
- Local naming 방식에서 tnsnames.ora 파일의 구성
<TNS 명> =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <IP 주소>)(PORT = <port 번호>))
(CONNECT_DATA = (SID = <서버의 SID>))
)
- TNS 명: 접속 서버의 네트워크 이름
호스트명은 각 클라이언트가 임의로 정한다 (DNS 도메인명과는 무관하다.)
- HOST: 오라클 서버의 IP 주소
- PORT: 접속 서버의 리스너 port 번호
- SID: 접속 오라클 서버의 SID
$ vi $TNS_ADMIN/tnsnames.ora
[실습]
$ vi $TNS_ADMIN/tnsnames.ora
oracle =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.10.115)(port = 1521))
(CONNECT_DATA = (SID = DB19))
)
dal =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.10.11)(port = 1521))
(CONNECT_DATA = (SID = DB19))
)
$ tnsping oracle 혹은 [tnsping 192.168.10.115] < 권장x
$ tnsping dal 혹은 [tnsping 192.168.10.11] < 권장x
$ sqlplus php/php@oracle
$ sqlplus php/php@dal
-- 윈도우 클라이언트 설정과 접속
step 1) 윈도우도 TNS_ADMIN 디렉터리에 파일이 위치한다.
sqlnet.ora 파일 편집
tnsnames.ora 파일 편집
step 2) 오라클 서버와 연결 확인
step 3)Windows용 sqlplus를 이용하여 DB 접속
#sqlplus st01/st01@dal
#sqlplus st01/st01@oracle
-- Oracle instance client 설치
<설치 과정>
step 1. 오라클 인스턴스 클라이언트 설치
step 2. 접속 환경 설정
step 3. 접속 테스트
step 1) 오라클 인스턴스 클라이언트 설치
* https://www.oracle.com/kr/index.html에서 다음 파일들을 다운받는다.
'oracle-instantclient19.5-basic-19.5.0.0.0-1.x86_64.rpm'
'oracle-instantclient19.5-devel-19.5.0.0.0-1.x86_64.rpm'
* /usr/lib/oracle/19.5가 ORACLE_BASE 디렉터리로 설치된다.
# 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
* 리눅스 환경 그룹이 [최소 설치]인 경우 libaio 패키지 설치가 필요하다.
#yum install -y libaio
* sqlnet.ora 파일과 tnsnames.ora 파일을 생성한다.
#mkdir -p /usr/lib/oracle/network/admin/
#vi /usr/lib/oracle/network/admin/sqlnet.ora
NAMES.DIRECTORY_PATH=(TNSNAMES)
#vi /usr/lib/oracle/network/admin/tnsnames.ora
ora115 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)(HOST = 192.168.10.115)(port = 1521))
(CONNECT_DATA = (SID = DB19))
)
step 2) 접속 환경 설정
* 각 사용자의 .bash_profile에 다음을 추가한다.
# oracle install
export TNS_ADMIN=/usr/lib/oracle/network/admin
export LD_LIBRARY_PATH=/usr/lib/oracle/19.5/client64/lib/oracle/19
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
(또는 AMERICAN_AMERICA.KO16MSWIN949)
* 또는 동일한 설정을 /etc/profile에 설정할 수도 있다.
모든 리눅스 계정에서 오라클 접속이 가능하다.
step 3) 접속 테스트
* 접속을 확인한다.
# sqlplus 계정/패스워드@TNS명
'인프라 7기 > Oracle' 카테고리의 다른 글
Oracle 실습 : Quota와 User (0) | 2023.03.17 |
---|---|
Oracle 실습 : User 생성, 관리, 삭제 (0) | 2023.03.16 |
Oracle 실습: Open/Close 상태에서 tablespace 이동 (0) | 2023.03.16 |
Oracle 실습 : Redo log file 재배치 (0) | 2023.03.13 |
Oracle 실습 : Redo log group/member 추가와 삭제 (0) | 2023.03.13 |