首页 > 其他分享 >DM8表空间缩小测试

DM8表空间缩小测试

时间:2022-11-17 17:36:12浏览次数:49  
标签:测试 回滚表 空间 缩小 DM8 main roll 大小

1 问题提出

在最新版本的DM8中,可以缩小表空间的大小,针对功能提出如下疑问:
(1)回滚表空间在占满之后能否缩小?
(2)回滚表空间在缩小之后能否回滚到上一次提交的节点?
(3)回滚表空间在缩小之后再提交是否会出现数据丢失?
(4)main表空间能否缩小到任意值?

2 测试结论

针对以上问题测试得出如下回答:
(1)回滚表空间在占满之后可以缩小。回滚表空间到达一定的阈值后会提示“回滚表空间不足”,表空间不会被完全占满,可以将表空间缩小到占用的空间大小。例如:回滚表空间设置大小为64M,插入到56M的时候就会提示被占满了,此时缩小表空间无论缩小到何值都会自动跳转到56M。
(2)回滚表空间在缩小之后可以回滚到上一次提交的节点。无论roll.dbf的大小怎么变化,回滚之后都会将回滚表空间里的内容丢弃,退回到默认表空间的末尾节点。
(3)回滚表空间在缩小之后再提交不会出现数据丢失。因为缩小表空间并不是真正意义上的缩小,只是缩小了回滚表空间的空闲部分,所以不会出现数据丢失,可以正常的将表空间里的内容提交。
(4)main表空间不能缩小到任意值。最小只能缩小到实际的数据量的大小,main表空间的大小总是大于或等于实际的使用量。
总结:
1.roll表空间可以设置最大值,在roll表空间中的数据量达到87%左右时,会提示回滚表空间不足。
2.roll表空间中的数据量达到最大值时,依旧可以缩小roll.dbf的大小,但是缩小之后的结果不会小于里面数据量的大小。测试64M大小的roll.dbf,数据量插入到56M左右提示回滚表空间不足,此时将roll表空间缩小到32M,实际只缩小到了56M,且无任何提示。
3.roll表空间满载并缩小之后回滚正常、提交正常。
4.main表空间同样可以缩小,但是只能缩小空闲部分的空间,缩小之后的空间不能小于实际的使用空间。

3 测试环境

缩小表空间是在7月月度版v 8.1.2.138中新增的功能,测试环境如下:

数据库版本 V 8.1.2.138
安装目录 /dm8
操作系统 CentOS 7.7

4 roll表空间测试

4.1 测试准备

1.关闭数据库的隐式自动提交,避免数据库执行之后自动进行提交。

select PARA_NAME,PARA_VALUE,PARA_TYPE,DESCRIPTION from v$dm_ini where para_name='DDL_AUTO_COMMIT';
--查询隐式自动提交是否开启

在dm.ini中修改DDL_AUTO_COMMIT的值为0并重启数据库即可正常关闭。
2.新建测试表test并插入数据。

create table  SYSDBA.test as select * from SYS.SYSOBJECTS;

表中的数据如下图所示:

可以看到表中共有875行数据。
3.设置roll.dbf的大小,设置为64M,并关闭自动扩充。如下图所示:

4.2 测试步骤

1.循环插入大量数据测试插入多少条数据可以插满。插入1170×875条数据会超出表空间大小。

BEGIN
for i in 1..1170 loop
insert into SYSDBA.test select * from SYS.SYSOBJECTS;
end loop;
end;
--插入1170×875条数据。

提示回滚表空间不足,插入失败:

测试插入1160×875条数据,插入成功,说明1160×875条数据所占的空间已经接近roll.dbf的大小。此时回滚表空间已经处于满载的状态。

2.查看roll.dbf的空间使用情况。

select * from v$tablespace;

可以看到回滚表空间满载的状态下还有8192-7120的空闲空间。可能是某种保护机制会保留一部分空闲空间。此时的roll表空间使用率为7120/8192=87%,说明roll表空间的使用率超过87%左右时,就会提示回滚表空间不足。

