systemctl 는 RHEL 7 에 도입된 systemd 를 관리/제어하는 명령어이다. /usr/lib/systemd/system/ 디렉토리에 .service 파일을 만들어 서비스를 추가할 수 있다. Oracle 구동에 필요한 lsnrctl 과 dbstart 역시 직관적으로 사용할 수도 있지만 부팅시 자동실행을 위해 서비스에 등록해 본다.
Oracle 11g 는 다운로드 하는 것 부터가 불편하다. 구글에서 대충 검색하면 현재 보편화된 19c 다운로드 페이지로 이동되고, 모든 버전을 확인하고 다운받으려면 Oracle Software Delivery Cloud 사이트(https://edelivery.oracle.com) 로 이동해야 한다. 마찬가지로 oracle 계정이 필요하다.
2. X window 준비
Oracle 11g 는 X window 환경을 필요로 하기 때문에 X window 환경을 준비한다.
방법1. GUI 용 서버 설치 # yum groupinstall 'Server with GUI'
방법2. GNOME Desktop 설치 # yum groupinstall 'GNOME Desktop'
방법3. 최소한의 X11 패키지 설치 및 Xming(원격) 사용하기 link: Xming 설치 링크
CentOS GUI 환경에서는 설치 중 에러 메시지 등이 깨져 보일 수 있는데 이럴 때는 설치를 중단하고 윈도우즈 환경(Xming) 에서 원격 접속하면 설치 중 메시지들을 정상적으로 확인할 수 있다.
오라클 설치 전에는 메모리도 확보해야 하고, 파일 디스크립터, OS 커널 파라미터 설정도 해야 하고, 의존 라이브러리도 설치해야 한다. 아무 설정 없이 오라클 설치를 진행하면 다음의 화면을 만날 수 있다.
ignore all 을 체크하고 설치를 진행해도 오라클 설치는 마칠 수 있지만, 정상적으로 설치가 완료됐다고 볼 수도 없고 굳이 그렇게 설치할 필요도 없다. 또 ignore 체크를 해도 진행되지 않는 경우도 있다. 나는 Swap Memory 와 pdksh(Public domain Korn shell) 때문에 진행이 되지 않은 적이 있다.
5.1 OS 커널 파라미터 값 설정 (ignore 로 fix 가능)
# vi /etc/sysctl.conf
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 10523004
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
# /sbin/sysctl -p
5.2 유저 자원 사용 제한값 설정 (ignore 로 fix 가능)
# vi /etc/security/limits.conf
...
oracle soft nproc 2048
oracle hard nproc 65536
oracle soft nofile 1024
oracle hard nofile 65536
이 부분은 조금 이해가 안된다. Oracle 11g R2 설치시 최소 메모리가 1GB 인데, 한번은 16GB 시스템에서 Actual Value 가 8GB, Expected Value 가 16GB 로 되어 진행되지 않은 적이 있다. 메모리가 부족하지도 않은데 시스템 메모리 만큼 영끌하라는게 말이됨? 아무튼 이런 이유로 진행이 되지 않는다면 Expected Value 까지 swap 메모리를 확보해야 한다.
$ sqlplus / as sysdba
SQL> CREATE USER username identified by password;
SQL> GRANT resource, connect, dba to username;
SQL> SELECT * FROM ALL_USERS
USERNAME USER_ID CREATED
------------------------------ ---------- ------------------
OOPS4U 91 10-JUL-21
Xming + putty 로 oracle 11g 설치하기. 설치는 알아서들 하시고... 실제 제목은 설치 화면 띄우기?
리눅스에 오라클을 설치할 때 꼭 필요한 것이 GUI 환경이다. Xming 이나 X window manager 를 이용하면 원격으로 GUI 환경의 창을 띄울 수 있다. (무료인 Xming 추천) 서버가 로컬에 있다면 X window 깔고 GUI 화면에서 작업하면 되겠지만, 원격에서 X window 가 깔리지 않았을 때 GUI 창을 띄우는데 어떤 것들이 필요한지 테스트 해 보았다.
* 윈도우환경 - OS : Windows 10 - Xming 최신버전 (기본값으로 설치) - putty
* 서버환경 - OS : CentOS 7 minimal (OS 설치시 네트워크 on)
1. putty 설정 후 접속 - Connection - SSH - X11 - Enable X11 forwarding 체크
- /etc/ssh/sshd_config 파일에도 X11Forwarding 옵션이 있지만 기본적으로 활성화 상태이다. - 이 두 옵션이 모두 활성화 된 상태여야 한다.
리스너만 가동되고 있다면, 오라클 데이터베이스에 원격으로 접속하는 것도 가능합니다. Toad 로 연결을 시도해 봤는데 오라클 클라이언트를 설치하지 않으면 접속조차 안되더군요. 구글링 결과 클라이언트 설치 없이도 가능하다는 분이 간혹 있는데 저는 안되는 걸로 결론 내렸습니다.^^;
오라클 클라이언트 설치 후에 Toad 에서 direct 로 접속을 했고, sqlplus 로도 접속이 됐습니다. sqlplus 접속 시 username 은 다음의 형식을 참조하여 접속할 수 있습니다.
- host : 호스트 이름이나 IP 주소를 입력 - port : 생략하면 표준 포트인 1521 할당 - service_name : DB_NAME.DB_DOMAIN 으로 구성 - server : 서비스 핸들러 타입 (dedicated, shared, pooled) - instance_name : 접속할 인스턴스
sql*plus 외부 접속 예제)
// 데이터베이스에 접속하지 않고 일단 SQL*Plus 시작 $ sqlplus /nolog
// system 사용자로 로컬 데이터베이스 접속 SQL> conn system
// sysdba 권한으로 sys 사용자 접속 SQL> conn sys as sysdba
// 로컬에서 sysdba 권한으로 접속 SQL> conn / as sysdba
// dbhost.example.com 이란 호스트에서 가동중인 orcl.example.com 데이터베이스에 nick 사용자로 접속 SQL> conn nick@"dbhost.example.com/orcl.example.com"
// 호스트 이름 대신 ip 사용 SQL> conn nick@"192.0.2.1/orcl.example.com"
// 기본 포트 이외의 포트 지정 SQL> conn nick@"dbhost.example.com:1522/orcl.example.com"
// 서비스 이름을 생략하고 인스턴스 지정 SQL> conn nick@"dbhost.example.com//orcl"
// 클라이언트에서 sales1으로 지정된 net 서비스로 로그인 SQL> conn nick@sales1