1.如何查看表空间使用情况?
SELECT created, log_mode, log_mode FROM v$database;
SELECT a.tablespace_name "表空间名",
total/(1024*1024) "表空间大小M",
free/(1024*1024) "表空间剩余大小M",
(total - free) "表空间使用大小",
total / (1024 * 1024 * 1024) "表空间大小(G)",
free / (1024 * 1024 * 1024) "表空间剩余大小(G)",
(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
round((total - free) / total, 4) * 100 "使用率 %"
FROM (SELECT tablespace_name, SUM(bytes) free
FROM dba_free_space
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total
FROM dba_data_files
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name;
2.如何查看表空间及其位置和大小?
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files order by tablespace_name;
3查询表空间常用字段:表空间名、文件位置、当前空间大小、最大值、扩容单次增量、是否自动扩容
select tablespace_name,file_name , round(bytes/(1024*1024),0)||'M' total_space,maxbytes/(1024*1024)||'M' maxsize,increment_by*(bytes/blocks)/1024/1024||'M' incrementsize,autoextensible
from dba_data_files
order by tablespace_name;
4查询表空间上有哪些用户和表空间?
select username,default_tablespace from dba_users group by default_tablespace,username
5.表空间如何扩容?
表空间扩容有两种方式:扩容数据文件和增加数据文件数量。
方法一:扩充原数据文件
alter database datafile '/app/oracle/app/oracle/oradata/wendb/system01.dbf' resize 1500m;
这样resize扩容后数据文件容量变为1500M。(由原来是1000M,resize改为1500M)。
resize也可以缩小数据文件容量,当resize值小于原数据文件大小时为减容。
方法二:增加数据文件
可以增加数据文件,如:增加200M数据文件xxxdb02.dbf。
alter tablespace spacenamedb add datafile '/app/oracle/app/oracle/oradata/wendb/xxxdb02.dbf' size 200m ;
增加后:
6如何把数据文件设置表空间自动扩展?
alter database datafile '/app/oracle/app/oracle/oradata/wendb/xxxdb02.dbf' autoextend on next 50m maxsize 1000m;
附:dba_data_files字段注解
铁锈笔记2022-01-07