SQL自动备份 备份到本地或者远程服务器

来源:互联网 发布:托福 知乎 编辑:程序博客网 时间:2024/05/17 01:12

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


博客记录以防忘记

0 0