首页 > 代码库 > oracle 表空间tablespace_name 文件满了,扩充方法
oracle 表空间tablespace_name 文件满了,扩充方法
当然:还是建议在简历表空间时就让其自动扩充的,代码如下:(注意倒数三行)
create tablespace prmms_log logging datafile ‘C:\app\Administrator\product\11.2.0\dbhome_1\database\prmms_log.dbf‘ size 50m autoextend on next 50m maxsize 20480m extent management local;
好吧,假如你和博主一样给忘了,就跟着博主的步骤来吧:
1、用dba的用户登陆进去
2、查询一下该库表空间情况
SELECT a.tablespace_name "表空间名", a.bytes / 1024 / 1024 "表空间大小(M)", (a.bytes - b.bytes) / 1024 / 1024 "已使用空间(M)", b.bytes / 1024 / 1024 "空闲空间(M)", round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "使用比" FROM (SELECT tablespace_name, sum(bytes) bytes FROM dba_data_files GROUP BY tablespace_name) a, (SELECT tablespace_name, sum(bytes) bytes, max(bytes) largest FROM dba_free_space GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name ORDER BY ((a.bytes - b.bytes) / a.bytes) DESC
3、我们会看到表空间prmms_log使用率90%多了,查看一下这个表空间有多少个文件
SELECT file_name, tablespace_name, bytes / 1024 / 1024 "bytes MB", maxbytes / 1024 / 1024 "maxbytes MB" FROM dba_data_files WHERE tablespace_name = ‘prmms_log‘;
4、博主的表空间只有一个文件,既然我们的项目都报错了,肯定就是没有允许自动扩展了,但是是查一下为好:
SELECT file_id, file_name, tablespace_name, autoextensible, increment_by FROM dba_data_files WHERE tablespace_name = ‘prmms_log‘ ORDER BY file_id desc;
5、伤心了,当时的确是没有让自动扩展。那怎么办呢?我们要么加文件,要么增加文件大小...博主想了想,还是不加文件了,直接让表空间自动增长吧:
alter database datafile ‘C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\PRMMS_GIS2‘ autoextend on;
路径是第三步查出来的。
ok,再次插入数据成功了!
把另外两种方法也贴上来吧:
(1):直接增加文件大小
alter database datafile ‘C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\PRMMS_GIS2‘ resize 1500M;
(2):增加一个文件
alter tablespace prmms_log add datafile ‘C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\PRMMS_GIS2_add‘ size 5000M autoextend on maxsize 20G;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。