本地备份具体步骤如下:
一、开始菜单中打开SQL Server Management Studio,展开窗口左边的SQL服务器;
二、SQL Server代理,右键选择"启动"(未启动的话);
三、选择“作业->新建作业”;
四、在"常规"中输入作业的名称;(图1)
五、新建步骤,选择T-SQL,命令中输入下面语句:
DECLARE @strPath NVARCHAR(200)
set @strPath = convert(NVARCHAR(19),getdate(),102 )
set @strPath = 'D:\ProjectDatabaseBackUp \Test_fullback_' + @strPath + '.bak' -- 备份路径
BACKUP DATABASE [Test ] TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT -- Test是要备份的数据库名
(图2)
六、添加计划,然后确定完成:(图3)
SQLSERVER服务实例名称:XXLONG
需要备份的数据库名称: Project
备份机器名称(Client端):192.168.1.100
备份机用户:Administrator 密码:123
备份机提供备份需求的文件夹:D:\test
备份数据库
第一步: 首先在外围应用配置器里,启动xp_cmdshell。
第二步: 在备份机建立共享文件夹
在程序代码中调用(或者CMD窗口) net share test=D:\test
简要说明: net share:是WINDOWS内部的网络命令。
作用:建立本地的共享资源,显示当前计算机的共享资源信息。
备份机显示共享成功时,在本地机器中的运行中输入: \\192.168.1.100\test 看是否能访问备份机上的此共享文件夹:如下图所示:
第三步: 建立共享信用关系
此语法格式为: master..xp_cmdshell 'net use \\<remotecomputer>\<sharefolder> <password> /user:<remotecomputername\loginname>'
exec master..xp_cmdshell 'net use z: \\192.168.1.100\test "123" /user:192.168.1.100\Administrator' 简要说明:
1:xp_cmdshell :是SQLSERVER的扩展存储过程。
作用:以操作系统命令行解释器的方式执行给定的命令字符串, 并以文本行方式返回任何输出。
语法:参见SQLSERVER联机帮助
2:net use : 是WINDOWS内部的网络命令。
作用:将计算机与共享资源连接或断开,或者显示关于计算机连接的信息。
该命令还控制持久网络连接。
第三步:备份数据库
BACKUP DATABASE [Project] TO DISK = @localPath -- 本地路径
BACKUP DATABASE [Project] TO DISK = @localPath WITH DIFFERENTIAL (差异备份)
第四步: 删除共享文件夹
在程序代码中调用(或者CMD窗口) net share z: /delete
完整代码如下 :
--下面指定映射网络文件夹为本地的z:盘,
--EXEC sp_configure 'show advanced options', 1
--GO
--RECONFIGURE
--GO
--EXEC sp_configure 'xp_cmdshell', 1
--GO
--RECONFIGURE
--GO
exec master..xp_cmdshell 'net use z: \\192.168.1.100\test "123" /user:192.168.1.100\Administrator'
--定义两个备份位置
declare @localPath nvarchar(200);
declare @remotePath nvarchar(200);
set @localPath=N'D:\lanchong\database\';--这里指定本地备份的文件夹,N--代表的意思是unicode
set @remotePath=N'z:\';--这里指定远程备份的文件夹
--唯一的标识符
declare @guid nvarchar(36)
set @guid=newid()
--动态文件名
declare @fileName nvarchar(100)
set @fileName=N'project_fullbak_'+convert(char(10),getdate(),110)+@guid+'.bak'
set @localPath=@localPath+@fileName
--执行本地备份
BACKUP DATABASE [Project] TO DISK = @localPath WITH NOFORMAT, NOINIT, NAME = N'project-完整数据库备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
--将本地备份拷贝到映射文件夹
declare @copy nvarchar(100)
set @copy=N'copy '+@localPath+' '+@remotePath
exec master..xp_cmdshell @copy
--删除映射
exec master..xp_cmdshell 'net use z: /delete'
GO
参考资料: SQLSERVER远程备份、恢复 : http://www.cnblogs.com/iinsnian/archive/2008/06/06/1214821.html