ORACLE Database / WAS (iAS) / SQL 자료실 - 포기하지 않으면 실패하지 않는다!
Vote Reply Modify Delete Forward Prev Next List

  Author   : 조성환 [ ladmin ] Vote: 2410, Hit: 5089, Lines: 44, Category: Etc.
import 할 때 tablespace를 변경하려면
 
exp 명령어로 현재 있는 데이터를 export하고나서
imp 명령어로 다른 user의 다른 tablespace에 저장하고 싶다면......


exp hi/1234 file=2001_12_20.dmp owner=hi
이렇게 하고나서 생성된 2001_12_20.dmp 파일을 열어서 tablespace명을 바꿔주곤
했거든요.
(크기가 클 경우 수정이 좀 힘들어지지만요.)

imp hi2/4321 file=2001_12_20.dmp rows=y fromuser=hi touser=hi2


####
imp를 할때에는 기존에 exp 받았던 tablespace인 BBB가 존재하면 아무리 imp받는
user의 default tablespace가 AAA라 하더라도 BBB에 저장됩니다.
haruz님께서는 다른 유저를 사용하신다고 했는데요..
우선 그 유저가 DBA권한이 있거나, 다른 tablespace를 사용할 권한 또는 unlimited
tablespace 권한(Resource Role에 포함)이 있으면 BBB tablespace를 사용할수 있는
권한 빼고 전부 revoke합니다.

SQL>conn system/manager
SQL>select name from v$tablespace;
하면 tablespace 명이 나열됩니다.
SQL>alter user username
quota 0 on system
quota 0 on tools
..
..
imp할려는 tablespace의 quota조절은 안되겠죠?
다른 tablespace만...
SQL>revoke unlimited tablespace from username;

####
먼저, 인덱스는 rebuild 옵션으로 바꾸시면 될것 같구요.

테이블은 imp 에서 생성 스크립을 추출할 수 있습니다. (indexfile 옵션이용)
추출하신다음, 그 스크립트를 바꾸십시요.
(아마도 rem만 빼시면 원래의 생성 스크립트를 얻을수 있을것입니다.)
그리고 tablespace 문장위에 있는 이름을 원하는 명으로 바꾸신다음에 생성하세요.
그리고 imp하실때 ignore=y로 import하시면 그대로 들어갈겁니다....


Prev: Oracle Log Mode (Archive, NoArchive) 변경 방법 [강추]
Next: 사용자 이전하기
2006/05/29(20:55) from 203.234.120.78
CrazyWWWBoard 2000

Vote Reply Modify Delete Forward Prev Next List
(c) Nobreak Technologies, Inc.