SQL Server作业常见计划及备份任务

一、备份数据库

1、自动备份

        此处说的自动备注是指,在指定的时间进行数据自动备份的操作,要实现自动备份,主要有以下几个步骤(以下步骤均可在SQL Server Management Studio直接完成,此处主要说明代码实现过程):

1)首先第一步是创建作业,可以在SQL Server Management Studio中单击 SQL Server代理,选择作业,单击右键新建作业即可;

2)其次是对作业进行使能,SQL语句如下:

public void backupEnable(int enable){
		String sql = "EXEC msdb.dbo.sp_update_job "
				+ "@job_name = 'backup', "
				+ "@enabled = "+enable+";";
		//调用数据库执行
}

3)设置作业的步骤,SQL语句如下

//path  备份文件存储的绝对路径,例如:D\:/test/airrmdb.bak
public void backup(String path){
		String sql = "EXEC msdb.dbo.sp_update_jobstep "
				+ "@job_name = 'backup', "
				+ "@step_id = 1, "
				+ "@command = 'BACKUP DATABASE airrmdb TO DISK = \""+path+"\"  WITH FORMAT;'"; 
		saveBySql(sql);
}

4)设置作业计划,即什么时候执行,执行多少次等,SQL语句如下

/**
	 * 自动备份作业
	 * @param type 一个指示作业执行时间的值。 *freq_type*是**int**,默认值为**0**,并且可以为这些值之一。  1一次、4每天、8每周、16每月、32每月,相对于*频率间隔*、64SQLServerAgent 服务启动时运行、128计算机空闲时运行 
	 * @param interval 作业执行的天数。 *freq_interval*是**int**,默认值为**0**,并且依赖于的值*freq_type*,
	 * @param relativeInterval
	 * @param recurrenceFactor 执行间隔
	 * @param startDate
	 * @param startTime
	 */
	public void backupCycle(int type,int interval,int relativeInterval,int recurrenceFactor,String startDate,String startTime){
		String sql = "EXEC msdb.dbo.sp_update_schedule "
				+ "@name = 'backup', "
				+ "@enabled = 1, "
				+ "@freq_type = "+type+", "
				+ "@freq_interval = "+interval+", "
				+ "@freq_relative_interval = "+relativeInterval+", "
				+ "@freq_recurrence_factor = "+recurrenceFactor+", "
				+ "@active_start_date = "+startDate+", "
				+ "@active_start_time = "+startTime+" ;"; 
		//调用数据库执行
        ....
	}

2、手动备份

手动备份相对简单,只需要调用一下语句即可

二、删除数据

计划部分跟备份没什么太大区别,此处主要记录以下几种删除文件、图片等语句

1)删除多少天之前的图片,此处需要考虑两点,一个是把数据库对应路径删除,另一个是需要把服务器里面的图片删除,如果是使用FTP或共享等非本地方式批量删除可以考虑使用.bat文件的方式,然后在处理的时候传递参数给.bat即可,此处给出以下指令参考:

自动删除:forfiles /p "d:\test" /d -%1 /c "cmd /c echo deleting @file ... && del /f @path"

手动删除:del %1

ps:路径:d:\test  ,参数:%1

作业内容可参考备份数据

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值