执行步骤为

1. 写好备份SQL语法

2.写好执行T-SQL语法之批次档

3.设定执行批次档

4.执行定期删除过期备份档案之批次档

1. 写好备份SQL语法

DECLARE @DBName varchar(30)
Declare @BkFile Varchar(200)
Declare @BkFolder Varchar(200)
--设置需要备份的资料库
SET @DBName='TEST_DB'
--设定存放备份文件的文件夹
SET @BkFolder='D:\backUp_File\backup_data'
--备份档文件名
SET @BkFile=@BkFolder + '\'+@DBName + '.BAK'
--执行备份
BackUp Database @DBName To Disk=@BkFile

写完之后 另存为 BackUp.sql

2.写好执行T-SQL语法之批次档

# sqlcmd -S 【资料库登入 EX: 127.0.0.1\DB】 -E -i 【写好之备份语法之SQL档 EX: BackUp.sql】
sqlcmd -S 127.0.0.1\DB -E -i D:\backUp_File\BackUp.sql
#备份完成后,压缩.BAK档,以免太大占空间
set TODAY=%DATE:/=%
set THISDATE=%TODAY:~0,8%
path C:\Program Files (x86)\7-Zip
7z a -tzip D:\backUp_File\backup_data\dbzip_%THISDATE%.zip D:\backUp_File\backup_data\TEST_DB.BAK
#执行完本机备份后,再备一份到异地
copy D:\backUp_File\backup_data\dbzip_%THISDATE%.zip K:\
del D:\backUp_File\backup_data\TEST_DB.BAK

3.设定执行批次档

执行WINDOWS或是备份软体,去执行写好的批次档

4.执行定期删除过期备份档案之批次档

forfiles /P D:\xxx\ /M *.ZIP /D -15  /C "cmd /c del @path"

 

FORFILES [/P pathname] [/M searchmask] [/S]
[/C command] [/D [+ | -] {yyyy/MM/dd | dd}]
描述:
选取一个档案 (或一组档案),并在档案上执行命令。

参数清单:
/P pathname 表示要开始搜寻的路径。
预设资料夹是目前的目录 (.)。
/M searchmask 根据 searchmask 搜寻档案。
预设的 searchmask 是 '*'。
/S 指示 forfiles 递回搜寻子目录。例如 "DIR /S"。
/C command 表示每个档案要执行的命令。
命令字串应该包含在双括号之间。
预设的命令是 "cmd /c echo @file"。
下列变数可以使用于命令字串:
@file - 传回档案的名称。
@fname - 只传回档案的名称,不传附档名。
@ext - 只传回档案的附档名。
@path - 传回档案的完整路径。
@relpath - 传回档案的相对路径。
@isdir - 如果档案类型是目录的话,
传回 "TRUE",如果是档案的话,传回 "FALSE"。
@fsize - 传回档案的大小,单位是位元组。
@fdate - 传回档案上次修改的日期。
@ftime - 传回档案上次修改的时间。
要在命令列中包含特殊字元的话,请使用 0xHH 格式的十六
进位字元码 (例如 0x09 代表 tab)。
内部的 CMD.exe 命令应该以 "cmd /c" 执行。
/D date 选取档案上次修改的时间大于、等于 (+) 或小于或等于 (-)、
使用 "yyyy/MM/dd" 格式表示指定的日期;
或选取档案日期上次修改的时间大于或等于 (+)
目前的日期再加上"dd" 天、小于或等于 (-) 目前的日期减去 "dd" 天。
有效的 "dd" 可以是介于0 - 32768 之间的数字。
如果未指定,"+" 将被视为预设符号。
/? 显示这个说明讯息。

 

相关文章