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

 

posted @ 2018-10-23 09:01  有梦就能实现  阅读(7899)  评论(0编辑  收藏  举报