by 병기태 expdp impdp tablespace ora-39083 ora-00959 [2015.09.30 10:29:02]
안녕하세요.
DB를 새로 만들고 다른 DB에 있던것을 복사하기위해 impdp를 진행하던중 에러가 발성하여 질문을 하게되었습니다.
먼저 expdp로 dump파일을 만드는데에서는 이상이 없었으며, 해당 dump를
impdp하는 과정에서 tablespace관련 에러가났는데, 해당에러가 왜발성하는지 이해가 가질않습니다.
3개의 테이블이 테이블스페이스 누락으로 에러가 발생하였는데,
분명 원본DB(expdp한 DB)의 3개 테이블의 테이블스페이스는 생성한 테이블스페이스입니다.
(원본 DB의 테이블들의 TABLESPACE_NAME은 모두 GAMC_DAT로 되어있습니다.)
그러나 이 3개의 테이블은 아래와같은 에러를 발생하며 impdp를 하지 못하였습니다.
ORA-39083: Object type TABLE:"GAMCDEV"."TBBDB_BOARD_ITEM" failed to create with error:
ORA-00959: tablespace 'TBSL_BD' does not exist
Failing sql is:
CREATE TABLE "GAMCDEV"."TBBDB_BOARD_ITEM" ("BULBD_NO" NUMBER(15,0) NOT NULL ENABLE, "BULT_NO" NUMBER(15,0) NOT NULL ENABLE, "TITL" VARCHAR2(300 BYTE), "CONT" CLOB, "ORGN_WRTN_NO" NUMBER(15,0), "PAET_WRTN_NO" NUMBER(15,0), "SORT_NO" NUMBER(7,0), "ORGN_WRTN_DCD" VARCHAR2(4 BYTE), "DEPH" NUMBER(3,0), "INQ_CNT" NUMBER(5,0), "HGRK_FIX_YN" NUMBER(1,0), "POPUP_YN"
ORA-39083: Object type TABLE:"GAMCDEV"."TBWFB_CANDIDATE" failed to create with error:
ORA-00959: tablespace 'TBSD_WF' does not exist
Failing sql is:
CREATE TABLE "GAMCDEV"."TBWFB_CANDIDATE" ("CNDP_NO" NUMBER(7,0) NOT NULL ENABLE, "HN_NM" VARCHAR2(30 BYTE), "ENG_NM" VARCHAR2(30 BYTE), "CHIN_NM" VARCHAR2(30 BYTE), "SSN" VARCHAR2(32 BYTE), "GNDR_CD" VARCHAR2(1 BYTE), "ZCD_ONE" VARCHAR2(3 BYTE), "ZCD_TWO" VARCHAR2(3 BYTE), "ADDR_ONE" VARCHAR2(150 BYTE), "ADDR_TWO" VARCHAR2(150 BYTE), "RSDC_PRID_YEAR" NUMBER(3
ORA-39083: Object type TABLE:"GAMCDEV"."TBCMB_POPUP" failed to create with error:
ORA-00959: tablespace 'TS_SMARTPLAN_DAT' does not exist
Failing sql is:
CREATE TABLE "GAMCDEV"."TBCMB_POPUP" ("POPUP_NO" VARCHAR2(22 BYTE) NOT NULL ENABLE, "SVR_SHT_CD" VARCHAR2(5 BYTE) NOT NULL ENABLE, "TITL" VARCHAR2(200 BYTE), "TITL_DISP_YN" VARCHAR2(1 BYTE), "FILE_NM" VARCHAR2(256 BYTE), "IMG_PATH" VARCHAR2(256 BYTE), "IMG_NM" VARCHAR2(100 BYTE), "LINK_URL" VARCHAR2(256 BYTE), "TODAY_HIDE_YN" VARCHAR2(1 BYTE), "CONT" CLO
처음 이 에러가 발생하였을때, 테이블스페이스가 누락되었네? 하고
SELECT TABLE_NAME, TABLESPACE_NAME FROM DBA_TABLES를 조회해보았습니다.
하지만 모든 테이블은 GAMC_DAT로 지정되어있었습니다 (첨부파일참조)
왜 이런 현상이 발생하여 테이블을 복사하지못했는지... 3개테이블에 지정되어있는 테이블스페이스를 생성해서
다시 impdp를 진행하야 하는것인지 알고싶습니다.
아래 스크립트를 참조하여 활용해 보시고 데이타가 존재하지 않은 테이블은 그냥 생성하시는게 나을거 같습니다. 위에서 설명드렸지만 데이타가 존재하지 않을경우 exp되지 않은거 같습니다. 그런데 데이타가 존재하는 테이블이 왜 expdp가 안되었는지 ????? 좀 그러합니다.
exp userid/pswd file=TBBDB_BOARD_ITEM.dmp tables=TBBDB_BOARD_ITEM rows=y indexes=y
imp userid/pswd file=TBBDB_BOARD_ITEM.dmp tables=TBBDB_BOARD_ITEM rows=y indexes=y
system으로 import시
imp system/pswd file=TBBDB_BOARD_ITEM.dmp tables=TBBDB_BOARD_ITEM rows=y indexes=y fromuser=aaa touser=bbb