Chinaunix
标题:
Lotus Domino Server系统自动异地备份的实现
[打印本页]
作者:
hhhwin
时间:
2008-12-21 00:39
标题:
Lotus Domino Server系统自动异地备份的实现
Lotus Domino Server系统自动异地备份的实现
◆ 中国人民银行武汉分行 程东亮
◆ 中国人民银行黄石市中心支行 徐 辉
Lotus Domino Server系统被广泛应用在人民银行的电子邮件、公文传输及档案管理等方面,促进了员工之间的信息交流,提高了办公效率。但由于Lotus Domino Server系统本身未带备份工具,为保证系统的安全运行,不发生数据丢失现象,管理员必须经常进行手动
备份,其过程繁琐,耗时较长,备份时还需暂停系统服务,影响了系统的连续运行,因此,有必要实现系统的自动数据备份。
一、实现原理
经过反复进行系统备份与恢复测试,确定至少应备份的目录和文件为:
1.备份data目录下用于保存所有用户数据库邮箱、公共通讯录、管理进程、验证日志、公共邮箱等系统的启动参数文件。
2.备份c:\winnt\system32\drivers\etc目录下的hosts文件,主要用于保存远程邮件服务器名称与IP地址的映射。
3.备份服务器ID、验证字ID、管理员ID、用户ID等文件。
如果将hosts文件及ID文件都存放在data目录下,在做自动备份时只需备份data目录即可。
在深入分析系统备份原理的基础上,对Lotus系统的组成结构与运行原理进行分析,利用编程工具,使Windows操作系统环境下运行的Lotus Domino Server系统能在指定时间暂停系统服务,进行异地备份,自动将数据复制到异地目录下,再自动启动系统服务,系统管理员就能从繁琐的手动备份中彻底解脱出来。
二、实现步骤
Lotus Domino Server系统在使用时系统进程处于锁定状态,必须退出系统才能备份,我们分四个步骤完成Lotus Domino Server自动备份工作。一是暂停Lotus Domino Server服务,二是进行自动备份,三是重启Lotus Domino Server服务,四是定时执行任务。下面以实现邮件服务器自动备份为例进行说明,其他的备份类似。
(一)、编写暂停Lotus Domino Server服务的脚本文件
dim $domino
;判断Lotus Domino Server是否运行
;HBHSHE1N/servers/PBC: Lotus Domino Server为Lotus Domino Serve窗口名字
$domino=WinExists (“HBHSHE1N/servers/PBC: Lotus Domino Server”)
;存在则激活窗口为焦点,并发送quit命令
if($domino=1) then
WinActivate(“HBHSHE1N/servers/PBC: Lotus Domino Server”)
send(“quit{ENTER}”)
endif
(二)、备份数据到日期目录的批处理文本
rem 数据保存目录,在该目录下按日期建子目录
D:
cd \autobak
rem 取系统日期
@FOR /F “usebackq delims= ” %%i IN (`date /T`) DO set WORKDATE=%%i
rem 判断日期目录是否存在,不存在就建日期目录
if not exist %WORKDATE% md %WORKDATE%
rem 判断命令是否执行成功
if not errorlevel 0 echo 建立目录[%WORKDATE%]失败
rem 进入对应日期目录
cd %WORKDATE%
D: \autobak \ rar a -r -ag -m1 -ri1:5 D: \autobak \%WORKDATE%\ D:\Lotus\Domino\Data\
rem @echo为生成FTP传送脚本
@echo open 11.32.*.*>>ftpcmd
@echo user username password>>ftpcmd
@echo prompt>>ftpcmd
@echo mkdir %WORKDATE%>>ftpcmd
@echo cd %WORKDATE%>>ftpcmd
@echo bin>>ftpcmd
@echo mput *.rar >>ftpcmd
@echo bye>>ftpcmd
rem 上传数据到FTP服务器
@ftp -nnull
@del ftpcmd
rem 返回到起始目录
D:
(三)、编写重启Lotus Domino Server服务,并检测启动服务密码的脚本文件
dim $domino
;判断Lotus Domino Server是否运行,已运行则退出脚本
$domino=WinExists(“HBHSHE1N/servers/PBC: Lotus Domino Server”)
if($domino=1) then
Exit
Endif
;运行Lotus Domino Server
Run(“D:\Lotus\Domino\nserver.exe”)
;激活窗口为焦点,并发送密码
WinActivate(“HBHSHE1N/servers/PBC: Lotus Domino Server”)
Send(“********{ENTER}”)//输入密码
(四)、在前期脚本工具准备好后,使用AutoIt3工具(下载网址:
http://www.skycn.com/soft/2796.html
),将两个脚本文件编译成为可执行文件。然后使用EZ Scheduler定时工具(下载网址:
http://www.skycn.com/soft/4054.html
)或者Windows系统自带的计划任务工具,添加三个任务:定时暂停Lotus Domino Server服务任务、备份任务和重启Lotus Domino Server服务任务。图1所示是邮件服务器定时设置示例图。
图1 邮件服务器定时设置示例图
在解决了自动定时暂停和重启Lotus Domino Server服务的问题后,为便于数据恢复时的查找,将日期和时间因素放到文件名中,实现对Lotus Domino Server系统重要目录和文件的自动备份。备份时还能对数据进行压缩,减少磁盘占用空间,缩短数据传输时间,提高
备份的效率。这种异地备份的方式,使系统中保存了两套备份数据,大大提高了Lotus Domino Server系统数据的安全性。
(责任编辑:高碧波)
作者:
hhhwin
时间:
2008-12-21 00:42
标题:
回复 #1 hhhwin 的帖子
不是很明白,可不可以写一整个批处理,关闭---备份----启动 都一个批处理完成呢?在华南金融杂志看的,拿出来可大家分享,希望大家多多发表意见,domino自动备份不用其他软件如何实现?谢谢
作者:
hhhwin
时间:
2008-12-21 00:45
标题:
回复 #1 hhhwin 的帖子
domino自动启动如何实现,批处理,如何写入密码后确定进入呢?
作者:
hhhwin
时间:
2008-12-21 22:32
标题:
回复 #1 hhhwin 的帖子
使用AutoIt3工具 怎么生成不了EXE文件呢?请问大家究竟是怎么自动备份domino的?有没有备份的批处理文件共享一下呢?或者方法也可,谢谢!
hzy_win@163.com
作者:
bbs_currency
时间:
2008-12-30 10:33
学习下.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2