领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

Oracle表空间常用sql及表空间扩容

nixiaole 2025-02-17 13:27:28 知识剖析 18 ℃

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

最近发表
标签列表