首页 > 代码库 > 如何测试数据库表空间不足场景
如何测试数据库表空间不足场景
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;查看表空间的大小和利用率
蓝色部分都是字段别名
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 table_test(id,name,address) values
(num,‘qmfsuntest‘,‘aabbccddeeff‘);
commit;
num := num+1;
END LOOP;
END;