免费注册 查看新帖 |

Chinaunix

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

[原创]CL编程实现自动定时备份的可行性报告 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-07 09:34 |只看该作者 |倒序浏览
注:为了将经验共享给大家现将我的实验成果发布一下,希望对大家有所帮助。同时感谢XUGUOPENG大哥、轻舟大哥等众位前辈的帮助与无私的奉献精神。

CL编程实现自动定时备份的可行性报告

对系统中的库文件定期备份可以保证其运行的稳定性与安全性,关于此备份可以用手动人工备份,当然也可以实现自动备份。

要求:对指定库(EPODCMS)实现自动定时(01:00:00)自动备份成*SAVF,每次备份的名字按序排列(CMS+备份日期)

分析:定时备份可以通过Job Schedule实现,备份的实现需要用到命令CRTSAVF和SAVLIB两个命令,名字按序排列需要使用RTVJOBA

实现:因为此操作需要使用CL编程所以需要系统中装用WDS组件。假定需要备份的库以及存储备份的库已经存在,此例中备份库为EPODCMS,存储库为EPODBAK,用户库为JANCE,若所需库不存在可用CRTLIB进行创建。(建议程序的编写及调试均在用户库中进行。)

1.创建源物理文件(Create Source Physical File ),在命令行上输入CRTSRCPF并按F4,参数FILE处填写自己希望使用的名字,库为用户库,其他默认即可。

2.启动Source Entry Utility,在命令行上输入STRSEU并按下F4,在参数Source file及Library中填写刚创建的源物理文件的名称及所在库,在参数Source member处填写成员名称,在Source type处填写类型为CLP。其他参数默认即可。

回车确认后进入Edit界面编写程序。

PGM
        DCL        VAR(&DATE) TYPE(*CHAR) LEN(6)
        DCL        VAR(&SAVFNAME) TYPE(*CHAR) LEN(10)
        RTVJOBD DATE(&DATE)
        CHGVAR        VAR(&SAVFNAME) VALUE('CMS'||&DATE)
        CRTSAVF FILE(EPODBAK/&SAVFNAME)
        SAVLIB        LIB(EPODCMS) DEV(*SAVF) SAVF(EPODBAK/&SAVFNAME)
END:ENDPGM

代码分析:0002.00定义变量&date用于存储返回的系统日期值
                  0003.00定义变量&savfname用于存储文件名
                  0004.00返回作业属性值,此处返回的值为DATE并将其存放在变量&date中
                  0005.00更改变量&savfname为cms+&date形式
                  0006.00创建SAVF文件并以当前cms+&date为文件名存放在库EPODBAK中
                  0007.00将库EPODCMS保存为*SAVF存放在刚创建的SAVF中
注意:此处变量类型应为*CHAR而不能为字符型;由于SAVF文件不能以数字开头命名,所以需要改变变量&savfname在其之前加入字符。

程序编写好之后按F3,退出到Exit界面,在Change/create member参数项后选Y,其他参数默认,回车。

3.创建CL程序,在命令行上输入CRTCLPGM命令并按F4,在各参数中填写相应的信息,回车确认。

4.设置自动执行,在命令行上使用call命令调用生成的PGM程序,在确保其能成功运行并成功实现要求后将其加入到Job Schedule。

在命令行上输入ADDJOBSCDE并按F4,在Command to run 处填写需要执行的命令CALL PGM(jance/epodpgm),并设置频率以及执行操作的日期时间,完成后回车确认。

至此已可以达到自动定时备份库文件的要求。

本程序及方法已V5R2M0上成功通过实验。

[ 本帖最后由 jance 于 2006-7-7 09:37 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-07-07 10:23 |只看该作者
恭喜你终于成功了,从问题提出到现在想必花了不少心思,感谢分享

论坛徽章:
0
3 [报告]
发表于 2006-07-07 10:59 |只看该作者
在CRTSAVF的时候最好能有个错误保护,一旦这个SAVF已经存在,程序就会异常终止

论坛徽章:
0
4 [报告]
发表于 2006-07-07 11:12 |只看该作者
CRTSAVF FILE(EPODBAK/&SAVFNAME)
这一行也最好有一个检查,即如果发现有重名的那么就清掉。

还有

小妹有个建议:如果备份成功了发个邮箱出来,这样更好一些。不用看AS400就知道备份的情况了

论坛徽章:
0
5 [报告]
发表于 2006-07-07 11:23 |只看该作者
原帖由 xuguopeng 于 2006-7-7 10:59 发表
在CRTSAVF的时候最好能有个错误保护,一旦这个SAVF已经存在,程序就会异常终止


在参考你给我的那段代码的时候我也想到了MONMSG,可是我不知道怎么样才能获得MSGID,所以就没做监视。
有什么方法可以获得一个MSGID么?

论坛徽章:
0
6 [报告]
发表于 2006-07-07 13:53 |只看该作者
有什么方法可以获得一个MSGID么---出了凑看具体的MSGID,~~~~~~~~~~~~

论坛徽章:
0
7 [报告]
发表于 2006-07-07 14:17 |只看该作者
看CMD的F1帮助就可以得到MSGID

论坛徽章:
0
8 [报告]
发表于 2006-07-07 14:54 |只看该作者
Error messages for CRTSAVF                        
                                                   
     *ESCAPE Messages                              
     CPF7302     File &1 not created in library &2.

论坛徽章:
0
9 [报告]
发表于 2006-07-10 12:11 |只看该作者
恩,恭喜出师了,,,呵呵。。。

加精鼓励。

论坛徽章:
0
10 [报告]
发表于 2006-07-10 14:43 |只看该作者
呵呵,还是各位大哥教导的好!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP