首页 > 代码库 > 如何测试数据库表空间不足场景

如何测试数据库表空间不足场景

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;