728x90
반응형

Vmware 상에 설치된 우분투 아이피 설정 방법에 대해 알아보겠습니다. 

 

Vmware Newtwork 설정 매뉴에서 NAT 설정을 별도로 해주고 설정한 네트웍 정보를 

vmware 에서 설치된 우분투 네트워크  아이피를 설정해야 

호스트 컴퓨터에서 Vmware 에 설정된 Static IP 로 접속이 가능 합니다. 

 

VMware NAT 설정 

 

Edit -> Virtual Network Editor 매뉴를 선택후 NAT Settings 버튼을 눌러줍니다. 

 

Virtual Network Editor

NAT NetWork IP 정보 셋팅 

3 번 셋팅을 통해  호스트 컴퓨터(노트북) 와 우분투와 접속이 가능해집니다. 

Map Incoming Port 셋팅(포트 포워딩 ) 을 진행 해보겠습니다. 

아래 정보는 ssh 포트 포워딩을  하기위해 설정 하겠습니다. 

호스트 컴퓨터 1022 포트로  연결 시도시 우분투 ssh 22번 포트로  접속을 시도합니다. 

 

 

Ubuntu(우분투) Static IP 설정

이번에는 우분투 네트워크 아이피 설정을 셋하겠습니다. 

vmware 에서 설정한 ip 정보로 설정을 진행 주면 됩니다. 

 

IPV4 항목 항목을 아래와 같은 정보로 설정합니다. 앞서  vmware nat 정보 설정 값과 동일 합니다. 

우분투 IP 설정

설정이 완료 되면 터미널을 열어서  설정한 IP 정보로 잘 셋팅되어 있는지 확인하고 \

포털 사이트 접속이 잘되는지도 확인 합니다. 

 

 

 

호스트 PC (노트북) 포트 포워딩을 통한 우분투 접속 

 

아래 그림은 호스트 컴퓨터 1022 포트로 접속시 vmware 설정한 ip 정보로 포트 포워딩 하는 이해를 돕기 위한 설명입니다. 

 

콘솔 접속 -> 호스트 pc (1022) 포트 포워딩  ->vm ware ip port (22) 접속 

 

접속 성공 확인

 

 

접속 연결 실패시 확인 사항 

VMnet8 사용 상태 확인 

네트워크 연결 -> 고급 네트워크 설정 -> vmware network adapter vmnet8 사용 상태 확인 

윈도우 11 네트워크 연결 상태 확인

우분투 ssh 설치 상태 확인 

설치 및 방화벽 상태를 확인 합니다. 

ssh 설치 및 접속 방법은 https://growupcoding.tistory.com/24 자료를 확인하세요 

728x90
반응형

'06.OS > Linux' 카테고리의 다른 글

[Centos] Telnet 설치  (0) 2022.04.05
[Ubuntu] 우분투 ROOT 접속  (0) 2022.03.31
[CentOS]Host Name 변경  (0) 2022.03.26
[Ubuntu] Vmware Ubuntu20.04 LTS 설치  (0) 2022.03.26
[Shell]trap 을 활용한 리눅스(Signal) 시그널 처리  (0) 2022.03.25
728x90
반응형

디렉토리내 파일이 존재 하는지 확인하는 java 코드입니다 .

디렉토리를 조회후 파일이 있는지 확인하고 디렉토리내 또 다른 디렉토리가 존재 한다면 재귀 함수 호출을 통해 

하위 파일 까지 출력 하는 코드 입니다. 

Oracle 샘플 스키마 스크립트를 가지고 테스트해보겠습니다. 

 

import java.io.File;
import java.io.IOException;
import java.security.AccessControlException;
import java.sql.SQLException;
import java.util.ArrayList;

public class DirectoryFileList {

	public static void main(String[] args)
			throws AccessControlException, SQLException, ClassNotFoundException, IOException {

		String path = "D:\\998.Tmp\\db-sample-schemas-19.2\\db-sample-schemas-19.2";

		ArrayList al = new ArrayList<String>();
		subDirList(path, al);

	}

