SQLServer数据库远程备份

公司考虑到数据的安全性,除了在数据库服务器本地做备份外,要求弄个异地备份,也就是将服务器上的数据库定时备份到另外指定的服务器上。
我就考虑使用定时任务来完成这个异地备份要求。

一,备份服务器端
1.在备份服务器上空出一个磁盘,用来存放备份数据。例如G盘;
2.在该磁盘里建个文件夹用于存放备份文件,并将文件夹设置为共享
(如将G盘,DB_BC设置为共享)
SQLServer数据库远程备份
设置共享用户,这里指定sqladmin用户(后面会用到这个用户)
SQLServer数据库远程备份
二.数据库服务器端
在数据库服务器上新建一个作业,来执行如下远程备份语句

--打开允许执行xp_cmdshell 
	EXEC sp_configure 'xp_cmdshell',1

	exec master..xp_cmdshell 'net use \\10.11.12.13\DB_BC password /user:10.11.12.13\username'

	backup database xxx to disk='\\10.11.12.13\DB_BC\BC.bak' with init

	exec master..xp_cmdshell 'net use \\10.11.12.13\DB_BC /delete'

	--关闭允许执行xp_cmdshell 
	EXEC sp_configure'xp_cmdshell', 0

	--关闭多用户连接  在cmd执行 net use*/del/y

其中:
10.11.12.13-----是备份服务器的 IP地址;
DB_BC----------是在备份服务器上设置了共享用于存放备份文件的文件夹名称
username,password-----指的是能登陆服务器的用户名和密码(设置共享文件是必须指定这个用户,如sqladmin)
xxx--------------是要备份的数据库名称
BC.bak----------是备份后文件名

正常情况下,如上操作就能完成远程备份功能了。

如果执行远程备份报错 可以尝试排查以下情况:
1.xp_cmdshell是不是没有开启
SQLServer数据库远程备份
2.任务所有者与当前用户不统一,则改为统一
SQLServer数据库远程备份
SQLServer数据库远程备份

上一篇:mysql数据库时间类型datetime、bigint、timestamp的查询效率比较


下一篇:Mysql 权限管理