Sql Server远程备份数据库方式一(合集)

Posted 九日之阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql Server远程备份数据库方式一(合集)相关的知识,希望对你有一定的参考价值。

--注意:异地备份数据库,需要先开启备份文件夹的网络共享,数据库选择master

技术图片
--打开允许执行xp_cmdshell 
EXEC sp_configure xp_cmdshell,1

exec master..xp_cmdshell net use 192.168.0.139DatabaseBackup password /user:192.168.0.139administrator

backup database myDatabase to disk=192.168.0.139DatabaseBackupmyDatabase_04_05.bak with init

exec master..xp_cmdshell net use 192.168.0.139DatabaseBackup /delete

--关闭允许执行xp_cmdshell
EXEC sp_configurexp_cmdshell, 0

技术图片

 

 

如果提示无权限错误,请先执行以下脚本,注意数据库要选master

EXEC sp_configure show advanced options, 1
GO
RECONFIGURE WITH OVERRIDE
GO

 

备份数据库存储过程

技术图片
USE [master]
GO
/****** Object:  StoredProcedure [dbo].[Pr_BackupDatabase]    Script Date: 04/05/2014 21:23:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:         王再华
-- Create date:    2014.04.05
-- Description:    备份数据库服务器的所有数据库到映射文件夹
-- =============================================
ALTER PROCEDURE [dbo].[Pr_BackupDatabase]

AS
BEGIN
SET NOCOUNT ON;

declare @TargetIP varchar(20)
declare @backup varchar(20)
declare @username varchar(20)
declare @password varchar(20)

set @TargetIP=192.168.1.139 --要备份到的服务器IP地址
set @backup=‘myDatabase --共享文件夹
set @username=administrator --用户名
set @password=password--密码

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

declare @sql1 varchar(2000)
set @sql1=master..xp_cmdshell ‘‘net use +@TargetIP+</span>+@backup+ +@password+ /user:+@TargetIP+</span>+@username+‘‘‘‘
--2.建立共享关系 exec master..xp_cmdshell ‘net use 192.168.0.139DatabaseBackup password /user:192.168.0.139administrator‘
exec(@sql1)

declare @sql varchar(2000)

/************************** 循环备份数据库 START **************************/

declare my_cursor cursor scroll dynamic
for
select name from sysdatabases

open my_cursor
declare @name sysname
fetch next from my_cursor into @name
while(@@fetch_status=0)
begin
if(@name<>master and @name<>model and @name<>msdb and @name<>tempdb and @name<>ReportServer and @name<>ReportServerTempDB)
begin
--3.执行备份
--backup database myDatabase to disk=‘192.168.0.139DatabaseBackupmyDatabase_04_05.bak‘ with init
set @sql=backup database +@name+ to disk=‘‘+@TargetIP+</span>+@backup+</span>+@name+_+CONVERT(varchar(100), GETDATE(), 23)+.bak‘‘ with init
exec(@sql)
end
fetch next from my_cursor into @name
end
fetch first from my_cursor into @name

close my_cursor
deallocate my_cursor

/************************** 循环备份数据库 END **************************/
declare @sql2 varchar(2000)
set @sql2=master..xp_cmdshell ‘‘net use +@TargetIP+</span>+@backup+ /delete‘‘‘
--4.删除共享关系 exec master..xp_cmdshell ‘net use 192.168.1.222ackup /delete‘
exec(@sql2)

--5.关闭允许执行xp_cmdshell
EXEC sp_configurexp_cmdshell, 0

END

技术图片

 




































以上是关于Sql Server远程备份数据库方式一(合集)的主要内容,如果未能解决你的问题,请参考以下文章

Sql Server远程还原

SQL SERVER2008远程备份数据库到本地

如何备份sqlserver数据

小企业sql server数据备份shell脚本解决方案

C# SQL Server 将远程数据库备份到远程默认备份位置而不直接访问远程位置?

如何远程把sql server中的数据导入到本地sql server中?