본문 바로가기
국비학원

[국비지원] KH 정보교육원 25, 26일차

by 도전하는 개발자 2022. 5. 2.

 드디어 네트워킹에 이어서 데이터베이스로 들어갔다! 데이터베이스는 데이터베이스 구현과 SQL활용, SQL응용으로 능력단위가 배정되어 있는데, 풀스택 과정이지만 백앤드에 좀더 무게를 둔 느낌이다. 25일과 26일은 이전과는 다르게 이틀을 묶어서 일지를 쓰는데 이는 딱히 배운게 없어서... 이다 ㅎㅎ. 오라클의  Express Edition 버전과 Enterprise Edition을 설치해보고, 지우는걸 해봤는데, 그냥 간단히 설치해보고 지우는 것임에도 인원이 많다보니 중간에 오류가 나는 사람, 놓치는 사람 등등 다양한 애로사항이 있어 이를 하나하나 강사님께서 해결해주시다 보니 굉장히 오래 걸렸다. 강사님께서는 사실 이 내용은 개발자의 업무 범위는 아니라고 하셨는데 능력단위에 포함되어 있으니 간단히 해보고 넘어가자고 하셨다. 우리는 클라우드 과정인만큼 월요일부터는 Oracle Cloud 계정 생성을 할 예정인데, 이것도 생성이 쉽지 않다고 한다. 계정 생성에 실패하는 경우도 있다고 하는데, 너무 목 매지말고 계정 생성에 실패해도 그냥 성공한 사람의 계정을 사용하면 된다고 하셨다. 배운게 딱히 없어 여유가 생긴 김에 앞서 배운 자바의 기초 문법을 복습하는 시간을 가져야겠다! 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

오늘은 데이터베이스 합시다! 정말 중요합니다
백엔드 갈꺼면? 이게 진짜 여러분이 해야할거임!
금융권에서 계좌 잔고 데이터가 날라갔다고 생각해보세요 와 너무 중요하죠?
sql언어 -> oracle, mysql 같은 프로그램에 활용

학원의 커리큘럼인 db설치는 배울 필요 없다!
실무에서는 db설치는 개발자의 몫이 아니고 관리자(DBA)의 몫이다

DBA : DB 소프트웨어 설치/튜닝/관리
개발자 : 데이터 모델링 (서비스 테이블 설계)

개발자가 해야할 데이터베이스의 핵심은 모델링!
서비스를 만들때 필요한 테이블을 설계하는 것 이것이 모델링!
데이터 모델링과 SQL언어 활용에 주안점을 두고 학습해야한다.
SQL언어는 커리큘럼에 있지만 데이터 모델링은 없다
쓸모없는 db설치는 빨리 넘기고 데이터 모델링에 주안점을 두고 학습하자

우리는 클라우드반이라 Oracle Cloud ATP를 최종 DB환경으로 활용할 것이다
그러니깐 Database 설치 안 되도 목매지 말라! 말해도 집착하는 애들 있다 제발 그러지마세요

--------------------------------------------------------------------------------------------------------

Database Software (Middleware) : 운영체제와 응용프로그램 중간에서역할.
따라서 Database Software는 운영체제 다음으로 규모가 큰 소프트웨어

우리나라 기업 대부분은 Oracle Database로 한다. 규모 작은 회사는 오픈소스 기반의 db 사용
Oracle Database도 클라우드로 넘어감
Oracle Database 19c -> 19는 버전, c는 클라우드
우리 책은 11g 이건 너무 outdated

Oracle RDBMS (Relational Database MAnagement System)의 배포판 종류
1. Express Edition (XE) : 교육용 버전 (무료, 설치 매우 단순)
   -> Oracle 18c Release 4 XE 설치해보고 지우자
   -> ORACLE_HOME/deinstall/deinstall.bat 파일을 이용해서 삭제해야한다!!!
   -> 파워쉘은 관리자 권한으로 실행해야한다!!!
2. Standard Edition : 중소규모 사이트에 적합 (유료, 복잡)
3. Enterprise Edition : 대규모 사이트에 적합 (유료, 더욱 복잡)
   -> 19c Enterprise Edition 설치해보고 지우자 (접속만 배우고 지우자)
   -> ORACLE_HOME/deinstall/deinstall.bat 파일을 이용해서 삭제해야한다!!!
   -> 파워쉘은 관리자 권한으로 실행해야한다!!!

이후에 Oracle Cloud 계정 생성 해봅시다
Oracle Cloud 계정생성에 실패하신 분들은 부득이 로컬에 설치해 쓰시거나
Oracle Cloud 계정생성에 성공하신 같은 조원분들의 전자지갑을 공유해서 쓰셔도 됩니다
'아 저는 제꺼 있어야 돼요!' -> 이런 고집 좀 피우지 마세요

--------------------------------------------------------------------------------------------------------

*On-premise 방식 : 로컬 (본인의 PC, 노트북, 서버)에 직접 설치하는 방식
*Oracle Instance = Oracle Background Services + SGA (System Global Area)

Oracle Background Services : 클라이언트들의 모든 SQL 문장을 처리하고 데이터베이스를 관리하는 프로세스들
SGA (System Global Area): 오라클이 사용하는 전용 메모리 공간

--------------------------------------------------------------------------------------------------------

1. Express Edition (XE) 설치
C:\opt or C:\u01  둘중에 하나에 설치 -> 우리는 u01로 설치하자
C:\u01\oracle\product\18.0.0 경로로 설치
SYS, SYSTEM, PDBADMIN 관리계정의 비밀번호 -> oracle로 통일하자 
방화벽창 뜨면 허용해주자

