클라우드 데이터베이스 Oracle 12c 가이드 (2016년)
Partition online move 0 0 38,431

by 구루비스터디 Partition Partition online move [2023.09.03]


  • Table Partition 의 Online move 가 가능해 짐.

SQL> create table part_move_test (
name varchar2(10),
dob date
)
partition by range (dob)
interval (numtodsinterval(7, 'DAY'))
(partition p_jan1971 values less than (to_DatE('19710101','yyyymmdd'))
);

Statement Processed.

SQL> insert into part_move_test values ('name1',to_Date('2016/12/01','yyyy/mm/dd'));

1 rows Inserted.

SQL> insert into part_move_test values ('name2',to_Date('2016/12/02','yyyy/mm/dd'));

1 rows Inserted.

SQL> insert into part_move_test values ('name3',to_Date('2016/12/03','yyyy/mm/dd'));

1 rows Inserted.

SQL> insert into part_move_test values ('name4',to_Date('2016/12/04','yyyy/mm/dd'));

1 rows Inserted.


SQL> SELECT table_name, partition_name, num_rows, tablespace_name 
FROM USER_TAB_PARTITIONS WHERE TABLE_NAME='PART_MOVE_TEST';


TABLE_NAME                     PARTITION_NAME                   NUM_ROWS TABLESPACE_NAME
------------------------------ ------------------------------ ---------- ------------------------------
PART_MOVE_TEST                 P_JAN1971                               0 USERS
PART_MOVE_TEST                 SYS_P426                                1 USERS
PART_MOVE_TEST                 SYS_P427                                3 USERS

SQL> alter table part_move_test move partition SYS_P426 tablespace ts_1 online ;

Table altered.

SQL>  SELECT table_name, partition_name, num_rows, tablespace_name
FROM USER_TAB_PARTITIONS WHERE TABLE_NAME='PART_MOVE_TEST'

TABLE_NAME                     PARTITION_NAME                   NUM_ROWS TABLESPACE_NAME
------------------------------ ------------------------------ ---------- ------------------------------
PART_MOVE_TEST                 P_JAN1971                               0 USERS
PART_MOVE_TEST                 SYS_P426                                1 TS_1
PART_MOVE_TEST                 SYS_P427                                3 USERS

SQL>


  • Non partition table 의 Online move 는 여전히 불가능
SQL> create table move_test (name varchar2(30), dob date ) tablespace users;

Table created.

SQL> insert into move_test select object_name, created from dba_objects;
90794 rows created.

SQL>
SQL> commit;

Commit complete.

SQL> alter table move_test move tablespace ts_1 online ;
alter table move_test move tablespace ts_1 online
*
ERROR at line 1:
ORA-01735: invalid ALTER TABLE option
"구루비 데이터베이스 스터디모임" 에서 2016년에 "클라우드 데이터베이스 Oracle 12c 가이드" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4260

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

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