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

来源:互联网 发布:驾校一点通软件 编辑:程序博客网 时间:2024/05/21 09:53

由于历史原因,初期建表时全部使用默认表空间“”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';

















0 0
原创粉丝点击