설치후 체크
(1) 윈도우 서비스로 등록되었는지 확인
작업관리자-서비스탭-Oracle어쩌구...
이 중에 TNSListener가 실행중이어야한다 얘가 서버소켓역할
ServiceXE 얘도 실행중이어야한다

(2) 파워쉘 net user로, 오라클이 사용하는 계정이 생성되어 있는지 확인
없지? ㄱㅊ 3번으로

(3) 파워쉘  net localgroup로, Oracle 사용자 그룹이 생성되었는지 확인
사용자 그룹 : 여러 사용자를 목적에 맞게 grouping한 것

(4) C:\Program Files에 oracle\inventory 폴더가 생성되었는지 확인

(5) 오라클 설치 폴더에 "오라클 홈" 생성
C:\u01\oracle\product\18.0.0\dbhomeXE

* 오라클을 로컬에 설치하면, 반드시 아래 두 경로를 알고 있어야한다 (캡처1에서 확인)
1. ORACLE_HOME : ORACLE_BASE/dbHome
2. ORACLE_BASE : 오라클 엔진(Optimizer) 파일들이 설치된 디렉토리

*환경변수의 값 등록 -> 시스템 속성창 (파워쉘 sysdm.cpl) -> 고급 -> 환경변수
위에서 새로만들기 -> 
이름 : ORACLE_HOME -> 변수값 : C:\u01\oracle\product\18.0.0\dbhomeXE
이름 : ORACLE_BASE -> 변수값 : C:\u01\oracle\product\18.0.0

파워쉘에서 환경변수 등록됐나 확인
$env:ORACLE_HOME
$env:ORACLE_BASE

파워쉘 관리자권한
dbca로 실행

--------------------------------------------------------------------------------------------------------

***이제 설치했으니 지워봅시다***
제어판 프로그램제거에서 지우면 안 됩니다!

파워쉘
cd $env:ORACLE_HOME
dir | more
cd .\deinstall\
dir
.\deinstall.bat

리스너지정 -> 엔터
목록지정 [xe] -> 엔터
세부정보 수정 -> 엔터
계속하시겠습니까 -> y 엔터

-> 실패하는 이유? 관리자 권한으로 수행해야한다!!!

파워쉘 (관리자권한)
cd $env:ORACLE_HOME
dir | more
cd .\deinstall\
dir
.\deinstall.bat

목록지정 [xe] -> 엔터
저장 영역 유형을 지정 -> FS 엔터
계속 엔터
계속하시겠습니까 -> y 엔터

*레지스트리 편집기
oracle관련된거 싹다 지우셈

*환경변수 삭제


--------------------------------------------------------

(2) 엔터프라이즈 버전 설치해보자
엔터프라이즈 버전은 exe 설치파일이 없다
따라서 C:\u01\oracle\product\19.3.0\dbHome까지 우리가 폴더를 만들어주자

sysdm.cpl -> 고급 -> 환경변수 들어가서 환경변수부터 먼저 수정해주자

ORACLE_HOME -> C:\u01\oracle\product\19.3.0\dbHome
ORACLE_BASE -> 이건 사실 아무렇게나 해도 된다. 데이터 파일들이 저장되는 곳임
                         C:\u01\oracle 이거로 설정해보자

설정후 파워쉘에서
$env:ORACLE_HOME
$env:ORACLE_BASE 
로 환경변수 설정되었는지 확인

C:\u01\oracle\product\19.3.0\dbHome 여기에 압축풀고 압축폴더 지우자

setup 실행
소프트웨어만설정
단일 인스턴스 데이터베이스 설치
Enterprise Edition
가상계정
다음다음설치
방화벽 허용하셈
설치 끝!~


설치후 체크
(1) 윈도우 서비스로 등록되었는지 확인
작업관리자-서비스탭-Oracle어쩌구...

(2) 파워쉘 net user로, 오라클이 사용하는 계정이 생성되어 있는지 확인

(3) 파워쉘  net localgroup로, Oracle 사용자 그룹이 생성되었는지 확인
사용자 그룹 : 여러 사용자를 목적에 맞게 grouping한 것

(4) C:\u01\oracle에 inventory 폴더 및 폴더들 생성 된것 확인


Oracle Cloud Database 이전의 Grid 버전은, 단일 인스턴스 DB당 1개씩만 관리
Oracle Cloud Database 부터는 Multi-tenancy architecture (다중세입자)로 변경됨
Container Database (CBD) : 집주인
Pluggable Database (PBD) : 세입자

집주인 역할 Database인 Container Database (CBD)를 생성
CBD(집주인)가 관리할 세입자 DB인 Pluggable Database (PBD)를 여러개 생성하여 입주시킴

새로운 데이터베이스를 생성해보자
파워쉘 (관리자)
dbca
데이터베이스생성
일반구성
전역데이터베이스 이름      : korea
컨테이너데이터베이스 이름 : seoul
데이터베이스 문자집합 : 유니코드
관리자 비밀번호 : oracle

메모리가 부족하다면 고급구성 해야한다
범용또는트랜잭션처리
전역데이터베이스 이름      : korea
pdb 이름 : seoul
데이터베이스 저장영역속성에 템플리트 파일 사용
복구옵션 체크 x (DBA의 업무)
새리스너생성 - 새리스너이름 : LISTENER / 리스터포트 : 1521
vault security 체크x
메모리탭 자동 공유 메모리 관리 볼륨바 같은거 1024에 가깝게 맞춰준다
샘플스키마탭 샘플스키마 추가 체크
EM체크해제
모든계정에 동일한 비번 oracle
다음다음완료
방화벽뜨면 허용
비밀번호관리 - > 확인? 닫기?