오라클에서 기존 테이블 파티션 나누기 0 1 3,268

by 서석진 [DB 기타] [2014.08.26 15:29:12]


기존테이블에 데이타가 너무 많아 파티션으로 분할해서 관리하려구하는데요

파티션 생성은 테이블만들때만 할수있나요  파티션으로 안나누어져있는 테이블을 파티션으로 나눌수는 없는지요?

테이블을 새로 생성해야 한다고 하면 기존테이블에 걸려있던 인덱스,시노미 등등..

새로 다시 작성해야 하나요  새로만든테이블을 기존테이블데이터를 덮고 기존테이블 삭제후 새로만든테이블을 기존테이블 이름으로 변경하면 기존테이블에 걸려있던 인덱스,시노미등이 문제없이 승계되는지요?

by DJ [2014.08.26 16:01:31]

일반 table (non-partitioned table) 을 간단히 partitioned table 로 변환할 수는 없습니다.

질문의 요지는 Down time (해당 table을 사용하지 않는 시간)을 가져갈 수 있느냐 없는냐 인것 같네요.

Down time 을 충분히 가져갈 수 있다고 가정하고 말씀드리면 (그렇지 않으면 훨씬 복잡해 집니다.)

1. Partition table만들기 전에 Partition key 와 Partition 방식을 고민하셔서 정하시고,

2. Partition table 생성 (table명은 다르게)

3. Data Copy from 원본 table

4. 원본 table  backup 및 생성 script 확인 후 table drop

5. rename partitioned table 명 to original table 명

6. 새로 생성된 table에 Index 생성 (기존 인덱스와 access pattern 참조하여 필요에 따라 local, global index 생성)

Synonym은 table 에 종속되지 않으므로 재생성할 필요 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입