현재 sqld 자격증취득 을 위한 공부를 진행중이다.
sqld을 위해서는 기존에 공부하던 mySQL이 아닌 oracle을 공부하는 것이 도움이 된다.
ORACLE 설치
mac 에서는 oracle이 정식지원되지 않는다. 그래서 docker를 이용하여 진행해야 한다.
도커 설치: https://docs.docker.com/engine/install/
Install Docker Engine
docs.docker.com
터미널에서 아래 명령문을 입력하면 오라클 이미지 파일들이 조회된다.
docker search oracle-xe
그 중 자신이 원하는 버전을 선택하여 설치하면 된다.
docker pull jaspeen/oracle-xe-11g
여기서는 japspeen/oracle-xe-11g 를 설치한다.
pull한 이미지로 컨테이너를 띄운다.
docker run --name oracle11g -d -p 8080:8080 -p 1521:1521 jaspeen/oracle-xe-11g
- -d : deatach mode를 나타내며, -d=true 는 detached mode(background mode), -d=false는 foreground mode 로 수행
-d 옵션만 쓸 경우는 -d=true와 동일 - -name : 컨테이너 이름을 지정
- -p, --publish : host port를 컨테이너 port로 게시, 앞쪽 port가 host port이고 뒤쪽 port가 컨테이너 port이다.
( 예, -p 1621:1521 로 설정하면 호스트에 1621 TCP port로 유입되는 모든 traffic은 컨테이너의 1521 port로 전달) - -e : 컨테이너의 환경변수를 설정. -e 옵션을 사용하면 Dockerfile의 ENV 설정도 덮어쓰게 된다.
(예, -e ORACLE_SID=MONGO 는 오라클 컨테이너 환경변수 ORACLE_SID를 MONGO로 설정) - -v : 호스트와 컨테이너 간의 볼륨(volumn) 설정을 위해서 사용.
호스트(host) 컴퓨터의 파일 시스템의 특정 경로를 컨테이너의 파일 시스템의 특정 경로로 마운트(mount)를 해준다.
(Window : -v d:\temp )
(Linux : /u01/app/oracle/oradata )
아래 명령문으로 컨테이너 뜬 것 확인 (또는 도커 앱의 대시보드에서 확인)
docker ps
명령문
- sqlplus 실행
- docker exec -it <이름> sqlplus
- oracle 실행(초기실행이 아닐 때)
- docker start <이름>
- docker 중지
- docker stop <이름>
- docker 삭제
- docker rm <이름>
DBeaver 설치
sqlplus를 이용하여도 되지만 이번에는 DBeaver를 이용하기로 했다.
Download | DBeaver Community
Download Tested and verified for MS Windows, Linux and Mac OS X. Install: Windows installer – run installer executable. It will automatically upgrade version (if needed). MacOS DMG – just run it and drag-n-drop DBeaver into Applications. Debian package
dbeaver.io
설치 후 포트번호를 입력하여 연결해준다.
id: system
password: oracle
참고) 초기세팅 SQL문
--12C이상 버전에서는 유저명 앞에 C##을 붙여줘야 한다. 아래설정은 그와 관련된 규칙을 수정하는 명령문
--11g버전에서는 아래 명령문이 에러가 난다. 불필요
--ALTER SESSION SET "_oracle_script" = true;
--기존 유저 및 데이블 삭제
DROP USER SQLD CASCADE;
DROP TABLESPACE SQLD_DATA INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE SQLD_TMP INCLUDING CONTENTS AND DATAFILES;
--유저등록 및 권한 설정
CREATE USER SQLD IDENTIFIED BY 1234;
ALTER USER SQLD ACCOUNT UNLOCK;
GRANT RESOURCE, DBA, CONNECT TO SQLD;
--테이블 생성, 도커를 이용할 시 dbf의 경로는'/u01/app/oracle/oradata/XE/SQLD_DATA.dbf'
CREATE TABLESPACE SQLD_DATA
datafile '/u01/app/oracle/oradata/XE/SQLD_DATA.dbf' SIZE 1G
AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
--TEMPORARY 테이블 생성
CREATE TEMPORARY TABLESPACE SQLD_TMP
TEMPFILE '/u01/app/oracle/oradata/XE/SQLD_TMP.dbf' SIZE 100M
AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
--유저와 테이블을 연결, 각각 기본테이블, TEMPORARY테이블로 설정
ALTER USER SQLD DEFAULT TABLESPACE SQLD_DATA;
ALTER USER SQLD TEMPORARY TABLESPACE SQLD_TMP;
'Computer Science > 데이터베이스' 카테고리의 다른 글
데이터베이스 정규화 (0) | 2023.06.01 |
---|---|
MySQL (0) | 2023.06.01 |
UML 기호 (0) | 2023.04.16 |
erd 식별관계, 비식별관계 (0) | 2023.03.23 |
MySQL 자료형 (0) | 2023.01.24 |