sqlserver远程备份到另一台电脑(局域网、定时任务)

如何备份本地数据库到另一个电脑(限局域网)

其实,我这种方法也是百度搜的,然而核心思想是,在远程电脑上建立一个共享文件夹,然后数据库备份的时候直接备份到那个共享文件夹里

 

不过通过这个例子,可以学习到:

1、 局域网电脑共享文件夹。

2、 SQLserver如何创建维护作业、维护计划

3、 netuse 命令的使用,包括远程建立连接等等,还顺便学习了dos几个命令

 

 

列出我做这个例子,用到的所有的参考网址,写下的即为用到的:

(1)win7建立局域网共享

http://jingyan.baidu.com/article/fec7a1e53efe621190b4e7ae.html

 

(2)(网络共享无法访问)提示指定的网络密码不正确

http://blog.163.com/plawsh@126/blog/static/16292592720125129437273/

用的是win7系统,其它的应该差不多

解决方法

开始-运行-gpedit,打开组策略,计算机配置—Windows设置—安全设置—本地策略—安全选项,来到“网络安全:LAN管理器身份验证级别”,双击打开,把它设置成“发送 LM NTLM 响应”。

如果是Home版的话,方法是:打开注册表,把HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa右边的LmCompatibilityLevel键值改成1。如果还不能访问就更新一下组策略在命令提示符中输入 gpupdate 回车

 

(3)核心参考***如何远程备份数据库****,其他的都是围绕这个产生的步骤或问题

http://wenku.baidu.com/view/1c0405d328ea81c758f57882.html (主)

http://blog.itpub.net/9537053/viewspace-722211/ (辅)

http://blog.csdn.net/cydenghua/article/details/6062855 (辅)

 

(4)步骤(3)中的数据库维护计划建立过程

http://wenku.baidu.com/view/01faa5fe700abb68a982fbfe.html

 

(5)步骤(3)中的net use命令使用

http://www.360doc.com/content/10/0822/01/2079984_47828491.shtml

http://www.blogjava.net/zhaijianhui/archive/2009/05/19/271432.html 这人写的很详细,有我用到的

 

(6)步骤(3)中的Exec master..xp_cmdshell用法

http://blog.csdn.net/dsjlzh/article/details/7410442

http://blog.sina.com.cn/s/blog_55fbe05c01008gho.html

http://bbs.csdn.net/topics/300084451 ,提示错误1312时候看这个网址

 

 

 

我最终总结的几个核心的语句,不同地方的写法:

1.1建立链接在dos下写法,4种,自己比较,图片可放大:


1.2建立链接在,Sqlserver查询分析器里的写法:

结果就是前2种写法不行,后2种写法行

3建立链接在存储过程中的写法:

 

 

 

 

 

核心2:建立远程映射和拷贝文件

http://blog.itpub.net/9537053/viewspace-722211/ 参考这个人的

 

2.1这里就写下,sql查询分析器的写法吧~

 

execMaster..xp_cmdshell 'net use * /d /y'---删除旧链接

execMaster..xp_cmdshell 'net use H: \\192.168.1.199\111 /user:192.168.1.199\Administratorp@xxl'-----建立199\111共享文件夹映射成本机H盘,Administrator用户名,xxl电脑密码

execMaster..xp_cmdshell 'copy d:\database\TUONENGGYM_db_2016-01-15-16-03-14.BAKh:\'----拷贝本地的d盘下的文件到映射的h盘

execMaster..xp_cmdshell 'net use * /d /y'----删除映射的h盘

 

 

 

废话不多说,下面写下,我工作的步骤:

我电脑ip:192.168.1.110,win7,Sqlserver2000

远程电脑ip:192.168.1.199 ,win7,用户名:administrator,电脑密码:xxl

 

1、在199上建立共享文件夹

这NM就不罗嗦了,直接在他电脑d盘新建111文件夹,右击共享。

共享的时候添加Guest 或 Everyone用户,完成。

注意:这地方设置一下

 

 

2、在master数据库中创建存储过程名为Bakup_DataBase

内容如下:

 

 

CREATE procbakup_DataBase

as

Declare @strPswvarchar(50)

Declare @strUsrvarchar(50)

Declare@strCmdShell varchar(300)

Declare@strDataBaseName varchar(20)

Declare@FullFileName Varchar(200)

Declare @FileFlagvarchar(50)

Declare @FileFlag2varchar(50)

Declare @ToFileNamevarchar(200)

Declare@ToFileName2 varchar(200)

Declare @SQLStrvarchar(500)

Declare @SQLStr2varchar(500)

Declare @SQLStr3varchar(500)

Declare @FlagDelvarchar(20)

Declare @SQLDelnetvarchar(50)

Declare @SQLNetConvarchar(500)

Declare @SQLCopyvarchar(500)

Declare @addDBNamevarchar(500)

Declare @delDBNamevarchar(500)

Declare @delDBName2varchar(500)

Declare @ToFilePathvarchar(500)

Declare @strDiskvarchar(50)

 

Set@strDataBaseName='TUONENGGYM'--填写数据库名称(如:Soondy)

Set @addDBName=@strDataBaseName+ '_db_' + replace(replace(convert(char(20),getdate(),20),':','-'),' ','-') --备份的文件命名规则:yyyy-mm-dd hh:mi:ss(24小时制).bak

Set@delDBName=@strDataBaseName + '_db_' +replace(replace(convert(char(20),getdate()-7,23),':','-'),' ','-')     --7天前的文件命名规则:yyyy-mm-dd.bak

Set@ToFilePath='H:\'+@addDBName+'.BAK'

 

Set@FlagDel='True'--填写True表示删除备份文件,填写False或其他字符表示保留该文件

 

 

Set@strUsr='Administrator'

Set @strPsw='xxl'

Set @strDisk='H:'

---------------'netuse H: \\192.168.1.199\111 /user:192.168.1.199\Administrator p@xxl'

Set @SQLNetCon='netuse H: \\192.168.1.199\111 /user:192.168.1.199\Administrator p@xxl'


注意:现场应用时是win2003电脑2台都是,然后多次测试与网上查找原因发现,上面那语句不行(但在win7之间测的是没问题的,语句改成如下方式,可以了,不然一直提示错误1326用户名和密码错误)

--exec Master..xp_cmdshell 'net use H: \\192.168.1.199\111  xxl   /user:192.168.1.199\Administrator'--建立新映射,把199\111文件夹映射成本地H

 


--Set@SQLNetCon='net use '+@strDisk+' \\192.168.1.199\111/user:192.168.1.199\'+@strUsr+' p@'+@strPsw

Set @delDBName2 ='del ' + 'H:\'+ @delDBName+ '*.BAK'

 

execMaster..xp_cmdshell 'net use * /d /y'--删除旧链接

--execMaster..xp_cmdshell 'net use H: \\192.168.1.199\111/user:192.168.1.199\Administrator p@xxl'--建立新映射,把199\111文件夹映射成本地H盘

execMaster..xp_cmdshell  @SQLNetCon-- 'netuse H: \\192.168.1.199\111 /user:192.168.1.199\Administrator p@xxl'

 

 

--BackUpDataBase  @strDataBaseName  To Disk=  'H:\GYM20160115.BAK'  with init    --备份数据库

BackUpDataBase  @strDataBaseName  To Disk= @ToFilePath  with init   --备份数据库到映射的H盘

if (@FlagDel ='True')exec master.. xp_cmdshell @delDBName2--执行删除本地的备份临时文件

 

execMaster..xp_cmdshell 'net use * /d /y'--删除链接

GO

 

给个图片参照下:

 

 

3、打开SQL Server 企业管理器,在指定需要备份的数据库上面,创建一个维护计划。可按需要设定将来运行这个维护计划的时间/周期。

具体内容,各个步骤看图操作:

 

 

1、 完成了。

可以双击这个作业进行备份测试,也可以等时间到了测试。



  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值