	public static void subDirList(String source, ArrayList<String> list) {

		File dir = new File(source);
		File[] fileList = dir.listFiles();

		try {

			for (int i = 0; i < fileList.length; i++) {

				File file = fileList[i];

				if (file.isFile()) {

					// 파일이 있다면 파일 이름 출력
					System.out.println("\t File name :" + file.getAbsoluteFile());
					list.add(file.getParent() + File.separator + file.getName());

				} else if (file.isDirectory()) {

					System.out.println("Directory name:" + file.getName());
					// 서브디렉토리가 존재하면 재귀적 방법으로 다시 탐색
					list.add(file.getParent() + File.separator + file.getName());
					subDirList(file.getCanonicalPath().toString(), list);

				}

			}

		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}

 

실행결과

Directory name:bus_intelligence
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\bus_intelligence\bi_main.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\bus_intelligence\bi_oe_pr.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\bus_intelligence\bi_sh_pr.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\bus_intelligence\bi_views.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\CONTRIBUTING.md
Directory name:customer_orders
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\co_ddl.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\co_dml.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\co_drop_objects.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\co_drop_user.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\co_main.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\co_set_identity_starts.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\co_user.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\customers.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\orders.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\order_items.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\products.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\README.md
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\README.txt
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\sample_queries.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\customer_orders\stores.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\drop_sch.sql
Directory name:human_resources
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\human_resources\hr_analz.sql
 File name :D:\998.Tmp\db-sample-schemas-19.2\db-sample-schemas-19.2\human_resources\hr_code.sql

.
728x90
반응형

'03.Program > 02.java' 카테고리의 다른 글

[Java] JDBC 프로그래밍  (0) 2022.04.20
[Java basic-Utility] 파일 비교  (0) 2022.03.27
Linux OpenJdk 설치  (0) 2022.03.21
728x90
반응형

호스트명 변경 방법

리눅스 에서 호스트명을 변경하고 확인하는 방법에 대해 알아 보겟습니다. 

1.hosts 파일 호스트 네임 등록

$ vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6


192.168.xx.xx centos7 my.centos7.com

등록된 호스트 명으로 network ping 테스트


[root@minsvr:/root]$ ping centos7
PING centos7 (192.168.17.xx) 56(84) bytes of data.
64 bytes from centos7 (192.168.xx.xx): icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from centos7 (192.168.xx.xx): icmp_seq=2 ttl=64 time=0.051 ms
64 bytes from centos7 (192.168.xx.xx): icmp_seq=3 ttl=64 time=0.056 ms

--- centos7 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.051/0.054/0.056/0.002 ms

 

2. 서버 호스트명 직접 변경

//호스트 네임 직접변경
echo centos7 > /proc/sys/kernel/hostname

[root@centos7:/root]$ cat /proc/sys/kernel/hostname 
centos7

 

3. hostnamectl 을 이용한 호스트명 변경

[root@centos7:/root]$ hostnamectl set-hostname centos7_myserver
[root@centos7_myserver:/root]$ hostname 
centos7_myserver

728x90
반응형

'06.OS > Linux' 카테고리의 다른 글

[Ubuntu] 우분투 ROOT 접속  (0) 2022.03.31
[Ubuntu] Static IP 설정  (0) 2022.03.26
[Ubuntu] Vmware Ubuntu20.04 LTS 설치  (0) 2022.03.26
[Shell]trap 을 활용한 리눅스(Signal) 시그널 처리  (0) 2022.03.25
Ubuntu SSH 접속 방법  (0) 2022.03.20
728x90
반응형

vmware 최신 버전 에서 우분투 설치하는 법에 대해 알아 보겠습니다. 

vmware 16.2.3 버전에서 설치를 진행 해보도록 하겠습니다. 

 

Ubuntu 이미지 다운로드 

설치를 진행하기위해 우분투 를 다운로드 받습니다. 

설치를 진행하게될 버전은 20.04.4 LTS(Long Term Service) 버전입니다. 

https://ubuntu.com/download/desktop

 

Download Ubuntu Desktop | Download | Ubuntu

Ubuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things.

ubuntu.com

 

Vmware Virtual Machine 생성 

우분투 설치를 위해 Vmware 에 가상 머신을 생성 합니다. 

 

 

우분투를 설치 사양을 설정 해 줍니다. 

 

네트워크 Type 을 지정해줍니다. 

 

Disk 생성 방식을 지정해 줍니다. 

 

Disk size 를 설정해 줍니다.  제 노트북은 여유공간이 80G 정도 남아 있어서 40G 정도로 설정 하겠습니다. 

 

Vmware 설정이 모두 완료 되었습니다. 

우분투 설치

설정이 모두 완료 되고 Finish 버튼을 누르면 Ubuntu 가 설치가 진행 됩니다. 

 

설치가 완료되었습니다. 

이제 우분투를 사용 하세요

 

728x90
반응형

'06.OS > Linux' 카테고리의 다른 글

[Ubuntu] Static IP 설정  (0) 2022.03.26
[CentOS]Host Name 변경  (0) 2022.03.26
[Shell]trap 을 활용한 리눅스(Signal) 시그널 처리  (0) 2022.03.25
Ubuntu SSH 접속 방법  (0) 2022.03.20
Ubuntu 명령어  (0) 2022.03.19
728x90
반응형

시그널(Signal) 이란? 

Signal 이란 프로세나 시스템에 이벤트를 전달하는 신호를 나타냅니다. 

일반적으로 흔시 하용하는 Ctrl +C 같은 경우도 Signal의 한 종류이다.

 

시그널(Signal) 종류

리눅스 콘솔 창 에서 kill -l 명령을 사용하면 시그널 리스트를 확인 할 수 있다. 

 

$ kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

$  help kill
kill: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
    Send a signal to a job.
    
    Send the processes identified by PID or JOBSPEC the signal named by
    SIGSPEC or SIGNUM.  If neither SIGSPEC nor SIGNUM is present, then
    SIGTERM is assumed.
    
    Options:
      -s sig    SIG is a signal name
      -n sig    SIG is a signal number
      -l        list the signal names; if arguments follow `-l' they are
        assumed to be signal numbers for which names should be listed
    
    Kill is a shell builtin for two reasons: it allows job IDs to be used
    instead of process IDs, and allows processes to be killed if the limit
    on processes that you can create is reached.
    
    Exit Status:
    Returns success unless an invalid option is given or an error occurs.

 

시그널(Signal) 종류 및 설명 

리눅스 시그널 종류

 

trap을 이용한 Signal 처리 예제

 무한으로 수행되는 쉘 코드로 trap 을 이용한 시그널 처리 동작에 대해 알아보겠습니다. 

소개하는 코드는 1 초마다 현재 수행되고 있는 loop.sh 프로세스를 확인하고 

CTRL +C 시그널을 포착해서 프로그램을 종료하는 예제입니다. 

 

loop.sh 수행 순서

while loop 수행 : loop count : [1]

사용자 CTRL+C (​SIGINT:2  시그널 발생​) => _int() 함수 호출 => kill -15 (SIGTERM ) 시그널 발생 
=>_term() 함수 호출 => kill -9로 loop.sh 프로세스 종료

 

loop.sh

#!/bin/bash

loop_cnt=0
echo "=================================="
echo "======= LOOP SHELL PROCESS ======="
echo "=================================="

ps -ef|grep loop.sh
process=`ps -ef|grep loop.sh |awk '{print $2}'`
echo "PROCESS_ID:[ $process ]"

########### SIGTERM handler ############
function _term() {
 echo "SIGTERM Event call"
 kill -9 $process
}

########### SIGINT handler ############
function _int() {
 echo "SIGINT Event call"
 kill -15 $process

}


trap _term SIGTERM

trap _int SIGINT

while true
do
loop_cnt=`expr $loop_cnt + 1`

echo "loop count : [$loop_cnt]"

sleep 1

done

 

수행 결과

728x90
반응형

'06.OS > Linux' 카테고리의 다른 글

[CentOS]Host Name 변경  (0) 2022.03.26
[Ubuntu] Vmware Ubuntu20.04 LTS 설치  (0) 2022.03.26
Ubuntu SSH 접속 방법  (0) 2022.03.20
Ubuntu 명령어  (0) 2022.03.19
우분투 Chrom(크롬)설치  (0) 2022.03.09
728x90
반응형

Oralce 환경설정 방법

앞서 docker-compose 를 이용한 Oracle 19c 설치 글에서는 단순히  설치 방법에 대해서 알아보았습니다. 

이번에는 Docker 설치후 테스트를 좀더 효율적으로 진행하기 위한 방법에 대해 소개하겠습니다. 

 

_ORACLE_SCRIPT 파라미터 적용 

19c 에서는 테이블이나 유저를 생성하게 되면 ORA-65096 에러가 발생 합니다. 

_ORACLE_SCRIPT  파라미터를 변경함으로서 에러발생을 해결 할 수 있습니다. 

 

 

SQL> create user test1 identified by test;
create user test1 identified by test
            *
ERROR at line 1:
ORA-65096: invalid common user or role name


SQL> ALTER SESSION SET "_ORACLE_SCRIPT"=true;

Session altered.

SQL> 
SQL> create user test1 identified by test;        

User created.

외부 장비 접속 설정 (네트워크 설정)

 

tnsnames.ora 설정

ORCLCDB=localhost:1521/ORCLCDB

ora19c= 
(DESCRIPTION = 
  (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = ORCLCDB)
  )
)
ORCLPDB1= 
(DESCRIPTION = 
  (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = ORCLPDB1)
  )
)

listener.ora 설정

LISTENER =
(DESCRIPTION_LIST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
  )
)

SID_LIST_LISTENER =
(SID_LIST =
    (SID_DESC =
        (GLOBAL_DBNAME = ORCLCDB)
        (SID_NAME = ORCLCDB)
    )     
    (SID_DESC =
        (GLOBAL_DBNAME = ORCLPDB1)
        (SID_NAME =ORCLPDB1)                
    )
)

 

 

리스너 재시작 

[oracle@01a4f713764f ~]$ lsnrctl stop

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-MAR-2022 13:34:19

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
The command completed successfully
[oracle@01a4f713764f ~]$ lsnrctl stop

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-MAR-2022 13:34:23

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 2: No such file or directory
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.0)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
[oracle@01a4f713764f ~]$ lsnrctl start 

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-MAR-2022 13:34:36

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/01a4f713764f/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                20-MAR-2022 13:34:37
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/01a4f713764f/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Services Summary...
Service "ORCLCDB" has 1 instance(s).
  Instance "ORCLCDB", status UNKNOWN, has 1 handler(s) for this service...
Service "ORCLPDB1" has 1 instance(s).
  Instance "ORCLPDB1", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

리스너 상태 확인 

[oracle@01a4f713764f ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-MAR-2022 13:35:44

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                20-MAR-2022 13:34:37
Uptime                    0 days 0 hr. 1 min. 7 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/01a4f713764f/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=01a4f713764f)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/admin/ORCLCDB/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "ORCLCDB" has 2 instance(s).
  Instance "ORCLCDB", status UNKNOWN, has 1 handler(s) for this service...
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
Service "ORCLCDBXDB" has 1 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
Service "ORCLPDB1" has 2 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
  Instance "ORCLPDB1", status UNKNOWN, has 1 handler(s) for this service...
Service "da8f3910a1110e42e053020012ac8b77" has 1 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@01a4f713764f ~]$ 

sqlplus 접속 확인

 

[oracle@01a4f713764f ~]$ sqlplus sys/oracle@ora19c as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Mar 20 13:37:44 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select * from dual;

D
-
X

 

728x90
반응형
728x90
반응형

이전에  Docker 를 활용해 Oracle19c 를 설치 하는 방법에 알아 보았습니다. 

이번에는 docker-compose 를 활용해서 Oracle19c 를 설치 해보겠습니다. 

 

설치를 위한 파일 구조 생성 

이전에 소개했던 오라클19c 설치 글 (https://growupcoding.tistory.com/18 ) 내용과 거의 동일 하며 

Docker 오라클 실행 부분만 docker-compose를 활용해 설치해보겠습니다. 

compose 디렉토리 생성 및 공유 디렉토리 권한 변경

  • compose : 파일 및 Oracle19c 가 설치될 파일 디렉토리를 만듭니다. 
  • docker-compose.ora19c.yml : 이미지 빌드를 하기 위한 compose 파일 
  • or19env :  오라클 환경파일(ORACLE_HOME, ORACLE_SID)
  • oradata/ora19_data :오라클 데이터 파일이 생성될 공유 디렉토리

 

oracle-docker@ubuntu2004:~$ tree compose/
compose/
|-- docker-compose.ora19c.yml
|-- or19env
`-- oradata
    `-- ora19_data
        |-- ORCLCDB [error opening dir]
        `-- dbconfig
            `-- ORCLCDB
                |-- listener.ora
                |-- orapwORCLCDB
                |-- oratab
                |-- spfileORCLCDB.ora
                |-- sqlnet.ora
                `-- tnsnames.ora

 

compose 디렉토리 생성

mkdir -p compose/oradata/ora19_data

chmod -Rf 777 compose/oradata/ora19_data

사전 확인 및 준비 사항 (image,환경파일) 

oracle-docker@ubuntu2004:~/compose$ docker image ls
REPOSITORY        TAG         IMAGE ID       CREATED        SIZE
oracle/database   19.3.0-ee   c711d39c5597   2 hours ago    6.53GB
oraclelinux       7-slim      8dd98256c841   10 hours ago   133MB


oracle-docker@ubuntu2004:~/compose$ vi ora19env 
ORACLE_PWD=oracle
ORACLE_SID=orclcdb

docker-compose.yml 작성 

  • env_file : 오라클에서 container 사용하게될 환경 변수 입니다. 
  • image : 빌드를 하게될 오라클 19c 이미지입니다. 
  • ports : 오라클 컨테이너와 통신에 사용하게될 통신 포트 입니다. 설정은 host port: container port 로 작성 합니다. 
  • volumes : 컨테이너와 공유하게될 호스트 볼륨 정보입니다. 
version: '3.8'

 services:
     ora19c:
         container_name: ora19c
 
         env_file:
             - ora19env
 
         image: oracle/database:19.3.0-ee
 
         ports:
             - 1521:1521
             - 5500:5500
 
         volumes:
             - ./oradata/ora19_data:/opt/oracle/oradata
 
         privileged: true

Docker 명령어와 비교해 보겠습니다.

빌드시 항항 명령어를 기억해야 하지만 docker-compose 파일로 관리 하면 이미지별 컨테이너 관리도 쉽습니다. 

또 서비스에 여러개의 컨테이너를 등록 할수도 있습니다. 

  • 오라클 Docker 명령
docker run  \
--name oracle19c \
-p 1519:1521 \
-p 5519:5500 \
-e ORACLE_PWD=oracle \
-e ORACLE_SID=orclcdb \
-v ./data:/opt/oracle/oradata \
oracle/database:19.3.0-ee

 

docker-compose 빌드 

[oracle-docker@ubuntu2004:/home/oracle-docker/compose]$ docker-compose -f docker-compose.ora19c.yml up
Creating network "compose_default" with the default driver
Creating ora19c ... done
Attaching to ora19c
ora19c    | ORACLE EDITION: ENTERPRISE
ora19c    | 
ora19c    | LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-MAR-2022 08:09:28
ora19c    | 
ora19c    | Copyright (c) 1991, 2019, Oracle.  All rights reserved.
ora19c    | 
ora19c    | Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait...
ora19c    | 
ora19c    | TNSLSNR for Linux: Version 19.0.0.0.0 - Production
ora19c    | System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
ora19c    | Log messages written to /opt/oracle/diag/tnslsnr/bc698e003576/listener/alert/log.xml
ora19c    | Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
ora19c    | Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
ora19c    | 
ora19c    | Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
ora19c    | STATUS of the LISTENER
ora19c    | ------------------------
ora19c    | Alias                     LISTENER
ora19c    | Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
ora19c    | Start Date                19-MAR-2022 08:09:32
ora19c    | Uptime                    0 days 0 hr. 0 min. 3 sec
ora19c    | Trace Level               off
ora19c    | Security                  ON: Local OS Authentication
ora19c    | SNMP                      OFF
ora19c    | Listener Parameter File   /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
ora19c    | Listener Log File         /opt/oracle/diag/tnslsnr/bc698e003576/listener/alert/log.xml
ora19c    | Listening Endpoints Summary...
ora19c    |   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
ora19c    |   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
ora19c    | The listener supports no services
ora19c    | The command completed successfully
ora19c    | Prepare for db operation
ora19c    | 8% complete
ora19c    | Copying database files
ora19c    | 31% complete
ora19c    | Creating and starting Oracle instance
ora19c    | 32% complete
ora19c    | 36% complete
ora19c    | 40% complete
ora19c    | 43% complete
ora19c    | 46% complete
ora19c    | Completing Database Creation
ora19c    | 51% complete
ora19c    | 54% complete
ora19c    | Creating Pluggable Databases
ora19c    | 58% complete
ora19c    | 77% complete
ora19c    | Executing Post Configuration Actions
ora19c    | 100% complete
ora19c    | Database creation complete. For details check the logfiles at:
ora19c    |  /opt/oracle/cfgtoollogs/dbca/ORCLCDB.
ora19c    | Database Information:
ora19c    | Global Database Name:ORCLCDB
ora19c    | System Identifier(SID):ORCLCDB
ora19c    | Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.
ora19c    | 
ora19c    | SQL*Plus: Release 19.0.0.0.0 - Production on Sat Mar 19 08:41:27 2022
ora19c    | Version 19.3.0.0.0
ora19c    | 
ora19c    | Copyright (c) 1982, 2019, Oracle.  All rights reserved.
ora19c    | 
ora19c    | 
ora19c    | Connected to:
ora19c    | Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
ora19c    | Version 19.3.0.0.0
ora19c    | 
ora19c    | SQL> 
ora19c    | System altered.
ora19c    | 
ora19c    | SQL> 
ora19c    | System altered.
ora19c    | 
ora19c    | SQL> 
ora19c    | Pluggable database altered.
ora19c    | 
ora19c    | SQL> 
ora19c    | PL/SQL procedure successfully completed.
ora19c    | 
ora19c    | SQL> SQL> 
ora19c    | Session altered.
ora19c    | 
ora19c    | SQL> 
ora19c    | User created.
ora19c    | 
ora19c    | SQL> 
ora19c    | Grant succeeded.
ora19c    | 
ora19c    | SQL> 
ora19c    | Grant succeeded.
ora19c    | 
ora19c    | SQL> 
ora19c    | Grant succeeded.
ora19c    | 
ora19c    | SQL> 
ora19c    | User altered.
ora19c    | 
ora19c    | SQL> SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
ora19c    | Version 19.3.0.0.0
ora19c    | The Oracle base remains unchanged with value /opt/oracle
ora19c    | The Oracle base remains unchanged with value /opt/oracle
ora19c    | #########################
ora19c    | DATABASE IS READY TO USE!
ora19c    | #########################
ora19c    | The following output is now a tail of the alert.log:
ora19c    | ORCLPDB1(3):ALTER DATABASE DEFAULT TABLESPACE "USERS"
ora19c    | ORCLPDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
ora19c    | 2022-03-19T08:41:28.125385+00:00
ora19c    | ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORCLCDB/control01.ctl' SCOPE=SPFILE;
ora19c    | 2022-03-19T08:41:28.318093+00:00
ora19c    | ALTER SYSTEM SET local_listener='' SCOPE=BOTH;
ora19c    |    ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
ora19c    | Completed:    ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
ora19c    | 
ora19c    | XDB initialized.
ora19c    | 2022-03-19T08:50:54.083033+00:00
ora19c    | ORCLPDB1(3):Resize operation completed for file# 10, old size 327680K, new size 337920K
ora19c    | 2022-03-19T09:00:56.067953+00:00
ora19c    | Resize operation completed for file# 3, old size 522240K, new size 532480K

Docker 프로세스 확인

  • docker-compose -f docker-compose.ora19c.yml ps -a
  • docker ps -a 

oracle-docker@ubuntu2004:~/compose$ docker-compose -f docker-compose.ora19c.yml ps -a
 Name               Command                  State                                             Ports                                       
-------------------------------------------------------------------------------------------------------------------------------------------
ora19c   /bin/sh -c exec $ORACLE_BA ...   Up (healthy)   0.0.0.0:1521->1521/tcp,:::1521->1521/tcp, 0.0.0.0:5500->5500/tcp,:::5500->5500/tcp
oracle-docker@ubuntu2004:~/compose$ docker-compose -f docker-compose.ora19c.yml ps 
 Name               Command                  State                                             Ports                                       
-------------------------------------------------------------------------------------------------------------------------------------------
ora19c   /bin/sh -c exec $ORACLE_BA ...   Up (healthy)   0.0.0.0:1521->1521/tcp,:::1521->1521/tcp, 0.0.0.0:5500->5500/tcp,:::5500->5500/tcp
oracle-docker@ubuntu2004:~/compose$ docker ps -a
CONTAINER ID   IMAGE                       COMMAND                  CREATED             STATUS                   PORTS                                                                                  NAMES
bc698e003576   oracle/database:19.3.0-ee   "/bin/sh -c 'exec $O   About an hour ago   Up 5 minutes (healthy)   0.0.0.0:1521->1521/tcp, :::1521->1521/tcp, 0.0.0.0:5500->5500/tcp, :::5500->5500/tcp   ora19c

 

Docker Container 실행 및 컨테이너 접속

 

실행결과

oracle-docker@ubuntu2004:~/compose$ docker-compose -f docker-compose.ora19c.yml up -d
Starting ora19c ... done
oracle-docker@ubuntu2004:~/compose$ docker-compose -f docker-compose.ora19c.yml exec ora19c /bin/bash
[oracle@01a4f713764f ~]$ sqlplus sys/oracle as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Mar 19 23:13:42 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select * from dual;

D
-
X

SQL> 

Docker-compose 기본 명령 

docker-compose -f [docker compose 파일] [명령어]
docker-compose -f docker-compose.ora19c.yml up
docker-compose -f docker-compose.ora19c.yml up -d // 백그라운드 모드 실행 

docker-compose -f docker-compose.ora19c.yml start // 정지한 컨테이너를 시작
docker-compose -f docker-compose.ora19c.yml start ora19c // 컨테이너가 여러개일경우 ora19c 

docker-compose -f docker-compose.ora19c.yml restart // 이미 실행 중인 컨테이너 다시 시작





docker-compose -f docker-compose.ora19c.yml stop // 컨테이너 중지

docker-compose -f docker-compose.ora19c.yml down // 컨테이너 중지및 삭제

docker-compose -f docker-compose.ora19c.yml  logs // 컨테이너로그 확인

docker-compose -f docker-compose.ora19c.yml ps // 컨테이너 목록 

//Docker 접속 
docker-compose exec [컨테이너] [명령어]
docker-compose -f docker-compose.ora19c.yml exec ora19c /bin/bash​
728x90
반응형
728x90
반응형

MyOra  툴은 무료로 오라클 sql 작업이나 DB 자원 모니터링을 할수 있는 툴입니다. 

해당 툴을 다운로드 해서 사용하는 방법에 대해 소개하겠습니다. 

MyOra 다운로드

아래 경로에서 해당 툴 다운로드 받습니다. 

https://www.myorasql.com/download.html

현재는 9.4 버전 까지 Release 되어있습니다. (2022.03.21) 

 

MyOra 다운로드

 

MyOra 실행

다운로드 받은 앞출 파일을 해제 후 프로그램을 실행합니다. 

설치된 java 버전에 따라 실행 파일이 다릅니다. 

제환경은 1.8 jdk 가 설치 되어 있어 MyOra-9.4\Java1_8andBelow 디렉토리에있는 MyOra 파일을 실행 하겠습니다. 

* 주의 : 접속하로자 하는 오라클 jdbc 라이브러리가 실행 파일 경로에 위치해야 합니다. 

 

https://growupcoding.tistory.com/27 글 에서 설치한 오라클 jdbc 파일을 MyOra-9.4\Java1_8andBelow 로 복사하겠습니다. 

 

 

 

라이센스 동의 후 실행
접속 연결 설정

 

 

오라클 자원 사용률 모니터링 

 

 

Top Query 조회 

 

 

Instance 정보

SQL Editor

기본 SQL Editor 도 지원 합니다. 쿼리 실행 단축키는 F9 번입니다. 

728x90
반응형
728x90
반응형

samba (삼바)란?

삼바(samba)는 Windows 운영체제를 사용하는 PC에서 Linux 또는 UNIX 서버에 접속하여 파일이나 프린터를 공유하여 사용할 수 있도록 해 주는 소프트웨어입니다. 

 

윈도우는 파일 시스템은 NTFS 이고 리눅스는 ext 입니다.

파일 시스템이 서로 다르다 보니 서로의 하드 디스크를 읽거나 쓰지 못합니다. 이러한 이유로 서로다른 파일 시스템의 자료를 공유 할수 있도록 하기 위한 소프트웨어로 삼바를 사용하게 됩니다.

 

설치를 진행하게될 리눅스 서버는 CentOS Linux release 7.9.2009 (Core) 입니다. 

samba 설치 

 yum install samba

samba 버전확인 

$ rpm -qa samba
samba-4.10.16-18.el7_9.x86_64

공유 데릭토리 생성

//삼바 접속 계정생성
adduser -d /data1/mydata mydata

//삼바 passwd 설정 
passwd mydata

//공유 디렉토리 생성
mkdir sharedisk

samba user 등록

 smbpasswd -a mydata

samba 환경설정

  • 변경 및 추가 부분은 색깔로 표시 했습니다.
vi /etc/samba/smb.conf

[global]
        workgroup = WORKGROUP // 작업그룹 설정
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
        hosts allow = 192.168.17. // 접속 허용 IP 설정

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775

[mydata] // 윈도우 네트워크 드라이브상에  출력될 이름
        path = /data1/mydata/sharedisk // 리눅스 공유 디렉토리 생성 
        public = yes // 공유 
        writable = yes //쓰기가능 
        write list = smbuser // 접속 허용 유저 ,삼바 유저로 등록 한 계정 , 여러 계정일 경우 씌워쓰기로 설정 
        create mask = 0777 // 생성 권한
        directory mask = 0777 // 디렉토리 권한 설정 

 

방화벽 해제

// 방화벽 해제
firewall-cmd --permanent --add-port=139/tcp 

firewall-cmd --permanent --add-port=445/tcp

firewall-cmd --permanent --zone=public --add-service=samba

firewall-cmd --reload

//삼바 재시작
systemctl restart smb

Samba 상태 확인 

[root@minsvr:/root]$ smbstatus                

Samba version 4.10.16
PID     Username     Group        Machine                                   Protocol Version  Encryption           Signing              
----------------------------------------------------------------------------------------------------------------------------------------
11114   mydata       mydata       192.168.xx.xx (ipv4:192.168.xx.xx:62083)  SMB3_11           -                    partial(AES-128-CMAC)

Service      pid     Machine       Connected at                     Encryption   Signing     
---------------------------------------------------------------------------------------------
mydata       11114   192.168.xx.xx 월  3월 21 18시 48분 52초 2022 KST -            -           

Locked files:
Pid          User(ID)   DenyMode   Access      R/W        Oplock           SharePath   Name   Time
--------------------------------------------------------------------------------------------------
11114        1033       DENY_NONE  0x100081    RDONLY     NONE             /data1/mydata/sharedisk   .   Mon Mar 21 18:50:33 2022
11114        1033       DENY_NONE  0x100081    RDONLY     NONE             /data1/mydata/sharedisk   .   Mon Mar 21 18:50:33 2022
11114        1033       DENY_NONE  0x100081    RDONLY     NONE             /data1/mydata/sharedisk   .   Mon Mar 21 18:50:33 2022

 

윈도우 Samba 접속 

Window + R 키 입력후 삼바 서버 접속 

 

윈도우 삼바 접속

728x90
반응형
728x90
반응형

리눅스에서 OpenJdk 설치하는 방법에 대해 소개 하고 설치된 버전을 손쉽게 변경하는 방법에대해 알아보겠습니다. 

java 설치 (JDK: Java Development Kit: javac)

jdk 설치 리스트 확인 

yum list java*jdk-devel

yum install java-1.8.0-openjdk-devel.x86_64

 

JRE 설치( Java Runtime Environment:java)

 

yum list java*jdk 

yum install java-1.8.0-openjdk.x86_64

 

java version 변경

  • alternatives --config [java/javac] 명령어 수행 후  변경하고자 하는 번호를 선택 하면 됩니다.

 

$ alternatives --config java

2 개의 프로그램이 'java'를 제공합니다.

  선택    명령
-----------------------------------------------
   1           java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64/jre/bin/java)
*+ 2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre/bin/java)


 

javac 버전 변경

 alternatives --config javac

2 개의 프로그램이 'javac'를 제공합니다.

  선택    명령
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/bin/javac)
   2           java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64/bin/javac)
728x90
반응형

'03.Program > 02.java' 카테고리의 다른 글

[Java] JDBC 프로그래밍  (0) 2022.04.20
[Java basic-Utility] 파일 비교  (0) 2022.03.27
[Java basic-Utility] 디렉토리 파일 리스트 조회  (0) 2022.03.26

+ Recent posts