라벨이 데이터베이스이관인 게시물 표시

오라클(ORACLE) 계정간의 데이터베이스 이관(복사, 이동) Tip

 experience 개발중인 서비스의 대규모 개편으로 DB 스키마등이 많이 바뀔 예정인 상태. 오라클 DB 성능이 좋은건지, 뭐가 좋은 건지 파티션(?), 샤딩(?) 없이 한대로 서비스 중(부하가 그리 크지는 않은 상태)이라서 오픈 시점에(서비스 영향이 없는 한에서..)  한꺼번에 마이그레이션 등등 작업을 계획함.. 이에 대한 검증 등의 목적으로 실 DB -> 개발 DB로 이관을 고려하게 됨.   - SQLDeveloper의 도구(tool) > 데이터베이스 복사(?) 메뉴를 이용  여러 우여곡절 끝에 오라클에서 DB 복사 및 이관시에는 다음과 같은 선작업이 필요함을 알게됨.(데이터 크기에 따라 복사에 시간이 많이 소요되므로 알고 이관하는 것이 시간낭비를 줄일 수 있는 듯.)   * 복사될 계정(또는 DB)에 넉넉한 TableSpace가 있어야함. 그렇지 않을 경우, 복사 및 인덱스 생성등이 제대로 되지 않음.. (동적으로 tablespace가 증가하는 설정이 미리 안되어 있는 경우에는, 복사된 테이블 삭제후 새로운 tablespace에 이관을 해야하는 번거로움 존재)  ** SQLDeveloper 만을 이용할 경우, tablespace 설정이 고정인 경우가 있음(즉, 모든 작업이 하나의 tablespace에서만 수행됨). 이런 경우에는 테이블 1개만 복사를 수행한 뒤, 결과로 생성된 쿼리에서 tablespace부분만 원하는 tablespace 변경한 쿼리를 이용하여 해결하는 방법도 가능.(전체 테이블 적용시에는 생성된 쿼리의 테이블 부분등등 일부만 변경하여 일괄적으로 수행)  * 실 데이터는 가장 나중으로 미룬 뒤, 스키마 및 시퀀스, 인덱스 등을 먼저 이관  ** 인덱스를 미리 생성하지 않고 데이터 복제부터 한뒤, 인덱스 생성시 인덱스 생성에도 시간이 많이 소요됨. * 데이터까지 복사 후, 각 테이블별 통계정보 샘플링 작업이 필요함. 인덱스가 있더라도 통계정보가 제대로...