ITPub博客

首页 > IT职业 > IT生活 > 备份SQL Server数据库

备份SQL Server数据库

IT生活 作者:rom 时间:2021-09-09 09:46:38 0 删除 编辑

网站搬迁之后,备份数据库的功能出错了,原因是原来数据库与网站同一台服务器,现在是数据库与网站分别在不同服务器,引起在备分时,找不到路径或是没有权限存储。

图片描述

 

最初版本的存储过程:

代码

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[usp_Backup_DataBase]
(
@BackupDataBaseName varchar(128),
@FileName nvarchar(1000)
)
AS
BACKUP DATABASE @BackupDataBaseName TO DISK = @FileName
IF @@ERROR 0
BEGIN
    RAISERROR(N'数据库备份失败!',16,1)
    RETURN
END

  

更新后的存储过程:

代码

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[usp_Backup_DataBase]
(
    @BackupDataBaseName varchar(128),
    @FileName nvarchar(128)
)
AS
DECLARE @BKFULLPATH NVARCHAR(1000)

--get SQL server Default Backup path
--reference:http://www.cnblogs.com/insus/articles/1914932.html
SELECT @BKFULLPATH = [dbo].[udf_SQLServerBackupDirectory]() + '' + @FileName
BACKUP DATABASE @BackupDataBaseName TO DISK = @BKFULLPATH WITH INIT


DECLARE @MapString NVARCHAR(1000)

 

SET @MapString = 'NET USE L: "\192.168.0.37E$" "password" "/USER:192.168.0.37administrator"'
EXECUTE master..xp_cmdshell @MapString

--把备份文件拷贝至映射路径中
DECLARE @CopyString NVARCHAR(1000) = 'COPY "' + @BKFULLPATH + '" L:'
EXECUTE master..xp_cmdshell @CopyString

--删除备份文件
DECLARE @OrgBkFileString NVARCHAR(1000) = 'DEL "' + @BKFULLPATH + '"'
EXECUTE master..xp_cmdshell @OrgBkFileString

--删除映射路径
EXECUTE master..xp_cmdshell 'NET USE L: /DELETE'


IF @@ERROR  0
BEGIN
    RAISERROR(N'数据库备份失败!',16,1)
    RETURN
END

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4347/viewspace-2812118/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-12

  • 博文量
    0
  • 访问量
    331