SQL Server 自动备份脚本

 

以下脚本执行 SQL Server 中某一数据库全备份,并将备份文件传至另一机器。备份文件命名规则:数据库名_时间戳.BAK。

执行环境 windows 2003 server SQL Server 2000

源代码:

 

@ECHO   off

REM 
Backup   Database  Script  Log  Files
SET  dbbak_dir = e:testdbbak
if   not  exist  % dbbak_dir %  mkdir  % dbbak_dir %

REM 
Backup   Database  Name 
SET  B_Database_Name = db1
SET  B_DATE =% date: ~ 0 , 4 %% date: ~ 5 , 2 %% date: ~ 8 , 2 %
ECHO 
use  master ; >% dbbak_dir % FULL_backup.sql
ECHO 
go   >>% dbbak_dir % FULL_backup.sql
rem ECHO SP_ADDUMPDEVICE 
' DISK ' , >>% dbbak_dir % FULL_backup.sql
rem ECHO 
' %B_Database_Name%_%B_DATE%_FULL ' >>% dbbak_dir % FULL_backup.sql
rem ECHO 
' %dbbak_dir%%B_Database_Name%_%B_DATE%_FULL.bak ' >>% dbbak_dir % FULL_backup.sql
rem ECHO 
go   >>% dbbak_dir % FULL_backup.sql
ECHO 
BACKUP   DATABASE   % B_Database_Name %   >>% dbbak_dir % FULL_backup.sql
ECHO 
TO   DISK   =   ' %dbbak_dir%%B_Database_Name%_%B_DATE%_FULL.bak '   >>% dbbak_dir % FULL_backup.sql
ECHO 
WITH  INIT , NOUNLOAD ; >>% dbbak_dir % FULL_backup.sql
ECHO 
go   >>% dbbak_dir % FULL_backup.sql
ECHO .

REM osql.exe path 
SET  OSQL_PATH = C:Program FilesMicrosoft SQL Server80ToolsBinn

REM 
Database   user  name  and  password
SET  DBUser = sa
SET  DBpassword = passwd
ECHO 
BACKUP   DATABASE  
"
% OSQL_PATH % osql.exe"  - % DBUser %   - % DBpassword %   - % dbbak_dir % FULL_backup.sql  - % dbbak_dir %% B_Database_Name % _ % B_DATE % _ FULL . log


REM FTP info 
set  FTP_User = user1
set  FTP_PW = passwd
set  FTP_IP = 10.1 . 9.1
set  FTP_PORT = 21
set  FTP_DIR =/ home / dbbak

SET  NCFTP_PATH = D:Program FilesNcFTP
"
% NCFTP_PATH % ncftpput.exe"  - % FTP_User %   - % FTP_PW %   - % FTP_PORT %   % FTP_IP %   % FTP_DIR %   % dbbak_dir %% B_Database_Name % _ % B_DATE % _ FULL . *

REM 
Delete  old  backup  files
FORFILES 
/ % dbbak_dir %   / - 7   - % B_Database_Name %* .bak  / C "cmd  / c del  @file "
FORFILES 
/ % dbbak_dir %   / - 7   - % B_Database_Name %* . log   / C "cmd  / c del  @file "

REM 
Delete   Temp  files
DEL 
/ % dbbak_dir % FULL_backup.sql

说明:
1. 为避免 Windows 自带 FTP Client 的 PORT、PASV问题,使用 ncftp client
2. 保留最新 7 天的备份,使用 Resource kit 里的命令 FORFILES 删除老备份文件
3. ftp 目的机器是一个 linux 系统,用下面的 shell 脚本删除老备份文件

# ! / bin / sh

cd   / home / dbbak /
if  [[ -s mm_db_` date   + %Y%m%d`* . BAK ]]
then
# echo   " not 0 "
    
find   .  -mtime  + 7  | xargs rm
fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值