如何让SQL Server数据库自动备份并压缩Word格式.docx
- 文档编号:17752565
- 上传时间:2022-12-09
- 格式:DOCX
- 页数:9
- 大小:139.97KB
如何让SQL Server数据库自动备份并压缩Word格式.docx
《如何让SQL Server数据库自动备份并压缩Word格式.docx》由会员分享,可在线阅读,更多相关《如何让SQL Server数据库自动备份并压缩Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
--完全备份日期
+'
_0100'
--完全备份时间
完全备份'
SET@strSqlCmd=@strSql+'
.BAK'
--备份文件的扩展名
BACKUPDATABASE[MyDb]
TO
DISK=@strSqlCmdWITHINIT
NOUNLOAD
NAME=N'
MyDb备份'
NOSKIP
STATS=10
NOFORMAT
操作如图一:
然后开始执行对数据库的压缩,在步骤中再新建一个作业,步骤名为“压缩数据库”,然后在命令框中输入如下的SQL代码:
@strWeekDay
VARCHAR(20)
SET@timeDateDiff=DATEDIFF(week,0,GETDATE())
SET@timeDateDiff=CASEDATEPART(WEEKDAY,GETDATE())
WHEN1THEN@timeDateDiff-1
+CONVERT(CHAR(8),DATEADD(week,@timeDateDiff,0),112)
SET@strWeekDay=CASEDATEPART(WEEKDAY,GETDATE())WHEN1THEN'
星期天'
WHEN2THEN'
星期一'
WHEN3THEN'
星期二'
WHEN4THEN'
星期三'
WHEN5THEN'
星期四'
WHEN6THEN'
星期五'
WHEN7THEN'
星期六'
END
SET@strSqlCmd='
ECHO压缩开始日期:
'
+CONVERT(VARCHAR(20),GETDATE(),120)+'
+@strWeekDay+'
>
>
D:
\DataBase\BackData\CompressDataBase\MyDb_'
+CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+'
.txt'
EXECmaster.dbo.XP_CMDSHELL@strSqlCmd,NO_OUTPUT
RAR.EXEA-R'
+@strSql+'
.RAR'
.BAK>
\DataBase\BackData\CompressDataBase\MyDb__'
PRINTLEN(@strSqlCmd)
PRINT(@strSqlCmd)
ECHO压缩日期:
操作如图二:
完成后我们可以看到操作步骤的对话框,如图三:
图三数据完全备份的步骤
我们对照上图,注意两点,第一个是步骤1“成功时”这一列的显示,当成功的时候转到下一步,“失败时”当失败的时候失败后退出,步骤2“成功时”当成功的时候成功后退出,“失败时”当失败时失败后退出。
确保两个步骤对数据操作的正常。
再执行“调度”一栏,主要实现在什么时候执行这些作业,我们定在每周日一点的时候开始执行,如图四:
这样就可以建立好对数据库的整个完全备份了。
有时我们数据在遭到破坏的时候,而在恢复到上次的整个备份时,就会产生很多丢失的数据了,这时我们就必须还得建立另外一种备份的机制—差异备份。
步骤还和上面一样,我们建立一个作业,命名为“MyDb差异备份”,在步骤里面同样是建立两个步骤,分别是差异备份和差异压缩,步骤一在命令框中输入内容如下:
差异备份'
_'
+CONVERT(CHAR(8),GETDATE(),112)
--差异备份日期
_0300'
--差异备份时间
BACKUPDATABASE[webEIMS2008]
DISK=@cSqlCmdWITHINIT
DIFFERENTIAL
MyDb差异备份'
我们可以看到,差异备份除了文件名命名格式不一样外,就在备份执行SQL语句时增加了了下DIFFERENTIAL参数,然后再执行。
步骤二在命令框中执行如下:
--差异备份时间
ECHO压缩结束日期:
这时我们已经建立好了步骤,只是现在建立作业调度的时候有些变化,我们看图五:
图五建立差异备份作业调度
对比完全备份建立的作业调度,在这里我们可以看到,我们选择的时间是除了周日以外的每天夜里3点的时候,自动执行此次调度。
当然时间是自己灵活分配的,如数据发生的变化比较大,我们可以选择每天,然后频率选择发生周期性短一点,这样我们数据在遭到破坏的时候,我们就可以及时的恢复了。
如果在SQLServer2000中,我们可以建立如上的作业就可以对数据进行备份了,而对于SQLServer2005,还有一点细微的变化,因为它默认是不支持xp_cmdshell执行命令的,SQLServer已封锁元件'
xp_cmdshell'
的程序'
sys.xp_cmdshell'
之存取,因为此元件已经由此伺服器的安全性组态关闭。
系统管理员可以使用sp_configure来启用'
的使用。
所以我们得恢复其执行命令:
用下面一句话就可以了解决了。
EXEC
sp_configure
'
show
advanced
options'
1;
RECONFIGURE;
利用WINRAR实现SQLSERVER自动压缩的方法
下面为您介绍的方法可以实现SQLSERVER自动压缩,有了SQLSERVER自动压缩,就不必每天再浪费时间进行手动的压缩了。
当SQL数据库大于2G时XP_MAKECAB扩展存储过程压缩失败,结合WINDOWS操作系统的任务计划,建立命令行下的批处理文件(.BAT),实现每天SQLSERVER自动压缩,如下:
1、SQLSERVER自动备份
2、COPYWINRAR目录到以下批处理文件所在的目录
3、用文本编辑器建立批处理文件(.BAT),如下内容
@echooff
echo.
colora
cls
echo
欢迎来到数据库备份压缩批处理
echo.
....正在自动压缩备份数据....
echo------------------------------------------------------------------------------
ifnotexistzsimcmis_db_%date:
~0,4%%date:
~5,2%%date:
~8,2%1830.bakgotoexistfile
--检查是否存在未被压缩数据库备份文件
gotobackup
:
backup
echo已经找到备份好的备份文件zsimcmis_db_%date:
~8,2%1830.bak
echo.
echo!
!
提示:
正在压缩备份文件....!
正在将备份文件zsimcmis_db_%date:
~8,2%1830.bak压缩到G:
\Cabfiles\zsimcmis_db_%date:
~8,2%2000.RAR文件中.......
--只是显示屏幕而已,中间的文件名没实际用处
WinRAR\winrara-as-ibckG:
\Cabfiles\zsimcmis_db_.rar-m3-agyyyymmddhhmmsszsimcmis_db_%date:
~8,2%1830.bak
--什么不知道意思,WINRAR命令行的参数参考一下。
gotoend
existfile
备份失败!
echo没有找到已经备份好的备份文件zsimcmis_db_%date:
pause
end
echo操作完毕
4、在WIN的任务计划中,建立运行计划,命令就是运行上以批处理文件就是OK!
不必每天手工压缩了。
。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何让SQL Server数据库自动备份并压缩 如何 SQL Server 数据库 自动 备份 压缩