Sql
下面我们来看下如何写备份(backup)脚本:
这个是最简单的差异备份方式啦:
Backup database [DatabaseName]
to disk ='D:\db backup\test.bak'
with INIT, differential
然后建立schedule:我们期望每天运行一次,进行备份:
新建schedule,run daily,设置时间。
建立好之后我们就可以测试一下是否正确:
如果出现错误的,使用view History进行查看。
这些都是使用Job的基本知识,简单介绍一下。
检查磁盘空间Job:
下面我们来如何进行磁盘空间查询:
1.使用xp_fixeddrives 查询磁盘空间统计:
declare @FreeSpaceStat table(
DriveLabel char(1)
,FreeMB int)
insert into @FreeSpaceStat exec xp_fixeddrives
2.使用EXEC master.dbo.sp_databases 得到数据库大小统计
注意:一个是以MB为单位,一个是以KB为单位,比较的时候需要转换;
一般:是以数据库大小的2倍作为剩余空间是否足够的标准;
declare @DBSizeStat table(
[name] nvarchar(300)
,[size] int
, remark nvarchar(300))
insert into @DBSizeStat EXEC master.dbo.sp_databases
3.在需要删除的时候,使用:xp_cmdshell 执行dos命令就可以了:
Set @ DeleteString = ‘del c:\1.txt’
exec xp_cmdshell @DeleteString;
Note: 默认,xp_cmdshell 是禁用的,需要reconfigure一下,启用xp_cmdshell,如下:
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE
然后建立Job,设置step导入以上脚本,然后设置Schedule,搞定。
Note:以下是返回某目录下的文件,以时间排序的命令:
'dir "'+ @BackupDir + '" /b /a-d /o-d'
其中: /o-d 是最老的文件在最上面; /od就是最新的文件在返回列表的Top位置上了。
浙公网安备 33010602011771号