微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为在用项目的oracle数据库增加表空间

由于历史原因,初期建表时全部使用认表空间“”users“”,后来随着表结构越来越多及数据量越来越大,发现表空间占用率已达到94%多,可通过以下语句查询出来:

SELECT a.tablespace_name "表空间名",total "表空间大小",free "表空间剩余大小",(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 

查询结果如下图:




在未停用任何应用程序情况下(注:增加表空间之前,将数据库做了完全备份,也是有点担心未关闭应用的情况下增加表空间后,会把数据库搞崩溃!!不过经测试,没什么事!),打开服务端的sqlplus,见下图:


增加表空间后,也没有重启oracle服务,看了看各个应用,貌似也没什么事!~~


//增加表空间对应的数据文件
 alter tablespace USERS add datafile 'F:\ORADATA\MYORA\USERS02.DBF' size 3000m;

上面语句的3000M貌似是物理文件的最大值。

注意:一个表空间可对应多个物理文件,但一个物理文件只会属于一个表空间。


//删除表空间对应的数据文件
 alter tablespace USERS drop datafile 'F:\ORADATA\MYORA\USERS02.DBF';

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