免费注册 查看新帖 |

Chinaunix

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

关于delete掉的member或是record [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-06-28 12:01 |只看该作者 |倒序浏览
大家,谁知道我们delete掉的一个member或是record之后,没有做数据压缩之前,怎么察看或是恢复这部分资料?

论坛徽章:
0
2 [报告]
发表于 2005-06-28 16:12 |只看该作者

关于delete掉的member或是record

3种选择

1、使用备份
2、使用JRN,如果是CLRPFM的话,是不能用JRN来恢复的
3、使用第3方软件,例如WRKDBF

论坛徽章:
0
3 [报告]
发表于 2005-06-28 18:20 |只看该作者

关于delete掉的member或是record

http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2222032000000

论坛徽章:
0
4 [报告]
发表于 2005-06-28 22:31 |只看该作者

关于delete掉的member或是record

[quote]原帖由 "Eagle_wolf"]http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2222032000000[/quote 发表:

拷贝出来看舒服些。

如何重新找回物理文件中已经被删除的记录?

内容提要

1.序言
2.工作原理
3.内容
4.安装步骤
5.执行方法

正文 UNDEL -- 迅速重新找回物理文件中已经被删除的记录(RISC版本)
===========================================================

序言:
这是一个允许查看/拷贝/找回物理文件中已经被删除的记录的工具。你可以交互地显示活动的和被删除的
记录,扫描到被删除的记录,并将它们恢复回来。此外,你还可以通过这个工具将记录拷贝并打印出来,或者
输出到一个输出文件,或者是在不显示记录的情况下,直接恢复被删除的记录。
与其他恢复被删除的记录的工具不同,UNDEL并不会把物理文件拷贝到SAVF中,而是直接在物理文件的记录
上直接操作,这对于有着很多记录的物理文件来说,速度会快很多。
UNDEL可以运行在RISC系统上:V3R7及以上版本,同时系统安全级别(系统值QSECURITY)设为40或50。

工作原理:
当一个应用程序删除了物理文件里的一条记录(例如:通过RPG语言中的DELETE代码),OS/400并不会真正
从存储介质上将其除去,而仅仅是在记录中设置一个数位来标明记录已经被删除。一旦这个数位被设置,通过
通常的数据库操作,OS/400将永远不会访问到这些记录。但是,你可以通过提交一个"通过RRN写数据"的操作,
重新使用这些记录,例如:在RPG程序中一条带RECNO参数的WRITE命令。这时,OS/400将回置标明被删除的哪
个数位,并且将新的记录覆盖在原来已经删除的这条记录的位置上。
这就是UNDEL的工作原理,其实它并不是恢复已删除的记录,而是在它之上重新写一个新的记录。重点在
于:UNDEL首先找回被删除的数据,然后将数据写回新的记录。由于OS/400拒绝回收旧记录中的数据,UNDEL就
跳过数据库的操作,它找到文件中的记录在数据库中的位置,然后通过简单的数位移动命令将记录恢复。
请注意,UNDEL并不真正修改物理文件中的内容,更新记录信息的操作是通过应用程序提交一个合法的
WRITE操作来实现的。(事实上,提交WRITE操作的是一个COBOL程序。)

内容:
UNDELRIS.ZIP文件包含以下内容:
-- README
-- UNDEL.LIB AS/400上名为UNDEL的库,SAVF格式。
-- PF528.FDF 528位物理文件RFROMPC的描述文件。
-- TOSAVF.REX 将物理文件拷贝成SAVF文件的源代码

UNDEL.LIB包含以下内容:
-- UNDEL 命令
-- UNDELR 命令调用的CPP
-- UNDELM MI层的程序
-- UNDELCB 写记录的COBOL程序
-- UNDELC CL功能
-- UNDELMC CL功能的消息处理
-- UNDELD 显示文件
-- UNDELP 打印文件
-- UNDELMF 信息文件
-- UNDELA 数据区域
-- UNDELU UNDEL命令的帮助信息
-- UNDELDU UNDELD显示文件的帮助信息

安装步骤:
在AS/400上安装:
最简单的方法是通过FTP(如果你有到AS/400的FTP连接)。
A. 在AS/400上库mylib下创建一个SAVF -- mysavf;
B. 在PC端,打开FTP通讯;
C. 输入以下命令:
FTP>; bin
FTP>; cd mylib
FTP>; put undel.lib mysavf
FTP>; quit
(其中mysavf是步骤A中创建的SAVF。)
D. 直接跳到第D步;

如果你的系统上不能FTP,那么可以通过以下步骤:

A. 创建一个记录长度为528的物理文件:
CRTPF MYLIB/PF528 RCDLEN(52 SIZE(*NOMAX)

B. 将UNDEL.LIB放入长度为528的物理文件:
一种方法:
使用Client Access的程序RFROMPC将UNDEL.LIB拷贝到物理文件PF528中(指定PF528.FDF为描述文件);
另一种方法:
将UNDEL.LIB拷贝到一个共享文件夹,然后执行命令:
CPYFRMPCD FROMFLR(MYFLR) TOFILE(MYLIB/PF52
FROMDOC(UNDEL.LIB) TRNTBL(*NONE)

C. 将528位的物理文件拷贝成SAVF:
一种方法:
使用QUSRTOOL命令CPYTOSAVF:
CPYTOSAVF FROMDBF(MYLIB/PF52 TOSAVF(MYLIB/MYSAVF)

另一种方法:
将REXX程序TOSAVF装入文件QREXSRC:
STRREXPRC SRCMBR(TOSAVF) SRCFILE(MYLIB/QREXSRC)
PARM('pf528 mylib mysavf mylib')

D. 从SAVF中恢复UNDEL库:
RSTLIB SAVLIB(UNDEL) DEV(*SAVF) SAVF(MYLIB/MYSAVF)
如果你愿意,也可以将这些对象恢复到另一个库中:
RSTLIB SAVLIB(UNDEL) DEV(*SAVF) SAVF(MYLIB/MYSAVF) RSTLIB(NOTHERLIB)
UNDEL命令中唯一对库有要求的对象是参数PRDLIB,所以你可以将该参数改为自己的库:
CHGCMD CMD(MYLIB/UNDEL) PRDLIB(NOTHERLIB)

执行方法:
输入UNDEL命令就会交互地进入显示物理文件的画面,记录是用字符表格显示的,你可以用F19或F20扫描
删除的记录,或者输入你所知道的相对记录号(RRN)。使用F23恢复已经删除的记录,系统会提示你再按一次
F23键来确认你的选择。
你还可以使用OUTFILE参数将恢复的记录拷贝到另一个文件中,如果你指定的OUTFILE不存在,命令会自动
创建,如果OUTFILE已存在,那该文件的记录格式必须与原来的文件相同。
此外,在显示画面中,还包含UNDEL命令的帮助信息(F1键显示帮助信息)。

论坛徽章:
0
5 [报告]
发表于 2005-06-29 09:06 |只看该作者

关于delete掉的member或是record

UNDEL和WRKDBF对含有中文的数据无效

论坛徽章:
0
6 [报告]
发表于 2005-06-29 16:54 |只看该作者

关于delete掉的member或是record

原帖由 "qingzhou" 发表:
險NDEL命令就会交互地进入显示物理文件的画面,记录是用字符表格显示的,你可以用F19或F20扫描
删除的记录,或者输入你所知道的相对记录号(RRN)。使用F23恢复已经删除的记录,系统会提示你再按一次
F23键来确认你?.........


怎么还需要处理这么麻烦呢.谁有处理好的SAVE包??

论坛徽章:
0
7 [报告]
发表于 2005-06-29 17:56 |只看该作者

关于delete掉的member或是record

将UNDEL.LIB拷贝到一个共享文件夹 这句话不理解

那个rexx 程序有执行成功的吗
对版本有要求??
  1. essage ID . . . . . . :   CPF5175       Severity . . . . . . . :   40         
  2. essage type . . . . . :   Escape                                             
  3. ate sent  . . . . . . :   05/06/29      Time sent  . . . . . . :   19:27:02   
  4.                                                                               
  5. essage . . . . :   Incorrect record for output operation to save file.        
  6. ause . . . . . :   An incorrect record was output to save file GZSAVALL in   
  7. PUBBAKLIB. The condition code is 1. Condition codes and their meanings      
  8. follow:                                                                     
  9.    1 -- A record is out of sequence.  The data you are trying to write into   
  10. the save file may not be from a save file;                                   
  11.    2 -- The data in a record was modified since it was retrieved from a save  
  12. file or the record is part of a different save than the records that are     
  13. already in the file;                                                         
  14.    3 -- The data in a record is from a save on a newer version of the system,
  15. that is not compatible with this version.                                    
复制代码

论坛徽章:
0
8 [报告]
发表于 2005-06-30 15:11 |只看该作者

关于delete掉的member或是record

好象WRKDBF好用些。

论坛徽章:
0
9 [报告]
发表于 2005-06-30 16:40 |只看该作者

关于delete掉的member或是record

这个undel 涉及的太多了 rexx  cobol rpg  mi  真是个麻烦的东西
将UNDEL.LIB拷贝到一个共享文件夹 这句话沙意思?
挠头
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP