急!自动备份

ufocn 2003-10-15 04:06:40
怎么样做才能让SQL自动的备份:完整备份(每个星期天一次)+差异备份(每天备份一次)+日志备份(每2小时备份一次)。

...全文
90 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tzsimple 2003-12-25
  • 打赏
  • 举报
回复
up
ufocn 2003-10-16
  • 打赏
  • 举报
回复
刚才看了一下,兄弟们写的不错咯。不过现在我没时间去实践,出差几天。那我散分先,等我回来啦,再慢慢实践。谢谢大家!!
zjcxc 元老 2003-10-15
  • 打赏
  • 举报
回复
/*--应用案例--备份方案:
完整备份(每个星期天一次)+差异备份(每天备份一次)+日志备份(每2小时备份一次)

调用那个贴子中的存储过程来实现
--*/

declare @sql varchar(8000)
--完整备份(每个星期天一次)
set @sql='exec p_backupdb @dbname=''要备份的数据库名'''
exec p_createjob @jobname='每周备份',@sql,@freqtype='week'

--差异备份(每天备份一次)
set @sql='exec p_backupdb @dbname=''要备份的数据库名'',@bktype='DF''
exec p_createjob @jobname='每天差异备份',@sql,@freqtype='day'

--日志备份(每2小时备份一次)
set @sql='exec p_backupdb @dbname=''要备份的数据库名'',@bktype='LOG''
exec p_createjob @jobname='每2小时日志备份',@sql,@freqtype='day',@fsinterval=2
zjcxc 元老 2003-10-15
  • 打赏
  • 举报
回复
刚写了一个这方面的贴子,楼主去参考一下,备份方案只需要用到其中的备份过程+作业创建存储过程

http://expert.csdn.net/Expert/topic/2359/2359124.xml?temp=.5638239
CrazyFor 2003-10-15
  • 打赏
  • 举报
回复
作业
作业是指被定义的多步执行的任务每一步都是可能执行的Transact-SQL 语句代表
一个任务作业是典型的规划任务和自动执行任务数据库的备份和恢复数据的复制
数据的导入/导出等都可以被定义成作业然后在规划的时间由SQL Server Agent 来自动
完成

创建一个作业的执行步骤为
1 启动SQL Server Enterprise Manager 登录到指定的服务器分别顺次单击
management SQL Server Agent 左边的+ 如果SQL Server Agent 没
有启动请启动
2 右击Jobs 图标在弹出菜单中选择New Job 选项打开New Job Properties
对话框如图17-8 所示
图17-8 New Job Properties 对话框– General 标签页
在该对话框内通过选择不同的标签页来设置作业的属性每个作业都包括以下属性
Name Category Owner Description Job steps Schedules Notifications
3 在General 标签页定义了作业的Name Category Owner Description 属性
各选项含义如下
Name 是指作业的名称同一台服务器上的作业名必须是惟一的其最大长度
为128 个字符
Category 表示作业目录可以将那些具有某些共同点的作业归至同一作业目录

