오라클에선 DBMS_METADATA.GET_DDL을 통해 테이블, 인덱스, 뷰, 유저, 프로시저 생성에 관한 Create DDL을 쉽게 추출할 수 있습니다. 해당 기능은 oracle 9i 이상부터 지원하고 있습니다.사용 예제1. 테이블 DDL 추출-- SELECT DBMS_METADATA.GET_DDL('TABLE','TABLE 명') FROM DUAL;SELECT DBMS_METADATA.GET_DDL('TABLE','EMPLOYEES') FROM DUAL; 2. 인덱스 DDL 추출-- SELECT DBMS_METADATA.GET_DDL('INDEX','INDEX 명') FROM DUAL;SELECT DBMS_METADATA.GET_DDL('INDEX','SYS_C007536') FROM DUAL; 테..
SQL Loader(sqlldr)SQL Loader란 오라클을 설치하면 기본적으로 내장되어 있는 툴로, 주로 정제된 대용량 데이터를 DB에 업로드할 때 사용합니다. sqlldr의 데이터 적재 방식SQL Loader는 데이터를 적재할 때 크게 2가지 방식으로 나뉘어집니다.DPL(Direct Path Load) 방식데이터가 Insert될 때 SQL을 사용하지 않고 직접 메모리에 Data Block을 만들어서 해당 테이블에 직접 적재하는 방식. 따라서, Undo, Redo 로그를 발생시키지 않습니다. Table Lock 발생CPL(Conventional Path Load) 방식Buffer Cache를 거쳐 Data File을 SQL Insert 방식으로 적재한다. Row Lock 발생 sqlldr로 TEXT ..
SPOOLSPOOL이란 SQL*Plus 환경에서 SQL 실행 결과를 파일로 저장할 때 사용하는 명령어입니다. 이를 통해 쿼리 결과를 텍스트 파일로 출력하여 저장할 수 있습니다. SPOOL의 기본적은 구조는 아래와 같습니다.-- SET을 통해 출력 결과의 형식을 설정할 수 있습니다.SET PAGESIZE 50000; -- 페이지 출력 크기 설정 (기본 : 14, 최대 : 50000)SET ECHO OFF; -- 명령어 에코 끔SET COLSEP '|'; -- 조회 결과 컬럼 간 구분자 '|' 설정SET HEADING OFF; -- 헤더 정보 제외-- 1. SPOOL 시작 (결과를 저장할 파일 지정)SPOOL C:\\output\\query_result.txt;-- 2. SQL 실..
환경 구성Host OS: Mac OS (64bit) / CPU: Apple Silicon (M2)VM: Virtual Box-7.1.4Guest OS: Oracle Linux 8.8Database: Oracle Database 19c 🖐️ 설치하기 이전에리눅스 설치아직 리눅스가 설치되어 있지 않다면 아래 포스팅을 참고하여 미리 설치해 주시기 바랍니다. (링크: [Linux]Virtual Box에 리눅스(Oracle Linux 8.x) 설치하기) [Linux]Virtual Box에 리눅스(Oracle Linux 8.x) 설치하기환경 구성Host OS: Mac OS (64bit) / CPU: Apple Silicon (M2)VM: Virtual Box-7.1.4Guest OS : Oracle Linux 8..
ORA-65096: invalid common user or role namecreate uesr {유저명} identified by {비밀번호};계정을 생성하려고 보니 invalid common user or role name(공통 사용자 또는 롤 이름이 부적합 합니다.) 에러가 발생하였습니다. 해당 에러가 발생하는 이유는 공통 사용자에 대한 규칙이 옳바르지 않기 때문입니다. 따라서, 계정 생성 시 유저 이름 앞에 c##을 붙여야 합니다.create user c##{유저명} identified by {비밀번호};c## 제거하기Oracle 12부터 계정 이름 앞에 c##을 붙여야지만 계정 생성이 가능하도록 변경되었다고 합니다. 그럼 c##을 붙이지 않고 생성하는 방법은 아예 없는 것일까요? 당연히 있습..
Undo와 Redo Undo란 DML 트랜잭션을 취소하여 데이터베이스를 트랜잭션 이전의 상태로 되돌리는 것으로 작업 롤백과, 읽기 일관성, 복구를 합니다. DML 트랜잭션(update, insert, delete)이 발생하게 되면, 변경 이전의 데이터(원본 데이터)인 Undo Data는 전부 Undo Segment에 저장됩니다. 이때 Undo Segment를 저장하고 있는 Tablespace가 바로 Undo Tablespace입니다. Redo란 단어 그대로 "다시 하다"라는 뜻을 가지고 있습니다. 즉, DML 트랜잭션을 다시 수행한다는 의미겟죠?Redo는 기본적으로 복구의 역할을 합니다. DML 트랜잭션을 수행하던 도중 서버에 장애가 발생하여 데이터베이스가 shutdown 되었을 때 데이터베이스를 재기..
SCN(System Change Number)DB의 변경이 발생한 시점. 즉 COMMIT이 발생하면 트랜잭션은 고유한 번호를 받게 됩니다. 이 때 발생하는 번호가 SCN(System Change Number)입니다. 이 SCN을 통해 트랜잭션을 관리할 수 있고 장애 발생 시 복구할 때 사용되는 키가 됩니다.또한, SCN(System Change Number)을 통해서 Data files, Control File, Redo Log File의 동기화 정보를 맞춥니다. SCN에 기록된 파일을 통해 복구 위치 파악하기Data Fiiles: 실제 데이터 저장되는 디스크 상의 물리적 파일이 파일을 OS 상에서 삭제 및 이동하면 안되고 DB에서 삭제해야 합니다. Control File: DB의 제어 정보를 가지고 있..
- Total
 
- Today
 
- Yesterday