SQL Server 2008 网络备份数据库

    一台SQL Server的磁盘空间不够备份,想做日志传送,无法实现,在网上找了一个方法

      原文URL:

             http://blog.sina.com.cn/s/blog_4c8f1ac20100rz7z.html

     

 

        sp_configure 'show advanced options'1;
        GO
        RECONFIGURE;
        GO
        sp_configure 'xp_cmdshell'1;
        GO
        RECONFIGURE;
        GO
        sp_configure 'show advanced options'0;
        GO
        RECONFIGURE;
        GO 
        
       远程访问权限: exec master..xp_cmdshell 'net use \\10.96.78.170\tool 登陆密码 /user:10.96.78.170\登陆用户'      

       删除访问权限: exec master..xp_cmdshell'net use \\svctag-65c883x\SH_Log /delete'
       declare @filename nvarchar(100),--文件名
       @NowDay   int  --设置时间
       set @filename='\\10.96.78.170\tool\'+convert(char(8),getdate(),112)+'.bak'  --文件路径及文件名
       Set @NowDay=Day(GetDate())
       begin
         BACKUP DATABASE INDB TO DISK = @filename WITH INIT,NOUNLOAD,NAME=N'i数据备份',NOSKIP,STATS=10,NOFORMAT
       end

 

   提示:

     碰到 net报1219错误,原来做过共享网络磁盘,后面一直加不上。删除也删除不了。

     后来执行 exec master..xp_cmdshell 'net use x: /del'    删除映射的x盘,其他盘类推

     就可以了 

      

create procedure [dbo].[BackupData_Day] as
declare
 @filename nvarchar(200),--新文件名
 @oldfilename nvarchar(200),--旧文件名
 @NowDay   int  --设置时间
 --今天备份文件路径及文件名
 set @filename='D:\Db_Backup\Backup_day\DB_'+convert(char(8),getdate(),112)+'.bak' 
 --要删除旧文件路径及文件名
 set @oldfilename='D:\Db_Backup\Backup_day\DB_'+convert(char(8),getdate()-5,112)+'.bak' 
 Set @NowDay=Day(GetDate())
  begin
   print @filename BACKUP DATABASE DB TO DISK = @filename WITH INIT,NOUNLOAD,NAME=N'DB数据备份',
   NOSKIP,COMPRESSION,CHECKSUM,STATS=10,NOFORMAT
  end
   EXECUTE master.dbo.xp_delete_file 0, @oldfilename ;

  

posted @ 2011-11-04 14:03  zping  阅读(1336)  评论(0编辑  收藏  举报