Owner 表示作业的所有者sysadmin 角色用户可以改变作业的所有者
Description 表示对作业的描述信息最大长度为512 个字符
Last modified 表示作业上一次修改的时间如果是新创建的作业则为Not
Applicable
Enabled 表示作业有效否则必须手工启动
Source 用来显示作业是在哪台服务器上创建的
Target local server 表示作业在本地服务器上运行
Target Multiple server 表示在多个过程服务器上运行
4 选择Steps 标签然后单击New 按钮打开New Job Steps 对话框如图17-
9 所示General 标签页内各选项的含义如下
图17-9 New Job Steps 对话框– General 标签页
Step name 步骤名称其长度不超过128 个字符一个作业内的步骤名必须惟一
Type 步骤的类型该下拉框内各选项的含义分别为
?Active Script 运行一个脚本语言程序
?Operation System Command (Cmd Exec) 执行.exe .cmd .bat 文件
?Replication Distributor 定义复制分发命令
?Replication Transaction Log Reader 定义复制日志阅读器命令
?Replication Merge 定义复制合并命令
?Replication Snapshot 定义复制快照命令
?Replication Transact-SQL Script (TSQL) 执行TSQL 语句命令
Database 当作业步骤类型为TSQL 时所使用的数据库
Command 该作业步骤要执行的命令
5 选择New Job Steps 对话框的Advanced 标签页如图17-10 所示其中各选
项的含义为
On success Action 定义该步骤成功执行后将执行的活动其中下拉框中的各选
项的含义分别为
?Quit the Job Reporting Success 如果成功则结束作业
?Quit the Job Reporting Failure 如果失败则结束作业
?Goto the Next Step 让SQL Server Agent 去执行下一步
?Goto Step N 让SQL Server Agent 执行第N 步
图17-10 New Job Steps 对话框– Advanced 标签页
Retry Attempts 如果该步执行失败则重新执行的次数
Retry Interval 在重新执行前等待的时间
On Failure Action 定义该步骤执行失败后将执行的活动
Output File 存储该步骤执行结果的文件
Run as User 允许系统管理员以另外的用户身份来执行这一步作业
6 选择Schedules 标签页然后单击New Schedule 按钮如图17-11 所示其
中各选项含义分别为
图17-11 New Job Schedule 对话框
Name 日程表的名称在Schedule Type 选项区设置作业执行的频率和时间
Start automatically when SQL Server Agent Start 表示在SQL Server Agent Start 启
动时执行该作业
Start whenever the CPU(s) become idle 表示在CPU 空闲时执行该作业在缺省
情况下空闲的含义是指CPU 的利用率低于10% 持续时间为6 分钟可在SQL
Server Agent Properties 对话框的Advance 标签页进行设置
One time 该作业执行一次
Recuring 按一定时间间隔执行该作业
如果选择Recurring 选项则可单击Change 按钮打开Edit Recurring Job Schedule 对
话框如图17-12 所示在该对话框中设置作业的日程表
图17-12 Edit Recurring Job Schedule 对话框
7 返回New Job Properties 对话框选择Notifications 标签页如图17-13 所示
其中各选项的含义为
图17-13 New Job Properties 对话框- Notifications 标签页
E-mail operator 在作业完成时表示以电子邮件方式通知操作员在右面的下拉
框中选择操作员
Page operator 在作业完成时以寻呼方式通知操作员在右面的下拉框中选择操
作员
Net send operator 在作业完成时通过网络发送网络信息通知操作员在右面的下
拉框中选择操作
Write to Windows NT application event log 在作业完成时将完成的作业写入NT
应用事件日志
Automatically delete Job 在作业完成时自动删除该作业
8 单击确定按钮完成作业的创建
lynx1111 2003-10-15
  • 打赏
  • 举报
回复
完整备份(每个星期天一次)+日志备份(每2小时备份一次)。
用维护计划

差异备份(每天备份一次)勾上“调度”在后面选执行时间就可以了。
pengdali 2003-10-15
  • 打赏
  • 举报
回复
你手工的时候不是在备份对话筐里的下面有个“调度”吗?勾上它在后面选执行时间就可以了。
txlicenhe 2003-10-15
  • 打赏
  • 举报
回复

你的数据库服务器-》企业管理器-》管理-》SQL Server 代理-》作业-》新建作业,按照要求填就可以了,在“步骤”的“命令”中填写你要执行的存储过程或语句,在“调度”里面填写什么时间执行


EXEC sp_add_job @job_name = '作业名字'


EXEC sp_add_jobstep @job_name = '作业名字',
@step_name = '步骤名子',
@subsystem = 'TSQL',
@command = 'EXEC 库名..过程名',
@retry_attempts = 5, --重试次数
@retry_interval = 5 --重试间隔

EXEC sp_add_jobschedule @job_name = '作业名字',
@name = '作业调度名字',
@freq_type = 4, -- 每天
@freq_interval = 26, --间隔
@active_start_time = 10000 --开始时间


--备份
backup database sys to disk='c:\目录\a.bak' with init
差异:
backup database sys to disk='c:\目录\a.bak' WITH DIFFERENTIAL



34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