社区
MS-SQL Server
帖子详情
如何采用脚本写这样一个数据库备份
tigerxu
2003-05-15 01:32:08
1. 每隔一个小时,将指定的数据库备份到一个目录中。
2. 自动删除最近的5次备份以外的备份文件。
3. 定时收缩数据库(包括日志)。
4. 命令越简练越好。
我已经采用了“xp_sqlmaint”这个命令,希望大家能给我其他更好的方法。谢谢~~~
...全文
51
6
打赏
收藏
如何采用脚本写这样一个数据库备份
1. 每隔一个小时,将指定的数据库备份到一个目录中。 2. 自动删除最近的5次备份以外的备份文件。 3. 定时收缩数据库(包括日志)。 4. 命令越简练越好。 我已经采用了“xp_sqlmaint”这个命令,希望大家能给我其他更好的方法。谢谢~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
blackhawk_yps
2003-05-15
打赏
举报
回复
足够满足你的要求了
tigerxu
2003-05-15
打赏
举报
回复
首先感谢各位的发言!
1. 做这个操作一定要用脚本。(被限制住了,我也没办法)
2. 对于“ firetoucher(蹈火者) ”的想法,我也试过,是一个办法。
3. 我现在的方法是建立一个作业,采用“xp_sqlmaint”这个系统存储过程,也是一个办法。
还有其它的方法吗?
liukanghui
2003-05-15
打赏
举报
回复
用维护计维DTS不好吗?
你如果非要sql也可以选建一个功能一样的维护计划,然后把那个计划生成sql脚本
做成一个proc 然后由作业调度?
我也晕了.......
愉快的登山者
2003-05-15
打赏
举报
回复
编写好SQL程序,
建立一个JOB,
设置每隔一个小时执行一次这段SQL程序;
firetoucher
2003-05-15
打赏
举报
回复
DECLARE @PlanID nchar(36)
SELECT @PlanID = NEWID()
INSERT msdb.dbo.sysdbmaintplans (plan_id, plan_name, max_history_rows, remote_history_server, max_remote_history_rows)
VALUES (@PlanID, N'数据库维护计划1', 1000, N'', 0)
SELECT @PlanID
BEGIN TRANSACTION
DECLARE @ReturnCode INT
DECLARE @JobID0 nchar(36)
DECLARE @JobID1 nchar(36)
DECLARE @JobID2 nchar(36)
DECLARE @JobID3 nchar(36)
DECLARE @JobID4 nchar(36)
DECLARE @JobID5 nchar(36)
DECLARE @JobID6 nchar(36)
DECLARE @JobID7 nchar(36)
DECLARE @JobIDD nchar(36)
EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID4 OUTPUT, @job_name = N'DB 维护计划“数据库维护计划1”的 DB 备份作业。', @enabled = 1, @category_id = 3
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID4, @step_id = 1, @step_name = N'第 1 步', @subsystem = N'TSQL', @on_success_action = 1, @on_fail_action = 2, @command = N'EXECUTE master.dbo.xp_sqlmaint N''-PlanID 37E8173A-5503-491C-A555-0FB3BE81C5D6 -VrfyBackup -BkUpMedia DISK -BkUpDB "C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP" -DelBkUps 5HOURS -BkExt "BAK"''', @flags = 4
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID4, @name = N'第 1 调度', @enabled = 1, @freq_type = 4, @active_start_date = 20030515, @active_start_time = 20000, @freq_interval = 1, @freq_subday_type = 8, @freq_subday_interval = 1, @freq_relative_interval = 0, @freq_recurrence_factor = 1, @active_end_date = 99991231, @active_end_time = 235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID4, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID0 OUTPUT, @job_name = N'DB 维护计划“数据库维护计划1”的优化作业。', @enabled = 1, @category_id = 3
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID0, @step_id = 1, @step_name = N'第 1 步', @subsystem = N'TSQL', @on_success_action = 1, @on_fail_action = 2, @command = N'EXECUTE master.dbo.xp_sqlmaint N''-PlanID 37E8173A-5503-491C-A555-0FB3BE81C5D6 -RmUnusedSpace 50 10 ''', @flags = 4
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID0, @name = N'第 1 调度', @enabled = 1, @freq_type = 4, @active_start_date = 20030515, @active_start_time = 10000, @freq_interval = 1, @freq_subday_type = 8, @freq_subday_interval = 1, @freq_relative_interval = 0, @freq_recurrence_factor = 1, @active_end_date = 99991231, @active_end_time = 235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID0, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
SELECT @JobID0, @JobID1, @JobID2, @JobID3, @JobID4, @JobID5, @JobID6, @JobID7
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback: IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
firetoucher
2003-05-15
打赏
举报
回复
创建一个维护计划,将sql语句导出不就行了。
18个Linux Shell
脚本
经典案例
针对以上问题,我精心总结了18个生产环境中经典的Shell
脚本
,通过这些案例贯穿Linux Shell
脚本
的大部分知识点,学习编
写
思路,学习编
写
技巧,提升Linux使用能力,让你的Shell功底上升
一个
段位!
数据库的
脚本
备份
数据库
脚本
备份是指将数据库结构和数据导出为文本格式的过程,以便在需要时可以轻松地...定时备份可以定期将
数据库备份
到安全的位置,以防止数据库出现故障、数据丢失等问题。这样可以大大提高数据的安全性和可靠性。
MySQL
数据库备份
脚本
MySQL
数据库备份
脚本
及定时操作crontab的用法
Oracle
数据库备份
脚本
Oracle
数据库备份
脚本
PostgreSQL数据库定时备份
脚本
以下是
一个
用于定时备份 PostgreSQL 数据库的示例
脚本
。您可以使用 cron 作业来定期运行这个
脚本
,以创建定时的
数据库备份
。大多数数据库管理系统都提供了自带的备份工具,可以使用这些工具来进行备份操作。
MS-SQL Server
34,593
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章