SQL Server2005异地自动备份方法

最近公司刚刚搭建了一台安防综合平台,综合平台服务器上安装了SQL Server 2005,由于没有备份服务器,所以只能异地备份数据库了。在网上找了很多的资料,自己整合了一下 。

一、开启SQL Agent服务,并设置为“自动”

二、备份

1、SQL代理-作业-新建作业,这是在SQL2005下的操作,其实SQL2000也是大同小异(管理→SQL Server代理→右键作业→新建作业)

图1

2、在常规中输入名字

图2

3、“步骤”项—>新建,输入名称,选中数据,输入以下语句,

图3

语句如下:

--在SQL Server2005中cmdshell命令默认是关闭的,首先要开启cmdshell命令:

--显示高级选项(仅需执行一次)
             EXEC sp_configure 'show advanced options', 1
             GO
             RECONFIGURE
             GO
       --允许执行xp_cmdshell
            EXEC sp_configure 'xp_cmdshell', 1
            GO
            RECONFIGURE
            GO

declare @sql varchar(4000)
           declare @backupfile varchar(2000)
           declare @now datetime
           declare @retaindays int
           declare @deletefiles varchar(2000)
           declare @cmd varchar(2000)
           declare @i int

declare @User varchar(2000)
           declare @Pwd varchar(2000)
           declare @Store varchar(2000)
           declare @IPPart varchar(2000)
           declare @IP varchar(2000)

-------------以下自行修改-----------
           set @Store='EmployeeInfo'    --------数据库名-----------
           set @User ='liuhs'    ----------用户名----------要管理员权限
           set @Pwd ='winter'      ----------密码----------密码不要有符号
           set @IPPart='d$\back'   -----路径-----
           set @IP='192.168.3.42'  -----服务器IP或主机名--
           set @retaindays=1  ---要保留备份的天数
          ------------以上自行修改------------

--添加映射驱动器
          declare @string nvarchar(200)
          set @string = 'net use z: \\'+@IP+'\'+@IPPart+' "winter" /user:hp-liuhs\'+@User
          exec master..xp_cmdshell @string

set @now=getdate()
           ---删除以前的备份,这个还没有实现好,有时间再修改了
           set @i=0
           while (@i < 30)
           begin
    set @deletefiles = 'z:\data'+@Store+ '_db_' +convert(varchar(8),dateadd(dd,-@retaindays-                @i,@now),112)++'.BAK'
    set @cmd='del ' + @deletefiles
    exec  master..xp_cmdshell @cmd
    set @i = @i +1
end

