[EXPORT 와 IMPORT의 일반적인 궁금증들]
Q1. export와 import 수행시 수행과정이 화면에 출력되지 않게 하는 방법
$ exp scott/tiger file=/data/backup/export/test02.dmp tables=test01 > /dev/null2>&1
Bash shell : > /dev/null2>&1
Cshell : > &/dev/null
Ksh, Bsh, Bash : > /dev/null>2>&1
Q2. export시 Buffer와 Recordlength의 차이
- export시 conventional path(기본값)을 이용할 경우
- 메모리에 evaluation buffer를 생성하고 DB buffer cache에 있는 내용을 가져온 후
- 바이너리로 변환작업을 해서 OS파일로 저장하게 되는데
# buffer옵션 : evaluation buffer의 크기를 결정하는 파라미터
# recordlength 옵션 : buffer의 내용을 OS 파일로 내려쓸때 사용하는 레코드의 크기를 결정하는 파라미터
- 위 두가지 파라미터의 크기는 OS 블록의 배수로 설정하는것이 좋음
- DB buffer cache의 내용을 evaluation buffer로 가져올때 여러건의 데이터를 한꺼번에 가져옴 (Array fetch)
Q3. feedback 옵션이란 ?
- feedback=정수값
- 진행되는 과정을 눈에 보여줌
Q4. export진행시 Arrey Fetch로 추출되는데, 한번에 몇개의 Row가 추출되는지?
- evaluation buffer의 크기와 관련
- 하나의 row가 export시 차지하는 양은 각 column크기의 합 + 4 x (column 개수)
- 한번 Fetch될때 Row의 수는 Buffer size/1 row size
- export된 파일의 총크기 = 1 row size x row
Q5. core dump/ segmentation fault 발생 원인과 해결방벙
- 오라클은 데이터를 저장 -> character set 존재
- 국내에서 주로 US7ASCII, KO16KSC5601, KO16MSWIN949 사용
- export 받은 DB와 import할 DB의 캐릭터셋이 다를경우 에러 발생
- 해결방법
# 캐릭터셋을 일치시킨후 export 받기
# 이미 받아버린 dmp파일이라면 convert 프로그램을 이용하여 imp하는곳의 캐릭터셋과 동일하게 변환후 imp 수행
- 현재 DB의 캐릭터셋 확인 : select value from nls_database_parameters where parameter='NLS_CHARACTERSET'
Q6. Array Fetch란?
- export는 select문장을 만들어 DB Buffer Cache에 있는 데이터를 evaluation buffer로 가져와 dmp파일에 내려쓰는데
- evaluation buffer에 일정량의 데이터가 쌓이게 되면 한꺼번에 파일에 내려써서 I/O발생을 줄이고 속도를 높이는 방법.
Q7. Array Insert란?
- export와 마찬가지로 import시 여런건의 데이터를 한꺼번에 insert하는방법
Q8. import 시 "ABNORMAL END OF FILE" 에러메세지 의미?
- export받은 파일에 문제가 있다는 뜻
- export를 다시 받아야 함
Q9. sys소유자의 객체는 왜 export가 안되는지?
- sys계정은 dictionary 객채들을 소유하고있는데 새로운 DB에도 이미 고유의 dictionary들을 가지고 있기때문
- sys계정은 DB를 관리하는 계정으로 sys계정의 객체를 export하고 import한다는것은 큰 위험이 있고 부하도 많이 걸림
- sys계정은 export를 수행할수 없도록 되어있음
Q10. A사용자 소유의 테이블에 B사용자가 인덱스 생성했을때, A사용자가 export받을때 B사용자가 생성한 인덱스도 함께 export되는지?
- A사용자 계정으로 export수행시에는 받을수 없으나 DBA권한으로 받으면 받을수 있음
Q11. offline상태의 tablespace도 export받을수 있는지?
- export는 select와 동일한 원리이므로 offline이나 shutdown상태에서는 사용할수 없음
[Tables 옵션으로 exp받은 dmp파일 분석]
[Tablespace 옵션으로 exp받은 dmp파일 분석]
① Tablespace 옵션으로 exp할 경우
- system계정으로 수행해도 exp유틸이 자동으로 해당 tablespace를 dafault tablespace로 사용하는 스키마를 찾아
- 해당 계정으로 로그인 한 후 생성한 테이블들 단위로 exp 받음
- imp할때 tablespace를 먼저만들지 않음
- imp하려는 서버에 tablespace를 먼저 만들어 두어야 함
② 서버1-A사용자의 default tablespace와 서버2-A사용자의 default tablespace가 다른경우
- 서버1에서 exp수행시 해당 사용자의 default tablespace에 테이블생성
- 서버2에서 imp수행시 서버2-A사용자 default tablespace가 아닌 서버1-A사용자의 default tablespace에 생성
③ 서버1-A사용자 default tablespace가 서버2에 존재하지 않는 tablespace일 경우
- 서버1에서 exp수행시 : 서버1-A사용자의 default tablespace에 테이블 생성
- 서버2에서 imp수행시 : 서버1에서 exp수행한 tablespace가 없다면 서버2에서 imp수행하는 스키마의 default tablespace에 입력됨
'oracle > [Backup] 백업' 카테고리의 다른 글
[데이터 이동하기] Datapump - impdp (0) | 2014.11.10 |
---|---|
[데이터 이동하기] Datapump - expdp (0) | 2014.11.10 |
[데이터 이동하기] Datapump (0) | 2014.11.10 |
[데이터 이동하기] IMPORT (0) | 2014.11.07 |
[데이터 이동하기] EXPORT (0) | 2014.11.07 |
댓글