# 表空间的日常运维命令 这个专题主要是一些日常运维中需要用到的命令,不定期更新~~ ## 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 ```