고객사를 나가다보면, 오라클의 데이터를 티베로로 이관하거나
오라클과 티베로를 DB_Link를 사용하여 서로의 데이터베이스를 조회해야하는 경우가 생길 수 있다.
그럴 경우를 대비하여 오라클 환경에서 여러 테스트를 해볼 필요가 있다.
이를 위해 오라클을 리눅스 서버에 설치하고 테이블도 생성해보는 게시물을 작성해보도록 하겠다.
구성환경
OS : Centos7
IP : 192.168.76.139
Hostname : test
Oracle : 19C Linux (64bit)
1. 설치 파일 다운로드
- URL : https://www.oracle.com/kr/database/technologies/oracle-database-software-downloads.html#19c
Database Software Downloads | Oracle 대한민국
Oracle Database Express Edition Previous Database Release Software Oracle Database 10.2, 11.x, 12.x, and 18c are available as a media or FTP request for those customers who own a valid Oracle Database product license for any edition. To request access to t
www.oracle.com
환경에 맞는 파일을 다운로드 한다. (로그인 필요)
2. 설치 전 환경설정
- Hostname 등록
/etc/hosts 파일에 Hostname과 IP를 등록한다.
- SELINUX 설정
/etc/sysconfig/selinux 파일의 SELINUX 항목을 permissive로 설정한다.
- 사전 패키지 설치
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
yum upgrade
yum install gcc-c++
- Kernel 수정
/etc/sysctl.conf 파일에 아래 내용을 추가한다. (추가하고나서 sysctl –p로 반영해야한다)
yum을 통해 패키지를 설치했다면 자동 적용되며 Tibero와는 다르게 고정값으로 설정한다.
# oracle-database-preinstall-19c setting for fs.file-max is 6815744 fs.file-max = 6815744 # oracle-database-preinstall-19c setting for kernel.sem is '250 32000 100 128' kernel.sem = 250 32000 100 128 # oracle-database-preinstall-19c setting for kernel.shmmni is 4096 kernel.shmmni = 4096 # oracle-database-preinstall-19c setting for kernel.shmall is 1073741824 on x86_64 kernel.shmall = 1073741824 # oracle-database-preinstall-19c setting for kernel.shmmax is 4398046511104 on x86_64 kernel.shmmax = 4398046511104 # oracle-database-preinstall-19c setting for kernel.panic_on_oops is 1 per Orabug 19212317 kernel.panic_on_oops = 1 # oracle-database-preinstall-19c setting for net.core.rmem_default is 262144 net.core.rmem_default = 262144 # oracle-database-preinstall-19c setting for net.core.rmem_max is 4194304 net.core.rmem_max = 4194304 # oracle-database-preinstall-19c setting for net.core.wmem_default is 262144 net.core.wmem_default = 262144 # oracle-database-preinstall-19c setting for net.core.wmem_max is 1048576 net.core.wmem_max = 1048576 # oracle-database-preinstall-19c setting for net.ipv4.conf.all.rp_filter is 2 net.ipv4.conf.all.rp_filter = 2 # oracle-database-preinstall-19c setting for net.ipv4.conf.default.rp_filter is 2 net.ipv4.conf.default.rp_filter = 2 # oracle-database-preinstall-19c setting for fs.aio-max-nr is 1048576 fs.aio-max-nr = 1048576 # oracle-database-preinstall-19c setting for net.ipv4.ip_local_port_range is 9000 65500 net.ipv4.ip_local_port_range = 9000 65500 |
- limit 수정
/etc/security/limit.conf 파일에 아래 내용을 추가한다.
yum을 통해 패키지를 설치했다면 /etc/security/limits.d에 oracle-database-preinstall-19c.conf로 설정되어 있다.
# oracle-database-preinstall-19c setting for nofile soft limit is 1024 oracle soft nofile 1024 # oracle-database-preinstall-19c setting for nofile hard limit is 65536 oracle hard nofile 65536 # oracle-database-preinstall-19c setting for nproc soft limit is 16384 # refer orabug15971421 for more info. oracle soft nproc 16384 # oracle-database-preinstall-19c setting for nproc hard limit is 16384 oracle hard nproc 16384 # oracle-database-preinstall-19c setting for stack soft limit is 10240KB oracle soft stack 10240 # oracle-database-preinstall-19c setting for stack hard limit is 32768KB oracle hard stack 32768 # oracle-database-preinstall-19c setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM oracle hard memlock 134217728 # oracle-database-preinstall-19c setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM oracle soft memlock 134217728 |
- 방화벽 해제
Oracle Service Port로 사용할 Port의 방화벽을 해제한다. (기본값 1521 Port)
firewall-cmd --permanent --add-port=1521/tcp
firewall-cmd –reload
필자는 어짜피 내부 서버에서 쓸거라 보안을 신경쓸 필요가 없어서 아래 명령어로 방화벽 자체를 비활성화했다.
systemctl disable firewalld (영구 비활성화)
systemctl stop firewalld (재기동시 방화벽 활성화 됌)
- 스왑 메모리 증량
스왑 메모리가 6GB 이상은 되어야 오라클을 설치하는데 무리가 없다.
늘리고 싶은 메모리 크기에 1024를 곱하여 파일 크기를 계산해준다!
(ex : 1024M -> 1024 * 1024 = 1048576 )
- 스왑 파일을 저장할 디렉토리 생성
- mkdir /{디렉토리 지정}
- 스왑 파일 생성
- dd if=/dev/zero of=/{지정한 디렉토리 경로}/{스왑파일의 이름} bs=1024 count={파일 크기}
- 지정한 디렉토리로 이동하여 스왑 파일 실행
- mkswap {스왑파일의 이름}
- 스왑파일 활성화
- swapon {스왑파일의 이름}
-> 재부팅시 스왑파일은 비활성화 된다.
- 그룹 및 유저 생성
되어있을 확률이 높긴한데, 혹시 모르니까 해보자,,,
groupadd dba
useradd –g dba –d /home/oracle oracle
mkdir –p /home/oracle/product/19.3.0/dbhome_1
- 설치 파일 업로드 및 압축 해제
설치파일을 dbhome_1 폴더에 업로드하고 unzip 명령어를 통해 압축을 해제한다.
- 환경변수 설정
oracel 설치 유저의 .bash_profile에 아래의 환경변수를 설정한다.
export ORACLE_HOSTNAME=test export ORACLE_UNQNAME=oracle19c export ORACLE_BASE=/home/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1 export ORA_INVENTORY=/home/oracle/oraInventory export ORACLE_SID=orcl export DATA_DIR=/home/oracle/oradata export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH |
3. X window 설치
- URL : https://sourceforge.net/projects/xming/
- 설정 방법 : https://tisiphone.tistory.com/227
X window 테스트해보기
- yum install xclock
xclock
su – oracle
export DISPLAY=192.168.174.41:0 (자신의 Windows IP)
xclock
필자는 root 환경에서는 xclock이 실행되었으나,,,user 환경에서 실행되지 않아서 야근했다,,,
(에러메시지 : No protocol specified
Error : can't open display : 설정한 $DISPLAY)
혹시 나 같은 상황이 발생하는 사람은
윈도우의 C:\Program Files (x86)\Xming 경로에 있는 X0.host파일에 윈도우 IP를 추가해준후
컴퓨터를 재기동하면 된다.
4. Oracle 19C RDBMS 설치
- dbhome_1 디렉토리로 이동 후 ./runInstaller를 수행한다.
Database 생성 및 설정은 나중에 진행하므로 Set Up Software Only 항목을 선택한다.
Single Instance 항목을 선택한다.
Enterprise Edition으로 선택한다.
미리 설정했던 환경변수와 일치한지 확인 후 Next 버튼을 클릭한다.
특히 Software location 위치가 $ORACLE_HOME과 일치한지 확인한다.
미리 설정했던 $ORA_INVENTORY 환경변수와 일치한지 확인한다.
oraInventory 디렉토리가 생성되어 있지 않으면 오류가 발생하므로 미리 생성한다.
각 목적에 맞게 그룹을 지정한다 (해당 그룹들은 이미 생성되어 있음)
필자는 DBA 그룹으로 통일했다.
root 권한이 필요한 스크립트 수행을 위해 root 패스워드를 입력한다.
재까지 설정된 정보를 보여주며 Install 버튼을 눌러 설치를 시작한다.
설치 진행 중 root 권한에 대한 팝업이 뜨면 Yes를 클릭한다.
약 5분 ~10분 가량이 소요되며 Oracle19C RDBMS 설치가 완료되었다.
5. Listener 설정
- 터미널상태에서 netca 명령어를 통해 Oracle Net 환경설정을 시작한다.
첫번째 항목인 리스너 설정을 선택한다.
Add 항목을 선택한다.
Listener 이름을 설정한다.
필자는 기본값인 listener로 설정했다.
Listener 통신에 사용할 프로토콜을 선택한다.
Listener Service Port를 설정한다.
다른 Listener 구성은 필요없다.
Listener 구성도 완료 되었다.
Next 버튼을 선택한다.
Finish 버튼을 눌러 netca를 종료한다.
완료 후 터미널을 보았을 때
정상적으로 netca가 완료되었으면 exit code가 0으로 표시된다.
방금 설정한 listener의 상태는 lsnrctl status 명령어로 확인한다.
6. Database 생성
- dbca 명령어를 통해 데이터베이스 생성한다.
데이터베이스 생성을 선택한다.
MaxSession, Character Set, Memory 설정 등을 위해 Advanced configuration을 선택한다.
테스트를 위한 구성이므로 단일 구성 및 일반적인 TX처리를 선택한다.
Database의 Name, SID를 설정한다. (기존 환경변수와 동일하게 설정)
Container Database 항목은 체크하지 않는다.
기본값으로 선택한다.
빠른 복구 영역을 지정한다.
아카이브모드로 운영할 경우 아카이브 모드도 체크하여 설정한다.
Database에서 사용할 Listener를 지정한다.
앞 단계에서 설정했던 Listener를 선택한다.
특정 사용자의 데이터 접근을 차단하고 변경을 제한하는 설정이다.
테스트 목적이므로 체크하지 않고 다음 버튼을 누른다.
공유메모리를 자동으로 관리하도록 설정한다.
필자의 VM의 경우 총 4G 메모리가 할당되어 있다.
동시 접속할 수 있는 MaxSession을 설정한다.
데이터베이스의 Character Set을 설정한다.
테스트 목적의 구성이므로 전용 서버 모드로 구성한다.
샘플로 제공되는 schema를 생성한 경우 체크를 한다.
샘플로 제공되는 shcema 리스트는 아래와 같다.
Schema | 설명 |
HR | Human Resource |
OE | Order Entry |
OC | Online Catalog |
PM | Product Media |
IX | Information Exchange로 Oracle Advanced Queuing에 사용 |
SH | Sales History |
CO | Customer Orders |
Oracle에서 제공하는 무료 관리툴인 EM(Enterprise Manager)에 대한 설정화면이다.
테스트 목적이므로 모두 스킵한다.
Oracle 관리자 계정들에 대한 패스워드를 설정하는 화면이다.
테스트 목적이므로 모두 동일한 패스워드로 설정했다.
데이터베이스 생성 항목을 선택한다.
지금까지 설정된 값들을 보여준다.
설정한 내용이 맞는지 확인 후 Finish 버튼을 눌러준다.
데이터베이스가 생성되고 있는 화면이다.
설치가 완료되었다.
기본적으로 sys, system 계정을 제외하고 모든 계정은 잠겨있다.
7. Database 접속 테스트 및 기본 정보 확인
su – oracle
sqlplus “/as sysdba”
set lines 250
select dbid, name, created, log_mode, open_mode from v$database;
set pages 100
col username for a30
col account_status for a40
select username, account_status from dba_users;
잠겨있는 User는 아래의 명령어로 unlock이 가능하다.
alter user 유저명 account unlock;
- sqlplus 접속시 ??? 발생시 해결방법
export NLS_LANG=KOREAN_KOREA.KO16KSC5601 또는
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601 을 수행후 접속한다.
'etc' 카테고리의 다른 글
tpr 재생성하기 (0) | 2023.03.30 |
---|---|
Hugepage 설정하는 법 (0) | 2023.03.24 |
Tibero JDBC 연동 (0) | 2023.02.06 |
Tibero ODBC 연동 (0) | 2023.02.06 |
Tibero 정식 라이센스 발급 절차 (0) | 2023.01.11 |