목차
728x90
반응형
이번 게시물 에서는 Altibase 에서 사용되는 테이블 스페이스 관리 쿼리문에 대해 살펴보겠습니다.
Altibase 6.1 ~ 7.1 버전에서 사용되며 일부 버전에서 쿼리문이 조금 달라 질 수 있음을 알려드립니다.
- sys 계정으로 접속 후 출력 화면 설정
$ isql -u sys -p manager
iSQL> SET LINESIZE 1024;
iSQL> SET COLSIZE 20;
- 데이터 베이스 유저 목록 조회
iSQL> select * from system_.sys_users_;
- 특정 유저의 테이블 조회 - [user_name] 부분에 유저명 기입
select
user_name , table_name
from system_.sys_tables_ a,system_.sys_users_ b
where b.user_name = '[user_name]'
and table_type = 'T'
and a.user_id = b.user_id;
- dbf 파일 조회
SELECT b.name tbs_name, a.id 'FILE#', a.name datafile_name,
currsize*8/1024 'ALLOC(M)', round(case2(a.maxsize=0, currsize, a.maxsize)*8/1024) 'MAX(M)',
decode(autoextend, 0, 'OFF', 'ON') 'AUTOEXTEND'
FROM v$datafiles a, v$tablespaces b WHERE b.id = a.spaceid
ORDER BY b.name, a.id;
- dbf 파일 추가
'TBS_NAME' : 테이블 스페이스명
'/PATH/FILE_NAME.dbf' : dbf 파일 위치 및 파일명
'size' : 파일 생성 크기 GB, MB, KB 단위 지정 가능. (Maxsize 32G)
'autoextend' : ON - 자동 증감(maxsize, next 값 지정필요) / OFF - 고정사이즈
### AUTOEXTEND 미사용
alter tablespace TBS_NAME add datafile '/PATH/FILE_NAME.dbf' size X[G/M/K] autoextend off;
### AUTOEXTEND 사용
alter tablespace TBS_NAME add datafile '/PATH/FILE_NAME.dbf' autoextend on next X[G/M/K] MAXSIZE X[G/M/K];
- dbf 파일 삭제
'TBS_NAME' : 테이블 스페이스명
'/PATH/FILE_NAME.dbf' : dbf 파일 위치 및 파일명
alter tablespace TBS_NAME drop datafile '/PATH/FILE_NAME.dbf';
- dbf 파일 변경
alter tablespace TBS_NAME alter datafile '/PATH/FILE_NAME.dbf' size X[G/M/K];
- 테이블 스페이스 사용률 조회
SELECT NAME TBS_NAME
, TO_CHAR((D.MAX * PAGE_SIZE / 1024 /1024), '999,999,999') 'MAX(M)'
, TO_CHAR((TOTAL_PAGE_COUNT * PAGE_SIZE)/1024/1024, '999,999,999') 'TOTAL(M)'
, DECODE(TYPE, 7, TO_CHAR((U.TOTAL_EXT_CNT*PROP.EXTENT_SIZE)/1024/1024, '999,999,999')
, TO_CHAR((ALLOCATED_PAGE_COUNT * PAGE_SIZE)/1024/1024, '999,999,999')) 'ALLOC(M)'
, DECODE(TYPE, 3, TO_CHAR(NVL(DS.USED, 0)/1024/1024, '999,999,999'),
4, TO_CHAR(NVL(DS.USED, 0)/1024/1024, '999,999,999'),
7, TO_CHAR(((U.TX_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE)/1024/1024, '999,999,999')
, LPAD('-', 12))'USED(M)'
, DECODE(TYPE, 7, TO_CHAR((((U.TX_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE)/(D.MAX*PAGE_SIZE))*100, '99.99'),
3, TO_CHAR(NVL(DS.USED, 0)/(D.MAX*PAGE_SIZE)* 100, '99.99'),
4, TO_CHAR(NVL(DS.USED, 0)/(D.MAX*PAGE_SIZE)* 100, '99.99')
, TO_CHAR((ALLOCATED_PAGE_COUNT/D.MAX) * 100, '99.99')) 'USAGE(%)'
, D.AUTOEXTEND
FROM V$TABLESPACES T LEFT OUTER JOIN(SELECT SPACE_ID , SUM(TOTAL_USED_SIZE) USED
FROM X$SEGMENT
GROUP BY SPACE_ID) DS ON DS.SPACE_ID = T.ID
, (SELECT SPACEID
, SUM(DECODE(MAXSIZE, 0, CURRSIZE, MAXSIZE)) AS MAX
, DECODE(MAX(AUTOEXTEND), 1, 'ON', 'OFF') 'AUTOEXTEND'
FROM V$DATAFILES
GROUP BY SPACEID ) D
, V$DISK_UNDO_USAGE U
, (SELECT VALUE1 EXTENT_SIZE
FROM V$PROPERTY
WHERE NAME = 'SYS_UNDO_TBS_EXTENT_SIZE') PROP
WHERE T.ID = D.SPACEID ;
- 디스크 DB 테이블 사용량
SELECT USER_NAME table_owner,
A.TABLE_NAME table_name,
ROUND((B.DISK_PAGE_CNT*8*1024)/1024/1024) 'allocate(M)',
'DISK' as TYPE
FROM SYSTEM_.SYS_TABLES_ A,
V$DISKTBL_INFO B,
SYSTEM_.SYS_USERS_ C
WHERE A.TABLE_OID = B.TABLE_OID
AND A.USER_ID = C.USER_ID
AND C.USER_ID <> 1
AND TABLE_TYPE = 'T';
- 메모리 DB 테이블 사용량 조회
SELECT USER_NAME table_owner, TABLE_NAME table_name, ROUND((FIXED_ALLOC_MEM + VAR_ALLOC_MEM)/1024/1024 ) 'allocate(M)', 'MEMORY' as TYPE
FROM SYSTEM_.SYS_TABLES_ A, SYSTEM_.SYS_USERS_ B,
V$MEMTBL_INFO C
WHERE A.USER_ID = B.USER_ID
AND A.TABLE_OID = C.TABLE_OID
AND B.USER_ID <> 1
AND TABLE_TYPE = 'T';
728x90
반응형
'DB > Altibase' 카테고리의 다른 글
(알티베이스) 리눅스에서 Altibase DB 삭제 방법 (0) | 2024.04.08 |
---|---|
(알티베이스) aexport 명령으로 스키마 백업 및 복구 (0) | 2024.04.08 |
(알티베이스) dbf 파일 maxsize 변경시 에러 [ERR-11156] (0) | 2024.01.22 |