TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-05-07 |
제목 | (V7.3 ~ V8.X) USER LEVEL, TABLE LEVEL EXPORT/IMPORT 방법 | ||
---|---|---|---|
(V7.3 ~ V8.X) USER LEVEL, TABLE LEVEL EXPORT/IMPORT 방법 및 FAQ
=============================================================== PURPOSE ------- 이 자료는 export를 받는 user 별로 또는 table 별로 어떤 옵션을 사용하는가에 대한 문의를 중심으로 실제 export/import하는 예제를 소개하는 자료이다. Explanation ----------- system user가 export 시에 한번에 두 명 이상의 user의 오브젝트를 지정하여 export받는 것이 가능하며, 일반 user가 export를 수행할 경우에도 한 번에 두 개 이상의 table을 한꺼번에 export받을 수 있습니다. User level로 받는 예제와 table level로 받는 다양한 예제를 소개합니다. Example ------- - system user가 한 user의 모든 오브젝트를 export 수행하는 명령 1. system user로 export/import하는 예 exp system/manager file=aaa.dmp owner=a_user buffer=1000000 log=exp.log imp system/manager file=aaa.dmp fromuser=a_user touser=b_user ignore=y commit=y buffer=1000000 log=imp.log 2. system user로 export받은 것은 반드시 system user로 import해야 합니다. - user level export/import 방법. 사용자 모드 export 방법에는 두 가지가 있습니다. 1. 사용자 자신이 만든 모든 오브젝트를 그 user가 export하는 방법입니다. exp scott/tiger file=myexp.dmp (on unix) exp80 scott/tiger file=myexp.dmp (on winnt) 2. system/manager로 접속한 DBA가 여러 user 소유의 오브젝트들을 export 하는 방법입니다. exp system/manager owner=scott raghu file=user.dmp (on unix) exp80 system/manager owner=scott raghu file=user.dmp (on winnt) 위의 두 가지 방법은 user export로 분류됩니다. 두번 째 방법의 경우에는 import를 할 때에도 DBA 권한이 있어야 합니다. FROMUSER/TOUSER 옵션은 2번 방법으로 생성된 export 화일을 import할 때에 사용될 수 있습니다. - table level export/import 방법 1. system user로 table 몇 개만 export/import하는 예 exp system/manager file=exp.dmp tables='(pan.BBS_DATA_ID, pan.BBS_MAIL)' compress=n buffer=100000 log=exp.log => 위와 같이 table의 schema(user)명까지 지정해야만 export가 성공합니다. imp system/manager file=exp.dmp tables='(pan.BBS_DATA_ID, pan.BBS_MAIL)' commit=y ignore=y buffer=100000 log=imp.log => 위와 같이 import 수행하시면 성공합니다. 2. pan user로 table 몇 개만 export/import하는 예 exp pan/pan file=exp.dmp tables='(BBS_DATA_ID, BBS_MAIL)' compress=n buffer=100000 log=exp.log => user가 자신의 table을 export할 때에는 schema 명을 지정할 필요 없습니다. imp pan/pan file=exp.dmp tables='(BBS_DATA_ID, BBS_MAIL)' commit=y ignore=y buffer=100000 log=imp.log => 위와 같이 import 수행하시면 성공합니다. export/import 에 관한 FAQ(Frequently Asked Question) ---------------------------------------------------- 1. exp80 system/manager owner=scott raghu file=user.dmp (on winnt) 만약, 위와 같은 명령 수행 시 에러가 나면 owner='(scott, raghu)' 와 같이 single quote와 owner 명 사이에 comma를 주고 export를 수행합니다. 2. DBA role이 없는 db user는 full=y 옵션으로 export를 받을 수 없습니다. 3. export 받을 때 function, procedure, package, trigger만 별도로 받거나 또한 제외시키고 export를 수행하는 것은 불가능합니다. DBA가 FULL=y 옵션으로 export를 받을 때 속도와 저장 공간이 문제라면 먼저 user level로 export를 수행하고, rows=n 옵션과 함께 받으면 속도가 빠릅니다. 즉, export를 받을 때 procedure, trigger만 export받기를 원한다면 owner 단위로 받으면서 rows=n 옵션을 주고 export를 수행합니다. 4. 양쪽 DB 모두의 nls_characterset을 맞추어 놓고 export/import를 수행 해야 하고, (가능하면 us7ascii -> ko16ksc5601) Oracle V8.X 버젼부터는 ko16ksc5601을 us7ascii로 바꾸게 되면 이미 저장 되어 있는 한글 데이타에 기본적으로 문제가 있을 수 있습니다. 그렇지 않으면 아래 제목의 export dump 화일의 character set 변환 프로 그램을 이용하도록 하십시오. 위와 같은 제목의 Technical Bulletin을 찾으실 수 있습니다. 5. import 시에 ignore=y를 주시는 것은 똑같은 이름의 tablespace나 table 이 import할 DB에 이미 만들어져 있는 경우 export dump 화일로부터 같은 tablespace, table을 만들려고 할 때 에러가 날 것인데, 이것을 무시하고 오브젝트의 구조는 기존의 것을 따라가고, data만 기존에 들어 있는 row들 에 추가하여 넣겠다는 뜻입니다. (다만, 원본과 똑같은 data들을 유지하려면 import할 DB에는 tablespace, table의 구조만 만들어놓고, 기존의 table data는 지워 놓고 import를 수행해야 합니다.) 6. 다른 서버의 다른 user에게 import할 때에도 fromuser/touser 옵션과 함께 위에 소개한 예제를 사용하시면 됩니다. Export 받은 dump 화일을 실제 text file로 열어볼 수 있는 방법에 대한 자료는 아래의 자료를 참조하십시오. EXPORT받은 DUMP FILE을 이용하여 IMPORT SCRIPT받기(SHOW와 INDEXFILE 이용) export받은 dump 화일을 이용하여 database 내의 object 생성문을 얻어 내는 방법입니다. 7. 6번과도 연관이 있는 내용인데, EXPORT/IMPORT 를 이용하여 TABLE과 INDEX 를 분리하는 방법에 대해서는 다음의 자료를 참조하시면 됩니다. Reference Documents ------------------- Oracle8i Server Utilities Guide, Release 2 V8.1.6 출처 : Technical Bulletin (Korean) |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |