DB Backup/Recovery EXPORT / IMPORT
백업이란 DB의 고장, 데이터의 손실 등으로 인한 피해를 최소화하기 위하여 현재의 데이터를 보관 데이터 내용을 그대로 DUMP 주기적인 백업으로 데이터베이스의 안전을 보장
EXPORT 오라클에서 제공하는 논리적인 백업에 사용되는 유틸리티 binary file형태로 기록 데이터베이스가 가동중인 상태에서 실행 전체 데이터베이스, 특정 사용자, 특정 테이블들을 백업 권한, 익덱스, 제약조건들과 같이 테이블들과 연관되는 Data Dictioary 정보도 선택할 수 있음 마지막 백업 이후로 변경된 테이블들에 대해서만 엑스포트 작업을 실행 할 수도 있음.
Parameter - userid : EXPORT를 실행시키고 있는 username/password명. - buffer : 데이터 행들을 가져오는데 사용되는 버퍼의 크기. - file : 생성되는 EXPORT덤프 파일명. - filesize : EXPORT덤프 파일의 최대 크기 - grants : 데이터베이스 객체에 대한 권한 정보의 EXPORT여부 (Y/N 플래그) - indexes : 테이블에 대한 INDEXES의 EXPORT여부 (Y/N 플래그) - rows : 행들에 대한 EXPORT여부. (Y/N 플래그) 만약 “no”이면 데이터는 EXPORT되지않고 테이블의 정의만 EXPORT 됩니다. - constraints : 테이블에 대한 제약조건 정보의 EXPORT여부 (Y/N 플래그) - compress : IMPORT에 대비하여 테이블의 데이터를 한 extent로 압축 할것인가의 여부 (Y/N 플래그) - full : 전체 데이터베이스를 EXPORT할것인가의 여부 (Full Level Export) (Y/N 플래그) - owner : EXPORT될 데이터베이스의 소유자명 (User Level Export)[owner=user] - tables : export될 테이블의 리스트(Table Level Export) [tables=(table1, table2, ...)]
Full Level Export 전체 데이터베이스가 엑스포트 모든 테이블스페이스, 모든 사용자, 또한 모든 객체, 데이터들이 포함됩니다. 예 C:\>exp userid=system/***@mydb file='C:\full.dmp' full=y C:\orawin95\bin 폴더에서 실행…
User Level Export 사용자 객체들이 백업 되고 객체들 안에 있는 데이터도 백업 사용자 객체에 대한 모든 권한들과 인덱스들도 백업됨 다른 사용자들의 객체와 권한, 인덱스들은 백업되지 않음 사용자 자신이 만든 모든 오브젝트를 그 user가 EXPORT하는 방법 예제 C:\>exp userid=scott/tiger@mydb file='C:\scott.dmp' SYSTEM계정으로 로 접속한 DBA가 여러 user소유의 오브젝트들을 EXPORT 할수도 있음 C:\>expuserid=system/***@mydb owner=scott file='C:\scottuser.dmp'
Table Level Export - 명시된 테이블만 엑스포트 - 테이블의 구조, 인덱스, 권한등이 테이블과 함께 엑스포트 예제1) system user로 다른 유저의 table 몇 개만 Export하는 예제 C:\>exp userid=system/*** file='C:exp.dmp' tables=(scott.EMP, scott.DEPT) => 위와 같이 table의 schema(user)명까지 지정해야만 export가 성공. 예제2) scott user로 table 몇 개만 EXPORT하는 예 C:\>exp userid=scott/tiger file='C:\exp.dmp' tables=(EMP, DEPT) log=exp.log => user가 자신의 table을 export할 때에는 schema 명을 지정할 필요 없음
IMPORT EXPORT 덤프 파일을 읽어서 그 안에 저장되어있는 명령을 실행 데이터베이스를 복구하거나 재구성하기위해 사용 기본적으로 IMPORT는 각 테이블을 IMPORT한 후 COMMIT
Import Parameter - userid : IMPORT를 실생시키는 계정의 username/password명 - buffer : 데이터를 행들을 가져오는데 사용되는 buffer의 bytes수 - file : IMPORT될 EXPORT 덤프 파일명 - show : 파일 내용이 화면에 표시되어야 할 것인가를 나타냄(Y/N 플래그) - ignore : IMPORT중 CREATE명령을 실행할 때 만나게 되는 에러들을 무시할 것인지 결정 (Y/N 플래그) - indexes : 테이블 INDEX의 IMPORT여부(Y/N 플래그) - rows : 테이블 데이터를 IMPORT할 것인가(Y/N 플래그) 만약 "N"로 설정하면 데이터베이스 객체들에 대한 DDL만이 실행. - full : FULL엑스포트 덤프 파일이 IMPORT 할때 사용합니다. - tables : IMPORT될 테이블 리스트 - commit : 배열(배열의 크기는 BUFFER에 의해 설정됩니다) 단위로 COMMIT을 할것인가 결정. 기본적으로는 테이블 단위로 COMMIT. - fromuser : EXPORT덤프 파일로 부터 읽혀져야 하는 객체들을 갖고 있는 테이터베이스 계정 - touser : EXPORT덤프 안에 있는 객체들이 IMPORT될 데이터베이스 계정
IMPORT 예제 예제1) 전체 데이터베이스가 IMPORT. (Full Level) C:\>imp userid=system/manager file='C:\full.dmp' full=y 예제2) scott의 유저 IMPORT를 실행.(User Level) C:\>imp userid=scott/tiger file='C:\scott.dmp' 예제3) 다른 계정으로 IMPORT하기 ==> scott유저의 데이터를 EXPORT받아서 test 유저에게 IMPORT하는 예제 C:\>exp userid=system/manager file='C:\scott.dmp' owner=scott C:\>imp userid=system/manager file='C:\scott.dmp' fromuser=scott touser=test