表空间的日常运维命令

这个专题主要是一些日常运维中需要用到的命令,不定期更新~~

1.查询表空间使用率

select a.tablespace_name,a.bytes/1024/ 1024 "Sum MB",(a.bytes-b.bytes)/1024 /1024 "used MB",b.bytes/ 1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100 ,2
) "percent_used"
from
(select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a,
(select tablespace_name, sum(bytes) bytes,max (bytes) largest from dba_free_space group by tablespace_name) b
where a.tablespace_name=b.tablespace_name ;

2. 创建表空间

一般建议数据文件设置橙不自动扩展,日常运维注意时刻关注表空间使用率

2.1 数据文件自动扩展

create tablespace JGXT LOGGING DATAFILE '/orahdb/oradata/hdb/jgxt01.dbf' SIZE 2048M AUTOEXTEND ON NEXT 1024M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;

2.2 数据文件非自动扩展

create tablespace WEBMINDX1 LOGGING DATAFILE '/oradata/wmsdata/index/WEBMINDX01.dbf' SIZE 2048M AUTOEXTEND OFF
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;

2.3 不指定具体路径(使用OMF)

CREATE SMALLFILE TABLESPACE "INDX" DATAFILE '+HDB_DATA' SIZE 20G LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

3. 删除表空间

DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

4. 新增数据文件

set linesize 1000
col file_name format a100
select file_name,bytes/1024/1024/1024 ,tablespace_name from dba_data_files order by file_id;

4.1 自定义文件路径

ALTER TABLESPACE EMAPTBS ADD DATAFILE '/u01/oradata/emap/emapdata07.dbf' SIZE 4096M AUTOEXTEND OFF;

4.2 使用Oracle-Managed Files

ALTER TABLESPACE "INDX" ADD DATAFILE '+HDB_DATA' SIZE 20G

5. 更改数据文件大小

ALTER DATABASE TEMPFILE '+HDB_DATA/hdb/tempfile/temp.263.911574485' RESIZE 30G

6. 更改数据文件增长方式

ALTER DATABASE DATAFILE '+HDB_DATA/hdb/datafile/undotbs1.262.911574483' AUTOEXTEND ON NEXT 100M

7. 临时表空间

select name,bytes/1024/1024/1024 from v$tempfile;

7.1 新增临时文件

alter tablespace temp2 add tempfile '/m11/oradata/BRAT/temp04.dbf' size 2048M

7.2 删除临时文件

alter database tempfile '/m13/oradata/BRAT/temp01.dbf' drop