데이터가 시작된 곳과 다른 새 테이블 스페이스 또는 다른 테이블 스페이스를 사용하여 스키마를 Oracle 11gR2로 가져 오는 편리한 방법이 있습니까?
예를 들어, 모든 사용자 데이터가 USERS 테이블 스페이스에 저장되는 OLDDB에서 BLOG_DATA를 내보냈습니다.
NEWDB에서 BLOG_DATA 스키마를 가져오고 싶지만이 사용자를 위해 특별히 작성된 BLOG_DATA 테이블 스페이스에 사용자 오브젝트를 저장하려고합니다.
BLOG_DATA 사용자를 작성하고 BLOG_DATA 테이블 스페이스를 작성하여 해당 사용자의 기본 테이블 스페이스로 설정 한 후 적절한 무제한 할당량을 추가했습니다.
CREATE TABLESPACE blog_data DATAFILE SIZE 1G;
CREATE USER blog_data IDENTIFIED BY secretpassword DEFAULT TABLESPACE blog_data QUOTA UNLIMITED ON blog_data;
GRANT connect,resource TO blog_data
스키마는 OLDDB에서 다음과 같은 방식으로 내보내졌습니다.
exp blog_data/secretpassword@OLDDB file=blog_data.dmp
아래 Phil의 훌륭한 답변을 읽은 후, 나는 궁금해했습니다 .
데이터가 사용자가 할당량을 가지고있는 유일한 테이블 스페이스 인 기본 테이블 스페이스 이외의 다른 위치를 가지지 않기 때문에 모든 사용자 객체를 해당 기본 테이블 스페이스에 효과적으로 배치 할 수 있습니까?
imp blog_data/secretpassword@NEWDB file=blog_data.dmp
그러면 NEWDB의 blog_data 테이블 스페이스에 전체 blog_data 스키마가 배치됩니까? 이것이 작동하지 않거나 특정 객체 등에 문제가 발생하는 이유가 있습니까?
최신 정보:
나는 빠른 테스트를했고 이것이 사실임을 알았다. Imp
원본 테이블 스페이스에 객체를 배치 할 수없는 경우 (예 : 테이블 스페이스가 존재하지 않는 경우) 해당 사용자의 기본 테이블 스페이스에 객체를 배치합니다. 전체 설명 : http://www.dolicapax.org/?p=57
여전히 필과 같이 Data Pump를 사용하는 것이 선호되는 옵션이라고 생각합니다.
exp
유틸리티 또는expdp
(데이터 펌프)를 사용하여 내보냈습니까 ?