[백업][가리사니] 오라클 데이터를 파일로 내보내기와 가져오기
oracle
이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.
오라클을 설치하면 파일로 내보내기(export) 가져오기(import) 할 수 있는 bin도 같이 설치됩니다. 커맨드에서 exp(내보내기:export) / imp(가져오기:import) 을 써볼 수 있습니다. 먼저 설명을 보도록하겠습니다. (커맨드 실행)
exp 설명서
exp -help
- 형식 :
EXP KEYWORD=값 또는 KEYWORD=(값1,값2,...,값N)
- 예제 :
EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) 또는 T1이 분할된 테이블인 경우 TABLES=(T1:P1,T1:P2)
USERID 명령어 줄에 첫번째 매개변수에 있어야 합니다.
키워드 | 설명(기본값) |
---|---|
USERID | 사용자 이름/비밀번호 |
FULL | 전체 파일 익스포트(N) |
BUFFER | 데이터 버퍼 크기 |
OWNER | 소유자 사용자 이름 목록 |
FILE | 출력 파일(EXPDAT.DMP) |
TABLES | 테이블 이름 목록 |
COMPRESS | 하나의 확장 영역으로 임포트(Y) |
RECORDLENGTH IO | 레코드 길이 |
GRANTS | 권한 부여 익스포트(Y) |
INCTYPE | 증분 익스포트 유형 |
INDEXES | 인덱스 익스포트(Y) |
RECORD | 증분 익스포트 추적(Y) |
DIRECT | 직접 경로(N) |
TRIGGERS | 트리거 익스포트(Y) |
LOG | 화면 출력의 로그 파일 |
STATISTICS | 객체 분석(ESTIMATE) |
ROWS | 데이터 행 익스포트(Y) |
PARFILE | 매개변수 파일 이름 |
CONSISTENT | 테이블간 일관성(N) |
CONSTRAINTS | 제약 조건 익스포트(Y) |
OBJECT_CONSISTENT | 객체 익스포트 동안 읽기 전용으로 설정된 트랜잭션(N) |
FEEDBACK | 매 x행마다 진행 상황 표시(0) |
FILESIZE | 각 덤프 파일의 최대 크기 |
FLASHBACK_SCN | 세션 스냅샷을 되돌리는 설정에 사용된 SCN |
FLASHBACK_TIME | 지정된 시간에 가장 가까운 SCN을 가져오는 데 사용된 시간 |
QUERY | 테이블의 부분 집합을 엑스포트하는 데 사용하는 select 절 |
RESUMABLE | 공간 관련 오류가 발생하면 일시 중지됨(N) |
RESUMABLE_NAME | 재개 가능한 명령문을 식별하는 데 사용된 텍스트 문자열 |
RESUMABLE_TIMEOUT | RESUMABLE 대기 시간 |
TTS_FULL_CHECK | TTS에 대한 전체 또는 부분 종속성 검사 수행 |
TABLESPACES | 익스포트할 테이블스페이스 목록 |
TRANSPORT_TABLESPACE | 이동 가능한 테이블스페이스 메타 데이터 익스포트(N) |
TEMPLATE | iAS 모드 익스포트를 호출하는 템플리트 이름 |
imp 설명서
imp -help
- 형식 :
IMP KEYWORD=값 또는 KEYWORD=(값1,값2,...,값N)
- 예 :
IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N 또는 T1이 분할된 테이블인 경우 TABLES=(T1:P1,T1:P2)
USERID 명령어 줄에 첫번째 매개변수에 있어야 합니다.
키워드 | 설명(기본값) |
---|---|
USERID | 사용자명/비밀번호 |
FULL | 파일 전체 임포트 (N) |
BUFFER | 데이터 버퍼의 크기 |
FROMUSER | 소유 사용자명 목록 |
FILE | 입력 파일들 (EXPDAT.DMP) |
TOUSER | 사용자명의 목록 |
SHOW | 파일 목차만 목록 (N) |
TABLES | 테이블명 목록 |
IGNORE | 생성 오류 무시 (N) |
RECORDLENGTH | IO 레코드의 길이 |
GRANTS | 권한부여 임포트 (Y) |
INCTYPE | 증분 임포트 유형 |
INDEXES | 인덱스 임포트 (Y) |
COMMIT | 배열 삽입 커밋 (N) |
ROWS | 데이터 행 임포트 (Y) |
PARFILE | 매개변수 파일명 |
LOG | 화면 출력의 로그 파일 |
CONSTRAINTS | 제약조건을 임포트 (Y) |
DESTROY | 테이블스페이스 데이터 파일 겹쳐쓰기(N) |
INDEXFILE | 지정된 파일에 테이블/인덱스 정보 쓰기 |
SKIP_UNUSABLE_INDEXES | 사용되지 않은 인덱스들의 유지를 건너뜁니다 (N) |
FEEDBACK | 매 x행마다 진행 상황 표시(0) |
TOID_NOVALIDATE | 지정된 유형 ID 검증 건너뛰기 |
FILESIZE | 각 덤프 파일의 최대 크기 |
STATISTICS | 미리 계산된 통계 임포트(항상) |
RESUMABLE | 공간 관련 오류가 발생하면 일시 중지됨(N) |
RESUMABLE_NAME | 재개 가능한 명령문을 식별하는 데 사용되는 텍스트 문자열 |
RESUMABLE_TIMEOUT | RESUMABLE 대기 시간 |
COMPILE | 프로시저, 패키지 및 함수 컴파일(Y) |
STREAMS_CONFIGURATION | 일반 스트림 메타 데이터 임포트(Y) |
STREAMS_INSTANTIATION | 스트림 인스턴스화 메타 데이터 임포트(N) |
DATA_ONLY | 데이터만 임포트(N) |
실험
예제 데이터 만들기
DROP TABLE TEST_TABLE;
-- 테이블 생성
CREATE TABLE TEST_TABLE
(
TXT VARCHAR2(20 BYTE)
);
-- 더미 삽입
INSERT INTO TEST_TABLE VALUES('가');
INSERT INTO TEST_TABLE VALUES('리');
INSERT INTO TEST_TABLE VALUES('사');
INSERT INTO TEST_TABLE VALUES('니');
-- 확인
SELECT * FROM TEST_TABLE;
내보내기 명령 (커맨드)
exp userid=계정/암호@SID file=경로 TABLES=(테이블)
(생략…) 익스포트가 경고 없이 정상적으로 종료되었습니다. 기존데이터 삭제 (쿼리)
-- 확인
SELECT * FROM TEST_TABLE;
-- 기존데이터 삭제
DELETE FROM TEST_TABLE;
-- 확인
SELECT * FROM TEST_TABLE;
가져오기 (커맨드)
imp userid=계정/암호@SID file=경로 TABLES=(테이블)
실패!! 이미 TEST_TABLE 은 존재한다!! 위 설명서의 “IGNORE 생성 오류 무시 (N) RECORDLENGTH IO 레코드의 길이”를 써보겠습니다.
imp userid=계정/암호@SID IGNORE=Y file=경로 TABLES=(테이블)
(생략…) “TEST_TABLE”(를)을 임포트 중 4 행이 임포트되었습니다
-- 확인
SELECT * FROM TEST_TABLE;
추신
- 단순하니 설명서 보시고 직접 옵션 넣어서 해보시는게 더 빠릅니다.!!
- 오라클 정말 오랜만에 해보는데.. 이제 SQL Developer 라는 시각화된 SQL 브라우저도 있고 플랜이 MSSQL 이나 PostgreSQL 만큼 예쁘게 나오진 않지만 그나마 시각화 되서 보이는군요!!
- SQL 튜닝 권고자는 쿼리가 복잡하면 복잡할 수록 유용해 보입니다.!!