RDB/Oracle 26

[Oracle] WITH AS 구문

상위 n개 레코드 : 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요. 상위 n개 레코드를 출력하는 sql문을 작성하는 문제가 프로그래머스에 있었다. mySQL 같은 경우에는 LIMIT으로 간단히 해결되지만 오라클의 경우에는 ROWNUM을 사용해야 한다. 서브 쿼리를 사용할 때 WITH AS 구문을 사용하면 가독성을 높일 수 있다. WITH절 : 오라클9 이후 버전부터 사용이 가능하며 이름이 부여된 서브 쿼리이다. VIEW와 쓰임새가 비슷한데 차이점이 있다면 VIEW는 한번 만들어놓으면 DROP 할 때까지 없어지지 않지만 WITH절의 경우 한번 실행할 쿼리내에 정의되어 있을 경우, 그 쿼리 문안에서만 실행된다. WITH 절을 이용하여 미리 이름을 부여해서 Query Blo..

RDB/Oracle 2020.07.08

[오라클]timestamp를 활용한 데이터 복구

DB 작업 중 실수로 데이터를 삭제한 후 Commit을 진행했다. 다행히 오라클에서는 Commit후 복구할 수 있는 방법이 존재한다. 오라클은 Undo Tablespace에 커밋이후로부터 일정시간동안 임시로 테이블을 저장하고 있다. 유지되는 시간은 undo table 속성에 지정가능하다. 시스템 설정에 따라 복구할 수 있는 시간이 다르므로 확인해야한다. 커밋 후 특정시간 전 데이터를 보고 싶다면 as of timestamp 를 이용하면 된다. 단위는 SECOND, MINUTE, HOUR, DAY가 가능하다. select * from 테이블명 as of timestamp(systimestamp-interval '30' minute); DB복구로 사용한 쿼리 insert into codilist (selec..

RDB/Oracle 2019.06.10

[오라클] JAVA와 ORACLE의 연동

[SQLPLUS 진행] 1. 관리자 계정 로그인 sqlplus / as sysdba 2.사용자 생성 CREATE USER SUZI IDENTIFIED BY A123 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON USERS; 3. 권한 부여 GRANT CONNECT, RESOURCE TO SUZI; 4. SUZI로 로그인 CONN SUZI/A123; 5. 테이블 생성 CREATE TABLE SCORE (HAK VARCHAR2(10) PRIMARY KEY, NAME VARCHAR2(20) NOT NULL, KOR NUMBER(3), ENG NUMBER(3), MAT NUMBER(3)); [오라클과 자바를 연결할때 참고하는 사용설명..

RDB/Oracle 2019.01.30

[오라클] 불완전복구,log파일복구

[불완전복구 - 3. 백업control파일을 이용한 복구(아카이브로그가 아닌 ctl파일에서복구] ① 문제상황 레코드를 지워야하는데 테이블을 삭제해서 복구하는 경우 - 시간기반/취소기반 복구 테이블을 삭제해야하는데 테이블스페이스를 삭제해서 복구하는 경우 - 백업control파일을 이용한 복구 ② 서버가 SHUTDOWN하는 것과 같은 명령어 입력시 alert_testdb.log에 모두 기록됨. drop 명령어 입력시 정확한 시간을 모를 경우 해당 경로의 로그파일을 확인하면 된다. 경로 : C:\app\itwill\diag\rdbms\testdb\testdb\trace ③ 데이터베이스 시작 STARTUP MOUNT ④ 아카이브파일이 없는 상태에서 컨트롤파일을 사용해서 복구 진행 RECOVER DATABASE ..

RDB/Oracle 2019.01.30

[오라클] 완전복구, 불완전복구-시간기반,취소기반

[복구와 백업] [백업] 1.close 백업 2.open 백업 [복구] 1. no-archive mode-닫힌복구, 다른위치에 복구(imsy) 2. archive mode 완전복구(4가지) 1) 닫힌 데이터베이스 복구(System tablespace 문제시-shutdown) 2) 열린 데이터베이스 복구(일반 tablespace 문제시-offline) 3) 다른위치에 datafile복구(imsy) 4) 백업하지 않은 datafile복구 불완전복구(3가지) 1) 시간기반 복구 2) 취소기반 복구(아카이브 로그의 손실발생) 3) 백업control파일을 이용한 복구(아카이브로그가 아닌 ctl파일에서복구) log파일 복구(4가지) 1)대기 상태 그룹의 멤버문제 2)대기 상태 그룹의 문제(2가지: Open, Clo..

RDB/Oracle 2019.01.29

[오라클]INDEX REBUILD, 지연제약조건, 사용자/PROFILE/PRIVILEGE/ROLE 관리, SQLLDR

[INDEX REBUILD] 1. 테이블 소유자 조회 SELECT OWNER,TABLE_NAME, TABLESPACE_NAME FROM DBA_TABLES WHERE OWNER='HR' AND TABLE_NAME='EMPLOYEES'; 2. 블럭이 분할을 했을때 사용하지 못한 빈공간을 분석하는 명령어 ANALYZE TABLE HR.EMPLOYEES COMPUTE STATISTICS; 3. 레코드의 수 & 단편화 현상이 일어난 데이터의 수 조회 SELECT NUM_ROWS,CHAIN_CNT FROM DBA_TABLES WHERE TABLE_NAME='EMPLOYEES'; - NUM_ROWS < CHAIN_CNT 라면 REBUILD 작업 진행해줘야 한다. 4. HR에 USERS 테이블스페이스의 1메가 메모리..

RDB/Oracle 2019.01.28

[오라클]저장구조, tablespace, chaining, migration

[STORAGE RELATIONSHIP STRUCTURE] -DATABASE, TABLESPACES, DATAFILES : 사람 눈으로 보이는 영역 -RBS : ROLLBACK SEGMENT 의 약자. 현재 UNDO로 더 많이 씀 DATABASE : 테이블스페이스가 저장되어 공유되는 논리적 집합체 TABLESPACES : 오라클에서 물리적으로 존재하지 않는 논리적인 공간. SYSTEM, USERS, RBS, TEMP DATAFILES : DISK에 저장되는 물리적 DBF 파일 (SYSTEM01.DBF, USERS.DBF, TEMP.DBF) SEGMENTS : 오라클에서 물리적으로 존재하지 않는 논리적인 공간. EXTENT가 모여서 SEGMENT를 구성 EXTENTS : 블록이 모여서 EXTENT 를 구성..

RDB/Oracle 2019.01.25

[오라클]Redo log file, tablespace, datafile

[pfile을 이용한 멀티플렉싱] - pfile을 통해 control.ctl 파일 경로 수정 - Database 재시작시 ctl 경로 변경 조회 - ms-sql에서는 mdf(마스터 데이터베이스 파일) 처음에 파일 생성시 만들어짐. 그 이후로는 ndf로 생성 [Redo log file] - 데이터가 변경되는 내용을 모두 기록. 복구시 사용하는 파일. - 반드시 그룹화 되어 있어야 하며 적어도 2개의 그룹이 있어야 한다. - 그룹안에는 멤버가 하나 이상 존재해야 한다. - LGWR는 Redo log를 기록한다. 그룹1의 용량이 꽉 찰 경우, 로그 스위치가 발생하여 다음번 그룹2에 기록. 순환식으로 일어난다. 이때, 체크포인트가 발생. 체크포인트는 각 파일에 시퀀스번호를 부여함. 시퀀스번호에 대한 데이터도 기..

RDB/Oracle 2019.01.24

[오라클]admin

- admin 관련 내용은 cmd 이용. backup, recovery는 쿼리박스보다 cmd가 나음 [Oracle Universal Installer] 자바엔진을 기반으로 만들어서 swing으로 구현함. 그래서 속도가 느림. To start oracle universal installer on NT(윈도우즈 환경) D:\> setup To start oracle universal installer in non-interactive mode (내가 없어도 설치가 알아서 되도록) /runInstaller -reponsefile myrespfile -silent [SQLPLUS] -sqlplus /nolog : 사용자로그인 없이 sqlplus만 실행시키는 소스 -connect as sysdba [PARAMET..

RDB/Oracle 2019.01.23

[오라클]오라클 아키텍쳐(2)

[오라클 아키텍쳐] [ 데이터베이스의 물리적 구조 (Physical Structure) ] - CONTROL01.CTL , CONTROL02.CTL 는 사실상 동일한 파일. 백업 중요해서 Recovery_area에 별도 저장. [Memory Structure] 1. PGA영역(PROGRAM GLOBAL AREA) : 서버가 시작할 때 할당되는 메모리 영역 오라클 데이터베이스에 연결된 사용자마다 할당되는 메모리. 프로세스가 시작될 때 할당되고 중단될 때 없어짐. 2. SGA영역(SYSTEM GLOBAL AREA) : 오라클 메모리. 모든 사용자가 공유 가능하여 사용. 동적. 그때마다 사이즈가 달라질 수 있음. 3. SGA의 구성메모리 3-1. SHARED POOL 공유영역 - SHARED SQL AREA ..

RDB/Oracle 2019.01.22
반응형