同时可以在达梦管理工具中查看空间使用率为83%,两者存在一定的差值,以实际计算的87%为主。

3.在线修改roll表空间的大小,将64M修改为32M。

点击确定之后没有出现任何提示,很容易让人误以为修改成功。
再次查看roll表空间的大小。发现并不是32M的大小,而是56M。说明并没有修改成功,数据库后台自动将其改为了56M。

缩小之后的表空间的使用率达到了99.5%(7120/7152)。

在达梦管理工具中显示达到了94.6%。

说明在roll表空间满载之后只能缩小到数据量的大小,不能小于数据量的大小。
4.测试能否回滚到上一次提交的节点。点击回滚按钮之后,发现原本的test表中的内容没有变化,且数量也没有变化。说明回滚成功。

5.测试提交之后是否会出现数据丢失。点击提交按钮之后查看test表空间的数据。

数据量变为了1015875行,比之前多了1015000行,1015000=1160×875,说明回滚表空间里的内容全部提交,没有出现数据丢失。

5 main表空间测试

在main表空间接近满载的时候缩小其空间,是否可以缩小到任意值。根据roll表空间的测试结果,推测只能缩小到main表空间的数据量大小,实际测试结果也是如此。
main总空间16256,使用的空间14608。

将main表空间缩小到一个小于14608的值,实际只能缩小到14608,此时main表空间使用率达到100%。

标签:测试,回滚表,空间,缩小,DM8,main,roll,大小
From: https://www.cnblogs.com/tazimi/p/16900165.html

相关文章

  • app性能测试
    1app性能测试提到APP的性能测试这个概念比较笼统,因为APP的性能测试分为服务端的性能和手机端的性能测试1.1app服务端性能测试app服务端的性能测试,利用jmeter等工具模......
  • 黑盒白盒测试
    黑盒测试的方法有7个,分别是:基于需求的设计方法, 等价类划分,边界值,因果图,正交矩阵法,场景设计法,错误推测法黑盒测试方法,详见https://blog.csdn.net/asdx10......
  • 干货收藏|你想要的最新软件测试面试题及答案,这个里面都有
    很多软件测试工程师在面试互联网企业时,面试官都会就该岗位的技术,进行提问,但由于很多人都没有啥面试经验,很容易就会被pass掉,因此,我为大家整理了一份互联网企业软件测试面试官......
  • jmeter接口测试
    1.在测试计划右键添加线程组  2.右键线程组添加http请求 3.添加请求,get请求的参数放在参数下,post请求的参数放在消息体数据内get请求: post请求: 4.查看请......
  • 接口测试结果字段太多?断言烦不胜烦?DeepDiff帮你一键搞定
    每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试背景最近......
  • 从零到一落地接口自动化测试
    前段时间写了一系列自动化测试相关的文章,当然更多的是方法和解决问题的思路角度去阐述我的一些观点。昨天花了几个小时看完了陈磊老师的《接口测试入门课》,有一些新的收......
  • 移动应用的手动测试策略
    质量分析师的工作绝非易事。开发人员通常不喜欢他们,没有人喜欢代码中错误被拿出来公开。但是QA的工作在软件开发生命周期中非常有趣且非常重要。尤其是在当前的数字化转型......
  • MAUI / MAUI Blazor 环境路径测试笔记
    测试代码Tools服务类多平台实现MAUIpublicstringCacheDirectory()=>FileSystem.CacheDirectory;publicstringAppDataDirectory()=>FileSystem.AppDataDirecto......
  • C语言《数据结构与数据库/操作系统》实验测试数据集
    C语言《数据结构与数据库/操作系统》实验测试数据集实验二、栈的应用注意需要根据实验内容文件实现相应的数据结构——栈,以及菜单(程序要能循环使用,不要计算一次就必须重......
  • 银河麒麟服务器操作系统安装达梦数据库DM8
    DM8达梦数据库安装(银河麒麟服务器V10)一、准备工作:1、银河麒麟服务器操作系统iso(官方网站申请试用,普通下载地址太慢,建议使用Bt软件下载,不要用迅雷,可能存在数据下载不一致)......