SQL Server数据库备份(异机)
程序员文章站
2024-02-06 14:08:46
...
简单的远程异机备份数据库功能,通过这个存储过程,讲远程其他机器上的数据库备份到本地。其主要原理为: 1.通过XP_CMDSHELL执行Windows命令,将本机的共享目录映射为远程机器的网络驱动器。 2.通过SQL脚本将数据库备份到网络驱动器中。 3.通过XP_CMDSHELL执
简单的远程异机备份数据库功能,通过这个存储过程,讲远程其他机器上的数据库备份到本地。其主要原理为:
1.通过XP_CMDSHELL执行Windows命令,将本机的共享目录映射为远程机器的网络驱动器。
2.通过SQL脚本将数据库备份到网络驱动器中。
3.通过XP_CMDSHELL执行命令删除映射的网络驱动器。
使用的时候注意开启XP_CMDSHELL配置(见存储过程注释部分)。
/****************************************************************************************************** ** 功能:远程异机备份数据库 ** 作者:Danny,Li ** 日期:2013-09-04 ** --------------------------------------------------------------------------------------------------- ** eg:EXEC [proc_RemoteBackupDB] 'DataBaseName','\\DannyPc\ShareFolder','domain\danny','123456' ** *******************************************************************************************************/ CREATE PROCEDURE [dbo].[proc_RemoteBackupDB] @databaseName varchar(50), -- 需要备份的数据库名称 @shareFolderPath varchar(250), -- 共享目录路径(如:\\DannyPc\ShareFolder) @shareFolderAccount varchar(50), -- 共享目录读写权限帐户名(如:domain\danny) @shareFolderPassword varchar(50) -- 共享目录读写权限帐户密码 AS BEGIN -- 启用 XP_CMDSHELL 配置 --SP_CONFIGURE 'SHOW ADVANCED OPTIONS', 1 --RECONFIGURE --GO --SP_CONFIGURE 'XP_CMDSHELL', 1 --RECONFIGURE --GO DECLARE @sqlStr VARCHAR(1000); -- 映射网络驱动器 SET @sqlStr = 'EXEC MASTER..XP_CMDSHELL ''NET USE L: '+ @shareFolderPath +' "'+ @shareFolderPassword +'" /USER:'+ @shareFolderAccount +''';'; -- 备份数据库 DECLARE @BackupFile VARCHAR(200); SET @BackupFile = @databaseName + CONVERT(VARCHAR(100), GETDATE(), 12) + '.BAK'; SET @sqlStr = @sqlStr + ' BACKUP DATABASE '+ @databaseName +' TO DISK = ''L:\'+ @BackupFile +''' WITH INIT;'; -- 删除网络驱动器映射 SET @sqlStr = @sqlStr + ' EXEC MASTER..XP_CMDSHELL ''NET USE L: /DELETE'';'; -- 执行SQL语句 PRINT(@sqlStr); EXEC(@sqlStr); END
推荐阅读
-
SQL Server数据库备份(异机)
-
sql server replace 批量替换数据库中指定字段内容
-
SQL Server数据库之数据库列表介绍
-
MS SQL Server分析数据库的I/O性能 sql serverJVM
-
SQL - 配置SQLServer 使其可以远程访问 博客分类: 【5】、数据库【56】、数据库--sqlserver sql server
-
SQL Server 2008 导入.mdf文件时遇 (数据库 的版本为 661,此服
-
如何10分钟掌握SQL Server数据库? sql server
-
PHP怎样连接Sql Server数据库
-
SQL SERVER 2 数据库实现
-
sql server:删除表数据,标识列Id从1开始 博客分类: sqlserver@数据库 sql server