修改表空间数据文件自动扩展关闭:
SQL> alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS02.DBF' AUTOEXTEND off;
数据库已更改。
alter database datafile 'D:/wm.dbf' autoextend on next 256k maxsize 2048M
----表移动表空间:
alter table ATEMPTAB$ move tablespace users;
select 'alter table '||table_name||' move tablespace users; ' from user_tables ;
----整合数据块:
alter table solo.solo move;
----监控表空间的管理方式:
Select tablespace_name,status,extent_management
from dba_tablespaces;
----查询某表空间下的对象的情况,比如大小
select SEGMENT_NAME,bytes/1024/1024 big from dba_segments
where TABLESPACE_NAME='TEMP_TABLE'
order by big asc
----查询临时表空间采用的是哪些表空间?
select * from dba_temp_files;
----用户默认表空间和临时表空间:
col username format a20
col DEFAULT_TABLESPACE format a20
col TEMPORARY_TABLESPACE format a10
col CREATED format a20
select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE,created from dba_users;
----创建临时表空间
SQL> create temporary tablespace aa
tempfile 'c:/life/temp.dbf' size 500m
extent management local ;
SQL> alter database default
temporary tablespace aa;
SQL> select tablespace_name from dba_temp_files;
TABLESPACE_NAME
------------------------------
TEMP
AA
添加数据文件
alter tablespace USERS1 add datafile 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\user11.dbf' size 50m;
Dropping an Empty Data File(10G新特性)
SQL> alter tablespace users1 drop datafile 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USER11.DBF';
create tablespace dbspace datafile 'D:\oracle\product\10.2.0\oradata\orcl\dbspace.dbf'
size 400M
autoextend on next 10m
maxsize unlimited
----现有的数据库的默认表空间是哪一个
SELECT PROPERTY_VALUE
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME = 'DEFAULT_PERMANENT_TABLESPACE';
-----tablespace表空间满处理 添加数据文件压缩表移动表
表空间使用情况:
Col F.TABLESPACE_NAME format a15
Col D.TOT_GROOTTE_MB format a10
Col TS-PER format a15
SELECT UPPER(F.TABLESPACE_NAME) "TS-NAME",
D.TOT_GROOTTE_MB "TS-BYTES(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "TS-USED (M)",
F.TOTAL_BYTES "TS-FREE(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
2),
'990.99') "TS-PER"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 5 DESC;
临时表空间使用情况:
Col name format a10
col "used (M)" format a20
SELECT d.status "status",
d.tablespace_name "name",
d.contents "type", d.extent_management "manage type",
TO_CHAR(NVL(a.bytes / 1024 / 1024, 0),'99,999,990.900') "byte M",
NVL(t.bytes, 0)/1024/1024 ||'/'||NVL(a.bytes/1024/1024, 0) "used (M)",
TO_CHAR(NVL(t.bytes / a.bytes * 100, 0), '990.00') "per used%"
FROM sys.dba_tablespaces d,
(select tablespace_name, sum(bytes) bytes from dba_temp_files group by tablespace_name) a,
(select tablespace_name, sum(bytes_cached) bytes from v$temp_extent_pool group by tablespace_name) t
WHERE d.tablespace_name = a.tablespace_name(+)
AND d.tablespace_name = t.tablespace_name(+)
AND d.extent_management like 'LOCAL'
AND d.contents like 'TEMPORARY';
修改表空间大小:
SQL> alter database datafile 'F:\oracle\product\10.2.0\oradata\orcl\PERFSTAT.dbf' resize 500m;
数据库已更改。
i3db数据库表空间:
SYMANTEC_I3_PW_80_IND_LARGE
SYMANTEC_I3_PW_80_IND_SMALL空间不足告警,为了缓解当前表空间的应用,以下操作。
一、压缩表和索引:
对所有非分区的表和该表上的索引进行了compress操作
首先查询出表空间中所有的表:
select owner,segment_name,segment_type,bytes/1024/1024 from dba_segments where tablespace_name='SYMANTEC_I3_PW_80_TAB_LARGE';
select owner,segment_name,segment_type,bytes/1024/1024 from dba_segments where tablespace_name='SYMANTEC_I3_PW_80_TAB_SMALL';
然后对segment_type的为table的对象进行压缩:
alter table VERITAS. PS_ORSM_SCHEMA_CHANGE_LOG move compress parallel 8 nologging;
查询出table上的索引:
select * from dba_indexes where table_name='PW_OSSS_SRV_STATISTICS_B';
再对索引进行压缩:
alter index VERITAS.IS_OSSS_NUM_CP04_B rebuild compress nologging;
alter index VERITAS.IS_OSSS_TOT_PH05_B rebuild compress nologging;
alter index VERITAS.IS_OSSS_TOT_VI06_B rebuild compress nologging;
alter index VERITAS.IS_OSSS_INSTANCE23_B rebuild compress nologging;
由于在压缩过程中报临时表空间不足,征求意见过后,将临时表空间TEMPTS1原先的2G扩展到3G。
alter tablespace TEMPTS1 add tempfile '/i3data/oradata/datafile/temp02.dbf' size 1024M autoextend off;
二、挪动索引到其它表空间
select owner,segment_name,segment_type,bytes/1024/1024 from dba_segments where tablespace_name='SYMANTEC_I3_PW_80_IND_SMALL'
order by BYTES desc
经过查询,确认对索引IW_TUAC_01_T做rebuild到其它表空间的操作,索引IW_TUAC_01_T大小为2G
而SYMANTEC_I3_PW_80_IND_MEDIUM相对充裕,即打算将原来属于表空间IND_SMALL的索引IW_TUAC_01_T挪到表空间IND_MEDIUM,
以缓解表空间IND_SMALL的使用压力。
SQL> ALTER INDEX VERITAS.IW_TUAC_01_T REBUILD SUBPARTITION P12052008_19052008_S1084 TABLESPACE SYMANTEC_I3_PW_80_IND_MEDIUM;
Index altered
SQL>select index_name,status,tablespace_name from dba_ind_subpartitions where index_name='IW_TUAC_01_T'
INDEX_NAME STATUS TABLESPACE_NAME
-------------------- ----------------------- -----------------------------------------------
IW_TUAC_01_T USABLE SYMANTEC_I3_PW_80_IND_MEDIUM
IW_TUAC_01_T USABLE SYMANTEC_I3_PW_80_IND_MEDIUM
IW_TUAC_01_T USABLE SYMANTEC_I3_PW_80_IND_MEDIUM