`

解决表空间不足问题

阅读更多

解决表空间不足问题 

 

 

 

如果有数据库有多个实例的情况下,要确认该这个是否我们要操作的实例

show parameter instance_name;
set ORACLE_SID=xxx; --注意大小写,要不然有时候出现莫名其妙的问题

 

 

window下:

sqlplus /nolog
conn as sysdba ;--成功后

 

LINUX下:

首先,要切换创建Oracle数据库的用户或该授权用户下,

如:

su - oracle #一定要注意 '-'
sqlplus /nolog
conn as sysdba ;--成功后

 

 

以上操作基本区别, 进去命令行后,以下操作基本一致,

 

Oracle数据库的表空间表相关的数据文件、表空间使用情况和表空间表分别是:

  dba_data_files   dba_free_space  dba_tablespaces

 

不重复造轮子,从其他地方copy 

  

select a.tablespace_name "表空间名称",
       100 - round((nvl(b.bytes_free, 0) / a.bytes_alloc) * 100, 2) "占用率(%)",
       round(a.bytes_alloc / 1024 / 1024, 2) "容量(M)",
       round(nvl(b.bytes_free, 0) / 1024 / 1024, 2) "空闲(M)",
       round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024 / 1024, 2) "使用(M)",
       to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') "采样时间"
  from (select f.tablespace_name,
               sum(f.bytes) bytes_alloc,
               sum(decode(f.autoextensible, 'YES', f.maxbytes, 'NO', f.bytes)) maxbytes
          from dba_data_files f
         group by tablespace_name) a,
       (select f.tablespace_name, sum(f.bytes) bytes_free
          from dba_free_space f
         group by tablespace_name) b
 where a.tablespace_name = b.tablespace_name
 order by 2 desc;

 

 

 

 2、扩大表空间文件(初始化为1G,并每次以512M的空间增长到10G)

 ALTER TABLESPACE  201408_END ADD DATAFILE
 'E:\ORADATA\extraAdd\xxxx.DBF' SIZE 1G
 AUTOEXTEND ON NEXT 512M MAXSIZE 10G;

 

--如LINUX系统中,可以这样

ALTER TABLESPACE  201408_END ADD DATAFILE
 '/app/ORADATA/extraAdd/xxxx' SIZE 1G
 AUTOEXTEND ON NEXT 512M MAXSIZE 10G;
--注意一下 Oracle 用大写

 

 

 

顺便说一下,创建表空间,完了。

 

create TABLESPACE   201408_END  DATAFILE
 'E:\ORADATA\extraAdd\Dxxx' SIZE 1g
 AUTOEXTEND ON NEXT 512M MAXSIZE 10g;
--注意大小写,要不然有时候出现莫名其妙的问题

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics