您的位置:首页 > 其它

巧用Windows的任务计划备份SDE空间数据

2018-01-08 11:28 309 查看
数据备份是数据管理日常工作当中的一个重要内容,其根本目的在于数据的重新利用,当数据遭受破坏后能够尽快地恢复,尽可能地减少损失,包括时间上、精神上和金钱上的损失,因此做好数据备份对单位或者个人都具有极大的意义。本文结合自己的实际经验从以下三个方面来简要地谈谈SDE空间数据的备份:

一、SDE空间数据备份的三种方式及优缺点

SDE空间数据的备份一般有以下三种方式:

1、    利用数据库本身的备份机制:如Oracle数据库,我们可以利用imp和exp命令对Oracle+SDE空间数据库进行整体的备份、恢复或迁移。

2、    利用SDE中的sdeimport和sdeexport命令对空间数据进行备份与恢复。

3、    利用ArcCatalog对空间数据进行备份与恢复。

对于上述三种备份方式,我想大家都比较熟悉,在这里主要对每一种备份方式相应的优缺点加以说明。

1、利用数据库本身的备份机制,其优点在于备份快捷、大数据量情况下恢复时间短、操作也比较方便,但是它的缺点在于只能进行同版本数据之间的恢复与迁移,而且恢复过程中有时不能保证恢复完全成功。

2、利用SDE命令进行备份的优点体现在它能够实现不同版本之间的数据恢复,缺点是速度慢、编写批处理命令时比较繁琐。

3、利用ArcCatalog适合小量数据的备份与恢复。

二、如何巧用Windows的任务计划机制实现空间数据的自动备份

对于三种备份方式的具体实现与操作过程在此不再重述,各位朋友可以到网上搜索相关资料。本文主要内容是在第二种备份方式的基础上,谈如何巧用Windows的任务计划机制来实现空间数据的自动备份。

1、什么是计划任务?

从Windows 98开始,Windows就有了一项重要的“计划任务”功能。通过设置计划任务,你可以将每天或某一天的某个时间需要做的事情拟成计划。到约定的时间,不管你在电脑上进行什么工作,系统都会提醒你或者启动你设定好的任务程序。

2、实现计划任务的两种方式

我们在建立计划任务时,一般可以使用两种方法:控制面板中的任务计划和at命令。那这两种方法是不是完全相同呢,还是有什么区别?它们与task scheduler服务又是什么关系?详情请参考:AT命令与计划任务的区别

3、    如何使用计划任务实现空间数据的备份?

(1)       在文本文件中写好要备份或恢复的数据,保存为批处理命令。

(2)       利用控制面板中的任务计划添加计划任务。

(3)       或者利用at命令实现计划任务的建立。

4、 如何在程序中实现计划任务的建立?

(1)       备份数据批处理命令的生成:选择备份的空间数据,生成备份批处理命令,如sdeexport.bat。

(2)       备份策略的制定:设置备份频率、备份时刻、备份路径、备份批处理命令路径,生成计划任务创建批处理命令。

(3)       执行创建计划任务批处理命令,生成计划任务。

三、计划任务at的用法(来源于网络)

1、示例代码命令

@echo off

rem 首先打开机本的计划任务服务,服务名称为schedule

rem 利用sc config 改变服务的启动方式,auto为自动注意空格如下:

sc config schedule start= auto

rem 启动服务

net start schedule

rem 添加一个计划任务,时间和程序启动的路径自己改。

at 23:47 /interactive cmd /c start e:"weather.exe

at 23:47 /interactive cmd /c start e:"WBWallPaper.exe

rem 以下是让你查看添加了什么任务,如果加到开机P中的话,请去掉下面两行。

cls&echo 已经添加计划任务,ID如下: (按任意键退出)

at|find "今天"&pause>nul

注释:如果不加/interactive 程序将在后台执行。

2、at命令语法解释:

At计划在指定时间和日期在计算机上运行命令和程序。at 命令只能在“计划”服务运行时使用。如果在没有参数的情况下使用,则 at 列出已计划的命令。

语法

at [""ComputerName] [{[ID] [/delete]|/delete [/yes]}]

at [[""ComputerName] hours:minutes [/interactive] [{/every:date[,...]|/next:date[,...]}] command]

参数

""computername

指定远程计算机。如果省略该参数,则 at 计划本地计算机上的命令和程序。 

ID:指定指派给已计划命令的识别码。

/delete:取消已计划的命令。如果省略了 ID,则计算机中所有已计划的命令将被取消。

/yes:删除已计划的事件时,对来自系统的所有询问都回答“是”。 hours:minutes:指定命令运行的时间。该时间用 24 小时制(即从 00:00 [午夜] 到 23:59)的 小时: 分钟格式表示。

/interactive:对于在运行 command 时登录的用户,允许 command 与该用户的桌面进行交互。

/every:在每个星期或月的指定日期(例如,每个星期四,或每月的第三天)运行 command 命令。

date:指定运行命令的日期。可以指定一周的某日或多日(即,键入 M、T、W、Th、F、S、Su)或一个月中的某日或多日(即,键入从 1 到31 之间的数字)。用逗号分隔多个日期项。如果省略了 date,则 at 使用该月的当前日。

/next:在下一个指定日期(比如,下一个星期四)到来时运行 command。

Command:指定要运行的 Windows 命令、程序(.exe 或 .com 文件)或批处理程序(.bat 或 .cmd 文件)。当命令需要路径作为参数时,请使用绝对路径,也就是从驱动器号开始的整个路径。如果命令在远程计算机上,请指定服务器和共享名的通用命名协定 (UNC) 符号,而不是远程驱动器号。

/?:在命令提示符显示帮助。

注释:Schtasks 是功能更为强大的超集命令行计划工具,它含有 at 命令行工具中的所有功能。对于所有的命令行计划任务,都可以使用 schtasks 来替代 at。有关 schtasks 的详细信息,请参阅“相关主题”。

3、at命令的使用

使用 at 命令时,要求您必须是本地 Administrators 组的成员。

(1) 加载 Cmd.exe

在运行命令之前,At 不会自动加载 Cmd.exe (命令解释器)。如果没有运行可执行文件 (.exe),则在命令开头必须使用如下所示的方法专门加载 Cmd.exe:

cmd /c dir > c:"test.out。

(2) 查看已计划的命令

当不带命令行选项使用 at 时,计划任务会出现在类似于以下格式的表中:

Status ID Day Time Command Line

OK 1 Each F 4:30 PM net send group leads status due

OK 2 Each M 12:00 AM chkstor > check.file

OK 3 Each F 11:59 PM backup2.bat

包含标识号 (ID)

当在命令提示下使用带有标识号 (ID) 的 at 命令时,单个任务项的信息会显示在类似于下面的格式中:

Task ID: 1

Status:OK

Schedule:Each F

Time of Day:4:30 PM

Command:net send group leads status due

当计划带有 at 的命令(尤其是带有命令行选项的命令)后,要通过键入不带命令行选项的 at 来检查该命令语法是否输入正确。如果显示在“命令行”列中的信息不正确,请删除该命令,然后重新键入它。如果还不正确,则可以在重新键入该命令时让它少带些命令行选项。

(3) 查看结果

使用 at 的已经计划的命令作为后台程序运行。运行结果不会显示在计算机上。要将输出重定向到文件,请使用重定向符号 (>)。如果将输出重定向到文件,则不论是在命令行还是在批处理文件中使用 at,都需要在重定向符号之前使用转义符 (^)。例如,要重定向输出到 Output.text 文件,则要键入:

at 14:45 c:"test.bat ^>c:"output.txt

执行命令的当前目录为 systemroot 文件夹。

(4) 更改系统时间

在使用 at 命令计划了要运行的命令之后,如果更改了计算机的系统时间,则通过键入不带命令行选项的 at 可使 at 计划程序与修改后的系统时间同步。

(5) 存储命令

已计划的命令存储在注册表中。这样,如果重新启动“计划”服务,则不会丢失计划任务。

(6) 连接到网络驱动器

对于需要访问网络的计划作业,请不要使用已重新定向的驱动器。“计划”服务可能无法访问这些重定向的驱动器,或者,在该计划任务运行时如果有其他用户登录,则这些重定向的驱动器可能不会出现。因此,对于计划作业,请使用 UNC 路径。例如:

at 1:00pm my_backup ""server"share

请不要使用下述语法(其中 x: ?表示由用户建立的连接):

at 1:00pm my_backup x:

如果计划了一个使用驱动器号的 at 命令来连接共享目录,则应包含一个 at 命令以使在完成该驱动器的使用时断开与驱动器的连接。如果不能断开与驱动器的连接,则在命令提示下,所指派的驱动器号将不可用。

(7) 使用范例

要显示 Marketing 服务器上已计划的命令列表,请键入:

at ""marketing

要了解服务器 Corp 上标识号为 3 的命令的详细信息,请键入:

at ""corp 3

要计划在上午 8:00 于 Corp 服务器上运行网络共享命令,并将该列表重定向到 Maintenance 服务器的 Corp.txt 文件(位于 Reports 共享目录下)中,请键入:

at ""corp 08:00 cmd /c "net share reports=d:"marketing"reports >> ""maintenance"reports"corp.txt"

为了在每五天后的午夜将 Marketing 服务器的硬盘驱动器备份到磁带驱动器,首先创建名为 Archive.cmd 的批处理程序(它含有备份命令),然后计划该批处理程序的运行,为此请键入:

at ""marketing 00:00 /every:5,10,15,20,25,30 archive

要取消当前服务器上已计划的所有命令,请按下述方法清除 at 计划信息:

at /delete

如果要运行的命令不是可执行 (.exe) 文件,请按如下所示的方法在该命令之前使用 cmd /c 来加载 Cmd.exe:

cmd /c dir > c:"test.out。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: