SQL如何备份到异机(远程?应该是一个道理.)
写成存储过程,建立作业定时备份~~~
--在sql中映射一下就可以了
exec master..xp_cmdshell 'net use z: \\yizhi\D$ "密码 " /user:yizhi\administrator '
/*--说明:
exec master..xp_cmdshell 'net use z: \\xz\c$ "密码 " /user:xz\administrator '
z:是映射网络路径对应本机的盘符,与下面的备份对应
\\xz\c$是要映射的网络路径
xz\administrator
xz是远程的计算机名,
administrator是登陆的用户名
密码 面指定的administrator用户的密码
--*/
--备份;with init覆盖|noinit添加
backup database 库名 to disk= 'E:\H_BACKUP.bak ' with init
--COPY
exec master..xp_cmdshell 'copy E:\H_BACKUP.bak z: '
--删除(这句可以去掉)
--exec master..xp_cmdshell 'del E:\H_BACKUP.bak '
--完成后删除映射
exec master..xp_cmdshell 'net use z: /delete '
--------------------------------------------------------------------------------------------------------
USE master
EXEC sp_addumpdevice 'disk', 'MyNwind_2', 'c:\mssql7\backup\MyNwind_2.dat'
-- 2. Back up the full MyNwind database.
BACKUP DATABASE MyNwind TO MyNwind_2
--备份数据库的日志---------------------------------------------------------------
--1. Create the log backup device.
USE master
EXEC sp_addumpdevice 'disk', 'MyNwindLog1', 'c:\mssql7\backup\MyNwindLog1.dat'
--2. Update activity has occurred before this point. Back up the log of the MyNwind database.
BACKUP LOG MyNwind TO MyNwindLog1
-------
try
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('backup database pubs');
AdoQuery1.SQL.Add('to disk='+''''+edtPath.Text+'''');
AdoQuery1.ExecSQL;
except
ShowMessage('备份数据库失败!');
exit;
end;
-----------------------------------------------------------------------------------------------------------------------------
create proc spDBBackUNC @DBName varchar(20),@Path nvarchar(50)
As
declare @fname varchar(100),@fname1 varchar(100),@sql varchar(200)
set @fname = @Path +(case when right(@Path,1) <> '\ ' then '\ ' else ' ' end)
+@DBName+ '_ '+convert(char(8),getdate(),112)+ '_ '+replace(convert(char(8),getdate(),108), ': ', ' ')+ '.bak '
set @sql = 'backup database '+@DBName+ ' to disk = ' ' ' +@fname+ ' ' ' '
exec(@sql)
--print @sql
go
/* 异地备份数据库: 将远程路径使用net Use映射到本地来备份.需要使用:xp_cmdshell
@DBName 需备份的数据库名
@Path 备份文件存放路径,可以是本机路径或网络上的路径(需完全权限共享)
Usage:
Exec spDBBackUNC 'DB_Name ', '\\UNC\shareName '
*/
------------------------------------------------------------------------------------------------------------------------
create table t ( uid varchar(100), dgrade varchar(100)) insert into t
--在sql中映射一下就可以了 exec master..xp_cmdshell 'net use z: \\yizhi\D$ "密码 " /user:yizhi\administrator '
/*--说明: exec master..xp_cmdshell 'net use z: \\xz\c$ "密码 " /user:xz\administrator '
z:是映射网络路径对应本机的盘符,与下面的备份对应 \\xz\c$是要映射的网络路径
xz\administrator xz是远程的计算机名,
administrator是登陆的用户名密码 面指定的administrator用户的密码
--*/ --备份;with init覆盖|noinit添加
backup database 库名 to disk= 'E:\H_BACKUP.bak ' with init
--COPY
exec master..xp_cmdshell 'copy E:\H_BACKUP.bak z: '
--删除(这句可以去掉)
--exec master..xp_cmdshell 'del E:\H_BACKUP.bak '
--完成后删除映射 exec master..xp_cmdshell 'net use z: /delete '
转载于:https://www.cnblogs.com/jiania1224/archive/2008/07/07/1237410.html