如何测试数据库表空间不足场景
1、select * from DBA_DATA_FILES;
这个命令主要是了解数据库实例中各个模块数据库表空间的大小,是否支持自动扩展(AUTOEXTENSIBLE),MAX扩展(MAXBYTES),以及各个表空间的路径(\oracle\oradata\i2kdb\omscm.dbf)
查看AUTOEXTENSIBLE字段是否支持自动扩展,如果对应表空间的该字段为YES,表示支持自动扩展
2、alter database datafile '\oracle\oradata\i2kdb\omscm.dbf' autoextend off;关闭表空间的自动扩展功能
(autoextend on表示开启自动扩展)
3、select a.tablespace_name, a.used_space*8/1024 used_space_M, a.tablespace_size*8/1024 tablespace_size_M, a.used_percent from sys.dba_tablespace_usage_metrics a order by a.used_percent;查看表空间的大小和利用率
蓝色部分都是字段别名
4、创建一个空白的表格来占用4900M的存储空间:注意(该脚本需要在该表空间的用户名下执行)
create table tbl_test (
id number not null primary key,
name varchar2(20) DEFAULT 'OS',
address varchar2(20)
) tablespace OMSFM
storage (
initial 4900M
next 1K
minextents 1
maxextents unlimited)
说明:执行该脚本,需要找OMSFM的表空间用户名的权限下创建,OMSFM为表空间名称
4900M,需要填充的空间大小,只要比表空间小就可以
也可以将4900M拆分成4000M+900M,即创建两个表,只是分两次创建
5、在空白表插入数据:插入4行数据
脚本如下:
declare
num number(30) :=1;
begin
while num<5
loop
insert into omsfm.tbl_test(id,name,address) values(num,'qmfsuntest','aabbccddeeff');
commit;
num := num+1;
end loop;
end;
/
作者:Agoly 出处:https://www.cnblogs.com/qmfsun/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |