15
2023
11
15:59:19

服务器异地备份共享⽂件夹⽅法,mssql数据库异地备份的两种

                           

服务器异地备份共享⽂件夹⽅法,mssql数据库异地备份的两种

⽅法

mssql数据库异地备份的两种⽅法

/*两种⽅法的前提:1.本地服务器的sqlserver agent服务保证处于启动状态

2.远程计算机(计算机管理⾥)建⽴⼀个普通权限⽤户,并为其加上密码(例如⽤户名为sa,密码为1234),

同时在那台机器的⾮系统盘⾥建⼀个名为backup的共享⽂件夹,为了安全另外设置这个⽂件夹只有这个sa⽤户可以访问

(需要ntfs格式才可以设置安全)*/

-----------------------------------------------------------------------------------------------------------------------

--⽅法1:⽤“job(作业)”做

declare @sql varchar(500)

select @sql='\\10.2.0.12\backup\dbname'+'_db_'+convert(varchar(10),getdate(),112) +

substring(convert(varchar(10),getdate(),108),1,2) +'.bak'

exec master..xp_cmdshell 'net use \\10.2.0.12\backup 1234 /user:remotehost\sa

backup database dbname to disk=@sql --备份数据库,这⾥的10.2.0.12为远程计算机的ip,backup为共享⽂件夹名,

dbname为本地sqlserver服务器要备份的数据库,remotehost为远程计算机的计算机名,1234为密码,sa⽤户名,请相应替换成实际环境的数据

go

declare @sql varchar(500)

select @sql='del '+'\\10.2.0.12\backup\dbname'+'_db_'+convert(varchar(10),dateadd(day,-7,getdate()),112) +

substring(convert(varchar(10),dateadd(day,-7,getdate()),108),1,2) +'.bak'

exec master..xp_cmdshell @sql --删除7天前的备份,也就是只保留7个最新备份

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就可以了




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/4542.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: