免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5206 | 回复: 11
打印 上一主题 下一主题

as400上如何实现不停止对外服务进行数据清理,释放表空间 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-05 21:53 |只看该作者 |倒序浏览
由于生产机上的一些表空间巨大,可能有5亿多条记录。现在要求将其前2亿条记录清空,释放其硬盘空间,并且不能停止对外服务,如何实现。
并且要求编写一个定时任务,每天定时清理数据到备份库下,以防止生产库下的表空间过大,使其保持不变。
各个大哥帮帮忙,想个方案给小弟,感谢不尽。
最好有源代码的例子,我好仿照实现。呵呵

论坛徽章:
0
2 [报告]
发表于 2010-05-06 11:09 |只看该作者
本帖最后由 digitalchina 于 2010-05-07 02:27 编辑

我想到两种方法:
1 从系统角度考虑, 如果有HA或者热备系统, 把作业切换到热备系统,然后切回来.
  或者把PF COPY一下,用COPY的那份做删减, 再OVRDBF切换( 这个过程可能需要停应用)

2 给PF多建几个MEMBER , 每次把要删的数据移到另一个MEMBER , 然后CLRPFM清空指定的MEMBER.
应用要做修订,访问时须指定MEMBER, 这样也可提高效率.


以上所有操作都具有高度的风险,请谨慎!!!

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-08-03 06:20:00
3 [报告]
发表于 2010-05-06 13:37 |只看该作者
本帖最后由 tomroom 于 2010-05-06 14:02 编辑

默认PF参数DELETE 记录不会自动释放已经删除的记录所占空间,要运行RGZPFM释放空间,

运行RGZPFM 个人建议如下:
1) 先DSPPF 查看这个表有多少可以删除的空间 比如 Total deleted records  占多少
Total number of members  . . . . . . . . . :      
Total number of members not available  . . :      
Total records  . . . . . . . . . . . . . . :      
Total deleted records  . . . . . . . . . . :      
Total of member sizes  . . . . . . . . . . :      
后面操作建议先在测试环境测试下
2) 如果deleted records 超过IBM 建议的15%,可以考虑执行RGZPFM ,具体要看你操作系统版本V5R3 之后版本有可以在线运行RGZPFM压缩数据表,所谓在线运行还是会有锁不过是*SHRUPD类型锁,你要根据自己业务情况判断,在线运行RGZPFM压缩数据表会产生大量日志数据,如果你系统有HA软件比如MINIX 会对数据同步产生影响,
参考如下图llow cancel . . . . . . . . . . > *YES; Lock state . . . . . . . . . . . > *SHRUPD  ;Rebuild access paths . . . . . .   *YES    之前轻舟有过帖子
若是老版本操作系统没有以上在线运行选项,默认参数 RGZPMF 只能在所有用户都不访问该表,才能操作。


                      Reorganize Physical File Mbr (RGZPFM)            Level: 3
                                                                                
Type choices, press Enter.                                                     
                                                                                
Label  . . . . . . . . . . . . .                                               
Data base file . . . . . . . . . > &MBFILE       Name                          
   Library  . . . . . . . . . . . >   &MBLIB      Name, *LIBL, *CURLIB         
Member . . . . . . . . . . . . . > &MBNAME       Name, *FIRST, *LAST           
Key file:                                                                     
   Logical file . . . . . . . . . > *NONE         Name, *NONE, *FILE, *RPLDLTRCD
     Library  . . . . . . . . . .                 Name, *LIBL, *CURLIB         
   Member . . . . . . . . . . . .                 Name                          
Rebuild access paths . . . . . .   *YES          *YES, *OPTIMIZE, *NO         
Allow cancel . . . . . . . . . . > *YES          *NO, *YES                     
Lock state . . . . . . . . . . . > *SHRUPD       *EXCL, *EXCLRD, *SHRUPD      
                                                                                
3) 若这个表么有批量INSERT 数据操作 可以考虑CHGPF  修改Reuse deleted records  为*YES  以后让系统自动重用DELETE记录的空间,这个操作会降低批量INSERT 数据操作性能。

论坛徽章:
0
4 [报告]
发表于 2010-05-10 16:03 |只看该作者
回复 3# tomroom


    谢谢你的答复,和ibm工程师的答案近似,但是他们也不敢随意做实施,有很大的风险

论坛徽章:
0
5 [报告]
发表于 2010-05-10 16:05 |只看该作者
回复 2# digitalchina


    谢谢,这个和应用的关系很大,要冒风险的的,而且我怕影响到后面的季度结息程序的效率,你的方法我会好好考虑的,辛苦大侠了,

论坛徽章:
0
6 [报告]
发表于 2010-05-10 16:06 |只看该作者
修改Reuse deleted records  为*YES  以后让系统自动重用。
这个会影响批量数据的写入操作的效率吧,我害怕季度结息时候,批量程序的效率会下降,boss会灭了我的

论坛徽章:
0
7 [报告]
发表于 2010-05-10 22:43 |只看该作者
你要和BOSS说, 再不买硬盘,我们都要被灭了.

论坛徽章:
0
8 [报告]
发表于 2010-05-10 23:30 |只看该作者
结息不是用备份的表啊?

论坛徽章:
0
9 [报告]
发表于 2010-05-11 08:41 |只看该作者
回复 8# insmile


    不是,就是用生产表做的,所以效率很重要

论坛徽章:
0
10 [报告]
发表于 2010-05-13 11:35 |只看该作者
如果是通用平台的db2,好像使用插入null空,还不需要回收硬盘空间。这东西有风险,得自己先考虑好。不然数据丢了,怎么办
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP