SQLSERVER数据库异地备份
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQLSERVER数据库异地备份
(2012-07-23 14:33:32)
转载▼
标签:
数据库备份
杂谈
首先要先保证xp_cmdshell命令运行正常:保证运行正常的操作脚本如下:
sp_configure 'show advanced options', 1;
go
reconfigure;
go
sp_configure 'xp_cmdshell', 1;
go
reconfigure;
go
然后mssql数据库异地备份的两种方法
declare @sql varchar(500)
select @sql='del '+'\\192.168.1.15\share\dbname'+'_db_'+convert(varchar(10),dateadd(day,-0,getdate()),112) + substring(convert(varchar(10),dateadd(day,-7,getdate()),108),1,2) +'.bak'
print @sql
exec master..xp_cmdshell @sql --删除7天前的备份,也就是只保留7个最新备份
go
declare @sql varchar(500)
select @sql='\\192.168.1.15\share\dbname'+'_db_'+convert(varchar(10),getdate(),112) + substring(convert(varchar(10),getdate(),108),1,2) +'.bak'
print @sql
exec master..xp_cmdshell 'net use \\192.168.1.15\share 123321 /user:PC\administrator' backup database citycar1213_5 to disk=@sql
go
--方法2:用“数据库维护计划”做
1.本地服务器(计算机管理里)建立一个操作系统用户,例如sa(用户名和密码需要跟远程计算机所建立的用户情况相同),赋予此用户administrators组权限,加上相应的密码。
2.在企业管理器→右键点击(local)(windows nt)选择属性→在“安全性”选项里的“启动服务帐户”选择使用“本帐号”,在里面填入第一步建立的用户和密码(sa)。(这里的功能是:用这个跟远程计算机用户名密码一样的用户来启动本地sqlserver,就像做了net use)
3.待sa用户重启了sqlserver服务后,在数据库维护计划里的“指定备份磁盘目录”这一步手工输入远程计算机地址及共享文件夹名\\10.2.0.12\backup(10.2.0.12为远程计算机的ip,backup为远程计算机开放的共享文件夹名)
4.更改本地服务器时间,测试异地备份效果
SQL Server数据库异地备份的实现
将一台服务器A上的一个数据库data备份自动备份到服务器B的目录
1.机器A,B创建一个同名的windows用户,用户组设置为administrators,并设置相同的密码,做为备份文件夹文件夹的有效访问用户,操作:
我的电脑》控制面板》管理工具》计算机管理》用户和组》右键用户》新建用户
--建立一个隶属于administrator组的登陆windows的用户
2.在B机器器上,新建一个共享目录,做为备份文件的存放目录,操作:
我的电脑--D:\ 新建一个目录,名为: BAK
--右键这个新建的目录
--属性--共享
--选择"共享该文件夹"
--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限
--确定
3.设置MSSQLSERVER 及SQLSERVERAGENT 服务的启动用户
开始--程序--管理工具--服务
--右键MSSQLSERVER
--属性--登陆--选择"此账户"
--输入或者选择第一步中创建的windows登录用户名
--"密码"中输入该用户的密码
--确定
--同样的方法设置SQLSERVERAGENT
4.在A机器上完成对B机器BAK目录的映射
5.查询分析器中执行下面的语句,检验是否成功:
exec master..xp_cmdshell 'dir 映射的盘符'
6.A服务器上做备份计划
SQL异地备份失败,归根结底是权限问题
如:
SQLServer备到FileServer上
那你的SQLServer的启动用户必须在FileServer上有足够的权限! --------------------^^^---------------------------------
1、SQLServer上新建一SQLUser用户权限大一点。
2、FileServer上建同一用户对某一文件夹有足够权限。
3、两机的SQLUser密码相同(方便一点)
4、将SQLServer改为SQLUser启动
(管理工具-->服务-->mssql项-->属性-->指定用户及密码)
5、\\ip\文件夹\ShareBak.Bak就可以了