문서유형ㅣ기술정보
분야ㅣ관리/환경설정
적용제품버전ㅣTibero5, Tibero6 , Tibero7
문서번호ㅣTADTI219
개요
SINGLE 환경에서 테이블 관리 기능의 정상 동작 여부를 검증하기 위한 BMT 시나리오를 기술합니다.
방법
Drop(DDL)된 테이블에 대해 원복 쿼리를 통한 복구 여부 확인
수행
| 수행 순서 | 시나리오 |
|---|---|
| 1 | 환경파일(TIP)에 Drop(DDL)된 테이블 복구기능을 제공하는 파라미터 활성화(USE_RECYCLEBIN) |
| 2 | 테스트 테이블(TIBERO.FLASHBACK_TEST) 생성 |
| 3 | 테스트 테이블(TIBERO.FLASHBACK_TEST)에 데이터 입력 |
| 4 | 테스트 테이블(TIBERO.FLASHBACK_TEST) 건수 조회 |
| 5 | 테스트 테이블(TIBERO.FLASHBACK_TEST) Drop |
| 6 | Drop 된 테스트 테이블(TIBERO.FLASHBACK_TEST)을 Recycle bin 에서 조회 |
| 7 | Drop 된 테스트 테이블(TIBERO.FLASHBACK_TEST)을 복구 |
| 8 | 테스트 테이블(TIBERO.FLASHBACK_TEST) 건수 조회 |
| 9 | 환경파일(TIP)에 Drop(DDL)된 테이블 복구기능을 제공하는 파라미터 비활성화(USE_RECYCLEBIN) |
결과
| 수행순서 | 시나리오 |
|---|---|
| 1 | 환경파일(TIP)에 Drop(DDL)된 테이블 복구기능을 제공하는 파라미터 활성화(USE_RECYCLEBIN) |
conn SYS/TIBERO
| |
| 2 | 테스트 테이블(TIBERO.FLASHBACK_TEST) 생성 |
conn TEST/TEST
| |
| 3 | 테스트 테이블(TIBERO.FLASHBACK_TEST)에 데이터 입력 |
declare
| |
| 4 | 테스트 테이블(TIBERO.FLASHBACK_TEST) 건수 조회 |
| SELECT COUNT(*) FROM FLASHBACK_TEST; COUNT(*) ---------- 10000 1 ROW SELECTED. | |
| 5 | 테스트 테이블(TIBERO.FLASHBACK_TEST) Drop |
DROP TABLE TEST.FLASHBACK_TEST; TABLE 'TEST.FLASHBACK_TEST' DROPPED. SELECT COUNT(*) FROM FLASHBACK_TEST; TBR-8033: SPECIFIED SCHEMA OBJECT WAS NOT FOUND. | |
| 6 | Drop 된 테스트 테이블(TIBERO.FLASHBACK_TEST)을 Recycle bin 에서 조회 |
COL OBJECT_NAME FOR A20
| |
| 7 | Drop 된 테스트 테이블(TIBERO.FLASHBACK_TEST)을 복구 |
| FLASHBACK TABLE FLASHBACK_TEST TO BEFORE DROP; FLASHBACKED. | |
| 8 | 테스트 테이블(TIBERO.FLASHBACK_TEST) 건수 조회 |
| SELECT COUNT(*) FROM FLASHBACK_TEST; COUNT(*) ---------- 10000 1 ROW SELECTED. | |
| 9 | 환경파일(TIP)에 Drop(DDL)된 테이블 복구기능을 제공하는 파라미터 비활성화(USE_RECYCLEBIN) |
conn SYS/TIBERO
|
Range Partition Table 확인
수행
| 수행 순서 | 시나리오 |
|---|---|
| 1 | 파티션 테이블 생성 |
| 2 | 데이터 입력 |
| 3 | 파티션 추가 |
| 4 | 파티션 삭제 |
| 5 | 파티션 이름 변경 |
| 6 | 파티션 병합(MERGE) |
| 7 | 파티션 분할(SPLIT) |
| 8 | 파티션 변경(EXCHANGE) |
| 9 | 파티션 테이블스페이스 변경 |
| 10 | 파티션 데이터 TRUNCATE |
결과
| 수행 순서 | 시나리오 |
|---|---|
| 1 | 파티션 테이블 생성 |
tbsql sys/tibero tbSQL 7 TmaxTibero Corporation Copyright (c) 2020-. All rights reserved. Connected to Tibero.
grant create tablespace to test; Granted.
grant connect , resource to test; Granted.
conn test/test CREATE TABLESPACE TEST_PART1 DATAFILE 'TEST_PART1.DBF' SIZE 100M; Tablespace 'TEST_PART1' created. CREATE TABLESPACE TEST_PART2 DATAFILE ' TEST_PART2.DBF' SIZE 100M; Tablespace 'TEST_PART2' created.
CREATE TABLESPACE TEST_PART3 DATAFILE 'TEST_PART3.DBF' SIZE 100M; Tablespace 'TEST_PART3' created.
CREATE TABLESPACE TEST_PART4 DATAFILE ' TEST_PART4.DBF' SIZE 100M; Tablespace 'TEST_PART4' created. CREATE TABLE TEST.RANGE_PART Table 'TEST.RANGE_PART' created
| |
| 2 | 데이터 입력 |
NSERT INTO RANGE_PART VALUES(1, 2004, 06, 12, 'SCOTT', 2500); INSERT INTO RANGE_PART VALUES(2, 2005, 06, 17, 'JONES', 4300); INSERT INTO RANGE_PART VALUES(3, 2005, 12, 12, 'MILLER', 1200); INSERT INTO RANGE_PART VALUES(4, 2006, 06, 22, 'FORD', 5200); INSERT INTO RANGE_PART VALUES(5, 2005, 01, 01, 'LION', 2200); COMMIT;
Commit completed.
SQL> SELECT * FROM TEST.RANGE_PART; RANGE_NO RANGE_YEAR RANGE_MONTH RANGE_DAY RANGE_NAME RANGE | |
| 3 | 파티션 추가 |
CREATE TABLESPACE TEST_PART_MAX DATAFILE 'PART_MAX.DBF' SIZE 100M; Tablespace 'TEST_PART_MAX' created.
CREATE TABLESPACE TEST_PART_MAX DATAFILE 'PART_MAX.DBF' SIZE 100M; Tablespace 'TEST_PART_MAX' created. | |
| 4 | 파티션 삭제 |
ALTER TABLE RANGE_PART DROP PARTITION RANGE_MAX; TABLE 'RANGE_PART' ALTERED | |
| 5 | 파티션 이름 변경 |
SELECT * FROM TEST1.TBL; ID ---------- 1
1 ROW SELECTED. | |
| 6 | 파티션 병합(MERGE) |
ALTER TABLE RANGE_PART MERGE PARTITIONS RANGE_Q1, RANGE_Q2 INTO PARTITION RANGE_Q2 UPDATE INDEXES;
TABLE 'RANGE_PART' ALTERED | |
| 7 | 파티션 분할(SPLIT) |
| ALTER TABLE RANGE_PART SPLIT PARTITION RANGE_Q2 AT (2005, 01, 01) INTO (PARTITION RANGE_Q1, PARTITION RANGE_Q2); TABLE 'RANGE_PART' ALTERED. | |
| 8 | 파티션 변경(EXCHANGE) |
** 파티션 데이터를 일반테이블로 이동하기 위한 테이블을 생성 ** CREATE TABLE RANGE_PART_EX (RANGE_NO NUMBER, RANGE_YEAR INT NOT NULL, RANGE_MONTH INT NOT NULL, RANGE_DAY INT NOT NULL, RANGE_NAME VARCHAR2(30), RANGE NUMBER) TABLESPACE TEST_PART1; TABLE 'RANGE_PART_EX' CREATED.
** 파티션 데이터를 일반 테이블로 변경 ** ALTER TABLE RANGE_PART EXCHANGE PARTITION RANGE_Q1 WITH TABLE RANGE_PART_EX; TABLE 'RANGE_PART' ALTERED.
** 파티션 테이블의 데이터를 조회 ** SELECT RANGE_NO FROM RANGE_PART PARTITION (RANGE_Q1); 0 ROW SELECTED
** 파티션 데이터를 이동한 일반 테이블의 데이터를 조회 ** SELECT RANGE_NO FROM RANGE_PART_EX; RANGE_NO ---------------- 1 1 ROW SELECTED. | |
| 9 | 파티션 테이블 스페이스 변경 |
ALTER TABLE RANGE_PART MOVE PARTITION RANGE_Q3 TABLESPACE TEST_PART_MAX; TABLE 'RANGE_PART' ALTERED. | |
| 10 | 파티션 데이터 TRUNCATE |
ALTER TABLE RANGE_PART TRUNCATE PARTITION RANGE_Q3; TABLE 'RANGE_PART' ALTERED.
SELECT * FROM RANGE_PART PARTITION (RANGE_Q3); 0 ROW SELECTED. |
Hash Partition Table 확인
수행
| 수행 순서 | 시나리오 |
|---|---|
| 1 | 파티션테이블 생성 |
| 2 | 데이터 입력 |
| 3 | 파티션 삭제(지원하지 않음) |
| 4 | 파티션 이름 변경 |
| 5 | 파티션 변경(EXCHANGE) |
| 6 | 파티션 테이블스페이스변경 |
| 7 | 파티션 데이터 TRUNCATE |
결과
| 수행 순서 | 시나리오 |
|---|---|
| 1 | 파티션테이블 생성 |
tbsql test/test tbSQL 7 TmaxTibero Corporation Copyright (c) 2020-. All rights reserved. Connected to Tibero.
CREATE TABLE TEST.HASH_PART Table 'TEST.HASH_PART' created. | |
| 2 | 데이터 입력 |
INSERT INTO TEST.HASH_PART VALUES(1, 2004, 06, 12, 'SCOTT', 2500); COMMIT; Commit completed.
SELECT * FROM TEST.HASH_PART; HASH_NO HASH_YEAR HASH_MONTH HASH_DAY HASH_NAME HASH 6 rows selected. | |
| 3 | 파티션 삭제 ( 지원하지 않음 ) |
ALTER TABLE TEST.HASH_PART DROP PARTITION HASH_PART4;
| |
| 4 | 파티션 이름 변경 |
| ALTER TABLE TEST.HASH_PART RENAME PARTITION HASH_PART4 TO HASH_PART_FOUR; Table 'TEST.HASH_PART' altered. | |
| 5 | 파티션 변경 (EXCHANGE) |
** 파티션 데이터를 일반테이블로 이동하기 위한 테이블을 생성 ** CREATE TABLE TEST.HASH_PART_EX Table 'TEST.HASH_PART_EX' created.
** 파티션 데이터를 일반 테이블로 변경 ** ALTER TABLE TEST.HASH_PART EXCHANGE PARTITION HASH_PART2 WITH TABLE TEST.HASH_PART_EX; Table 'TEST.HASH_PART' altered.
** 파티션 테이블의 데이터를 조회 ** SELECT COUNT(*) FROM TEST.HASH_PART PARTITION(HASH_PART2); COUNT(*) 1 row selected.
SELECT COUNT(*) FROM TEST.HASH_PART_EX; COUNT(*) 1 row selected. | |
| 6 | 파티션 테이블스페이스 변경 |
ALTER TABLE TEST.HASH_PART MOVE PARTITION HASH_PART3 TABLESPACE TEST_PART4; Table 'TEST.HASH_PART' altered. | |
| 7 | 파티션 데이터 TRUNCATE |
SELECT COUNT(*) FROM TEST.HASH_PART PARTITION(HASH_PART_FOUR); COUNT(*) 1 row selected. ALTER TABLE TEST.HASH_PART TRUNCATE PARTITION HASH_PART_FOUR; Table 'TEST.HASH_PART' altered.
SELECT COUNT(*) FROM TEST.HASH_PART PARTITION(HASH_PART_FOUR); COUNT(*) 1 row selected. |
List Partition Table 확인
수행
| 수행 순서 | 시나리오 |
|---|---|
| 1 | 파티션테이블 생성 |
| 2 | 데이터 입력 |
| 3 | 파티션 추가(add) |
| 4 | 파티션 제거(drop) |
| 5 | 파티션 이름 변경 |
| 6 | 파티션 변경(EXCHANGE) |
| 7 | 파티션 테이블스페이스 생성 |
| 8 | 파티션 데이터 TRUNCATE |
결과
| 수행 순서 | 시나리오 |
|---|---|
| 1 | 파티션테이블 생성 |
CREATE TABLE TEST.LIST_PART Table 'TEST.LIST_PART' created. | |
| 2 | 데이터 입력 |
INSERT INTO LIST_PART VALUES(1, 'SMITH', 'CLERK', 7902, SYSDATE, 800, NULL,20); COMMIT;
SELECT LIST_NO FROM LIST_PART PARTITION (LIST_PART1); LIST_NO 3 rows selected.
SELECT LIST_NO FROM LIST_PART PARTITION (LIST_PART2); LIST_NO 4 rows selected.
SELECT LIST_NO FROM LIST_PART PARTITION (LIST_PART3); LIST_NO 2 rows selected. SELECT LIST_NO FROM LIST_PART PARTITION (LIST_PART4); LIST_NO 5 rows selected. | |
| 3 | 파티션 추가(add) |
ALTER TABLE LIST_PART ADD PARTITION LIST_PART_MAX VALUES ('DUMMY') TABLESPACE TEST_PART_MAX; Table 'LIST_PART' altered. | |
| 4 | 파티션 제거(drop) |
ALTER TABLE LIST_PART DROP PARTITION LIST_PART_MAX ; Table 'LIST_PART' altered. | |
| 5 | 파티션 이름 변경 |
| ALTER TABLE TEST.LIST_PART RENAME PARTITION LIST_PART4 TO LIST_PART_FOUR; Table 'TEST.LIST_PART' altered. | |
| 6 | 파티션 변경(EXCHANGE) |
** 파티션 데이터를 일반테이블로 이동하기 위한 테이블을 생성 ** CREATE TABLE TEST.LIST_PART_EX
SELECT COUNT(*) FROM TEST.LIST_PART PARTITION(LIST_PART3); COUNT(*) 1 row selected. ** 파티션 데이터를 일반 테이블로 변경 ** ALTER TABLE TEST.LIST_PART EXCHANGE PARTITION LIST_PART3 WITH TABLE TEST.LIST_PART_EX; Table 'TEST.LIST_PART' altered. ** 파티션 테이블의 데이터를 조회 ** SELECT COUNT(*) FROM TEST.LIST_PART PARTITION(LIST_PART3); 1 row selected. ** 파티션 데이터를 이동한 일반 테이블의 데이터를 조회 ** SELECT COUNT(*) FROM TEST.LIST_PART_EX; COUNT(*) 1 row selected. | |
| 7 | 파티션 테이블 스페이스 생성 |
ALTER TABLE TEST.LIST_PART MOVE PARTITION LIST_PART1 TABLESPACE TEST_PART2; Table 'TEST.LIST_PART' altered. | |
| 8 | 파티션 데이터 TRUNCATE |
SELECT COUNT(*) FROM TEST.LIST_PART PARTITION(LIST_PART2); 1 row selected. ALTER TABLE TEST.LIST_PART TRUNCATE PARTITION LIST_PART2; Table 'TEST.LIST_PART' altered.
SELECT COUNT(*) FROM TEST.LIST_PART PARTITION(LIST_PART2); COUNT(*) |