因为服务器有可能出现数据丢失的情况,所以有必要做一下异地备份计划。
网上的资料有很多,但是操作过程中还是遇到了一些问题,现在整理一下自己的操作步骤,以便后面查询。
网上提到的备份方案有几种,这里用的是SQL Server代理中的作业进行的。
版本及服务器信息
共享服务器:Windows Server 2008
数据库服务器:Windows Server 2012
DBMS:SQL Server 2012
- 共享服务器
IP:192.168.1.123;
计算机名称:BakServer; - 数据库服务器
IP:192.168.1.456;
计算机名称:DBServer; - 数据库
待备份数据库名称:MyDataSource;
创建专用共享账户
在共享服务器上创建用户dbbaker
,用户类型选择标准用户即可,设置好符合复杂度的密码;
这里设置的密码为Du4*Gyn@
;
对该用户适当的降低权限;
创建共享目录
- 在共享服务器上创建共享目录,例如我这里创建的共享目录的本地路径为
H:/BakFiles
;
共享后的网络路径为\\BakServer\BakFiles
; - 设置共享目录的用户为
dbbaker
,并赋予读取与更改的权限;
- 在高级共享中做同样的设置;
- 在数据库服务器测试共享文件夹可以使用共享服务器上新建的用户
dbbaker
正常访问
在数据库服务器上打开cmd窗口,通过命令NET USE Z: \\BakServer\BakFiles Du4*Gyn@ /USER:dbbaker
如果可以正常访问则继续下一步;
新建作业
- 在数据库服务器上,通过DBMS中的SQL Server 代理新建作业;
- 常规设置
需要注意这里的所有者,必须是sa或者与sa拥有同等权限的用户;
名称是必填项,其他选项可以不做改动;
-
新建步骤
步骤名称是必填项;
命令如下,请对应修改:sys.sp_configure @configname = 'show advanced options', @configvalue = 1 RECONFIGURE GO sys.sp_configure @configname = 'xp_cmdshell', @configvalue = 1 RECONFIGURE GO DECLARE @bakpath NVARCHAR(500) SET @bakpath = '\\BakServer\BakFiles\MyDataSource_bakup_' + CONVERT(VARCHAR(10),GETDATE(),112) + '-' + REPLACE(CONVERT(VARCHAR(10),GETDATE(),108),':','') + '.bak' EXEC master..xp_cmdshell 'NET USE Z: \\BakServer\BakFiles Du4*Gyn@ /USER:dbbaker' BACKUP DATABASE i8office TO DISK = @bakpath GO sys.sp_configure @configname = 'xp_cmdshell', @configvalue = 0 RECONFIGURE GO sys.sp_configure @configname = 'show advanced options', @configvalue = 0 RECONFIGURE GO
其他设置默认即可。 - 新建计划
在计划选项卡下选择新建计划;
根据自身需求填写备份执行的时间及间隔等等;
- 其他设置
警报,通知,目标这里不做设置。
排查问题
在新建的作业上右键点击作业执行步骤
,则作业则会执行,会返回执行结果。
如果遇到问题,则可以在新建的作业上右键点击查看历史记录
,里面包含详细的错误信息;
根据错误信息进行相应修改,直到作业成功执行。
查看历史记录的错误时请点开记录前的+
,以便查看详细信息;
如需转载,请注明原文链接:https://segmentfault.com/a/11...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。