SQL Server自动备份 备份到本地或者远程服务器
0.1 在SQLServer2008 --> 备份数据库 --> 安全 --> 新建用户 --> 用户名 选择该windows用户 (确保 --> 机器名/人名 --> 是正确的,因为有换机器名的可能性) 数据库角色成员身份 --> db_owner 1.设置 登录SQLServer2008 --> 管理 --> 维护计划 --> 维护计划向导 --> 名称: xx备份 --> 更改 执行:每周 执行间隔:1周 在 周几 每天频率:执行一次 时间 00:00 开始时间: 确定 --> 选择维护任务: 备份数据库(完整) --> 下一步 --> 选择数据库 为每个数据库创建备份文件 文件夹:选择目标(可以是远程的目录 --> 需要配置脚本见:4.) 压缩 --> 下一步 --> 下一步 --> 检查 编辑 --> 保存 --> 关闭(否则可能无效) 2.维护计划 --> 执行 (测试) 3.0.计算机 --> 管理 --> 服务 --> SQL Server 代理 (MSSQLSERVER) --> 自动 (必须确保它是自启动) 3.1SQLServer2008 --> SQL Server 代理 --> 作业(可能和维护计划不同) --> xx备份.Subplan_1(子计划的名称) --> 右键 --> 属性 --> 计划 --> 编辑(这里只做查看用,最好 --> 维护计划 --> 编辑 --> 保存) 右键 --> 开始作业步骤(测试该作业是否可以运行) 右键 --> 启动(或禁止) 查看作业状态 SQLServer2008 --> SQL Server 代理 --> 作业活动监视器 --> 下次执行时间、状态等 全新备份到远程目录(定时执行SQL版) SQLServer2008 --> SQL Server 代理 --> 新建作业 常规 --> 名称:自动备份(远程) 所有者:? 类型:数据库维护 步骤 --> 新建 --> 常规 -->名称:执行备份SQL 类型 --> 选择Transact-SQL 脚本(T-SQL) 数据库 --> msdb? 命令:下面的SQL代码 按钮 --> 分析 --> 已成功 高级 -->作为以下用户运行 --> ? 确定 计划 --> 新建 --> 名称:自动备份(远程)-计划 计划类型:重复执行 --> 已启动 --> 选中 通知 --> 写入Windows应用程序事件日志 --> 选中 --> 当作业完成时(或其它) 确定 测试 --> 开始作业步骤 确保它 --> 右键 --> 启动(即没有禁用图标) SQL代码 EXEC sp_configure 'show advanced options', 1;RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE; declare @machine nvarchar(50) = '192.168.200.175' --服务器IP declare @path nvarchar(50) = '208bf' --服务器共享目录名称 declare @user nvarchar(50) = 'happy' --服务器的用户名 declare @pwd nvarchar(50) = ' ' --服务器的密码 declare @database nvarchar(50) = 'SmartMPM' --本地要备份的数据库名称 if left(@path,1) != '\' set @path = '\'+@path declare @sql nvarchar(800) = 'net use \\'+@machine+@path+' "'+@pwd+'" /user:'+@machine+'\'+@user --建立连接类似:'net use \\192.168.200.175\208bf " " /user:192.168.200.175\happy' Exec xp_cmdshell @sql declare @date datetime = getdate(); Declare @fileName nvarchar(200) = '\\'+@machine+@path+'\'+@database + replace(Convert(nvarchar,@date,120 ) ,':','_') + '.bak' --备份数据库 Backup Database SmartMPM To disk = @fileName With Format set @sql = 'net use \\'+@machine+@path+' /delete' --断开连接类似:'net use \\192.168.200.175\208bf /delete' Exec xp_cmdshell @sql