# 表空间的日常运维命令


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


##  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

```