----开始备份
set @backupfile='z:\data'+ @Store + '_db_'+ replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.BAK'
set @sql='backup database ' + @Store + ' to disk='''+@backupfile+''' with retaindays='+convert(varchar(10),@retaindays)
exec (@sql)

set @backupfile='z:\data'+ @Store +'_tlog_'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.TRN'
set @sql='backup LOG ' + @Store + ' TO DISK='''+@backupfile+''' with retaindays='+convert(varchar(10),@retaindays)
exec (@sql)

---删除映射
exec master..xp_cmdshell 'net use z: /delete'

4、新建作业计划,在指定时间内备份

图4

5、最后查询备份服务器是否备份成功

如果出现了“系统错误 5, 拒绝访问”:

首先要确定对备份服务器要有足够的权限,最好是“Administrators”组账户。

其次 到备份服务器上,打开组策略->计算机配置->Windows设置->安全设置->本地策略->安全选项->网络访问:本地账户的共享和安全模式->经典-本地用户以自己的身份验证。

(0)

相关推荐

  • sql server 2000 数据库自动备份设置方法

    1.打开MS SQL Server 企业管理器,SqlServer组 - 管理 - 数据库维护计划 - 右键新建维护计划 如下图: 下一步:选择需要备份的数据库 下一步: 继续下一步: 下一步:点击更改修改数据备份时间 下一步: 下一步: 下一步: 下一步: .在企业管理器中,找到管理 – SQL Server代理,如果它没有启动,红色方框而不是绿色三角,点击右键,选择启动. 小技巧:在SQL Server 服务管理器 – 服务选择 SQL Server Agent 启动,在"当启动OS时自动启

  • 自动备份mssql server数据库并压缩的批处理脚本

    1. set bakupfolder=F:\backup\ 备份文件存放于目录F:\backup\ (此目录需要事先建好) 2. 默认每个数据库放置到bakupfolder下的同名的子目录(脚本自动创建)中:设置lay_in_subfolder=0后,将直接放置到bakupfolder 3. 备份文件名中自动添加备份时的时间字符串,不用担心备份目录下名字重复,也便于管理. 4. call :backupone foo foo是需要备份的数据库,需要备份其它数据库,按同样的方式一行写一条即可 5.

  • SQLServer2005 按照日期自动备份的方法

    SqlServer自动作业备份 1.打开SQL Server Management Studio 2.启动SQL Server代理 3.点击作业->新建作业 4."常规"中输入作业的名称 5.新建步骤,类型选T-SQL,在下面的命令中输入下面语句 复制代码 代码如下: DECLARE @strPath NVARCHAR(200) set @strPath = convert(NVARCHAR(19),getdate(),120) set @strPath = REPLACE(@s

  • sqlserver2005打造自动备份的维护计划图解教程

    其使用方法如下: (1)启动[sql server Management Studio],在[对象资源管理器]窗口里选择[管理]--[维护计划]选项. 2)右击[维护计划],在弹出的快捷菜单里选择[维护计划向导]选项 ,弹出如图所示的[维护计划向导]对话框,单击[下一步]按钮 3)弹出如图所示[选择目标服务器]对话框,在[名称]文本框里可以输入维护计划的名称:在[说明]文本框里可以输入维护计划的说明文字:[在服务器]文本框里可以输入要使用的服务器名:最后选择正确的身份证信息,单击[下一步]按钮.

  • SQL Server数据库定时自动备份

    SQL Server 数据库定时自动备份,供大家参考,具体内容如下 在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库.要实现数据库的定时自动备份,最常用的方式就是使用SQL Server代理中的作业.启动SQL Server Agent服务,然后在其中新建作业,作业中添加1个备份步骤,类型是T-SQL脚本,然后在命令中输入如下SQL语句,该语句实现了对数据库Tes

  • SQL server 定时自动备份数据库的图文方法

    SQL2000版本 用JOB 企业管理器 --管理 --SQL Server代理 --右键作业 --新建作业 --"常规"项中输入作业名称 --"步骤"项 --新建 --"步骤名"中输入步骤名 --"类型"中选择"Transact-SQL 脚本(TSQL)" --"数据库"选择执行命令的数据库 --"命令"中输入要执行的语句: --确定 --"调度"

  • SqlServer2005 自动备份并存储另一电脑上的存储过程函数

    复制代码 代码如下: --Full BackUp --Use Master CREATE proc [dbo].[bakup_DataBase] as Declare @strPsw varchar(50) Declare @strUsr varchar(50) Declare @strCmdShell varchar(300) Declare @strDataBaseName varchar(20) Declare @FullFileName Varchar(200) Declare @Fil

  • 设定sql server定期自动备份数据库

    企业管理器中的Tools,Database Maintenance Planner,可以设置数据库的定期自动备份计划.并通过启动Sql server Agent来自动运行备份计划.具体步骤如下:  1.打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器  2.然后点上面菜单中的工具-->选择数据库维护计划器  3.下一步选择要进行自动备份的数据-->下一步更新数据优化信息,这里一般不用做选择-->

  • SQLServer 2005 自动备份数据库的方法分享(附图解教程)

    具体步骤如下: 一.开始菜单中打开SQL Server Management Studio,展开窗口左边的SQL服务器: 二.SQL Server代理,右键选择"启动"(未启动的话): 三.选择"作业->新建作业": 四.在"常规"中输入作业的名称: 五.在"步骤"中新建步骤,选择T-SQL,命令中输入下面语句(红色部分要根据自己的实际情况更改,D:\bak\改为自己的备份路径,databasename修改为想备份的数据

  • sqlserver 自动备份所有数据库的SQL

    复制代码 代码如下: use master declare @DbName varchar(60) declare @BackSql varchar(1000) declare myCursor cursor for SELECT [name] FROM SYSDATABASES where [name] not in ('master','model','msdb','tempdb') order by [name] open myCursor fetch next from myCursor

随机推荐