一、备份数据库
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
作业内容可参考备份数据