Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > sql server 备份脚本(转自CU我爱臭豆腐 )
【标  题】:sql server 备份脚本(转自CU我爱臭豆腐 )
【关键字】:sql,server,CU
【来  源】:http://www.cublog.cn/u/5591/showart.php?id=167456

sql server 备份脚本(转自CU我爱臭豆腐 )

Your Ad Here
由于工作需要我需要编写一个sql server 数据库的备份脚本.需要实现的功能是:
1. 能根据计划进行数据库的完全备份/增量备份.
2. 将不同的备份内容存放在不同的备份设备上.(例如每天备份的内容单独存放在一个备份设备上).
3.将备份的内容在其他的机器上面保存一份.
在网络上找了一些资料但是大多数都没有人写过类似的东西.经过我两天的编写和测试现在终于搞定了.
实现的功能是:
1.将需要执行的脚本放到计划任务当中.根据需要调整运行的时间.
2.每次的备份内容生成单独的设备名称用日期文件名进行判断.
3.将备份完的内容ftp到其他计算机上.这样也算是搞一个小的"异地容灾"不至于在一个机器完蛋后.数据库的备份没有了.
下面就是这两个脚本的内容.欢迎大家提供意见也建议.
另外就是本人不负责任何运行这些脚本的后果.但是有任何技术问题欢迎交流.如果是在我有时间和我知道的前提下.
脚本分为两部分1个是完全备份的.另外一个是差异备份的.
@ECHO off
REM !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
REM Differential Backup sql server database
REM email:hao.wangbj@gmail.com
REM blog: http://wanghao.cublog.cn
REM Date :20060905
REM !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ECHO .
REM Backup Database Script Log Files
SET logdir=c:\1
if not exist %logdir%\nul mkdir %logdir%

REM B_SCRIPT_TARGET
SET B_SCRIPT_TARGET=c:\2
if not exist %B_SCRIPT_TARGET%\nul mkdir %B_SCRIPT_TARGET%

REM B_DataFiles_TARGET
SET B_DataFiles_TARGET=c:\3
if not exist %B_DataFiles_TARGET%\nul mkdir %B_DataFiles_TARGET%

REM Backup Database Name
SET B_Database_Name=testdb
SET B_DATE=%date:~0,4%%date:~5,2%%date:~8,2%
ECHO use master ;>%B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql
ECHO go >>%B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql
ECHO SP_ADDUMPDEVICE 'DISK',>>%B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql
ECHO 'BackupDatabase%B_Database_Name%file%B_DATE%Differential', >>%B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql
ECHO '%B_DataFiles_TARGET%\%B_Database_Name%%B_DATE%_Differential.bak'; >>%B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql
ECHO go >>%B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql
ECHO BACKUP DATABASE %B_Database_Name% >>%B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql
ECHO TO BackupDatabase%B_Database_Name%file%B_DATE%Differential >>%B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql
ECHO WITH  NOINIT ,  NOUNLOAD ,  DIFFERENTIAL ; >>%B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql
ECHO go >>%B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql
ECHO .

REM osql.exe path
SET OSQL_PATH=C:\Program Files\Microsoft SQL Server\80\Tools\Binn\

REM Database user name and password
SET DBUser=sa
SET DBpassword=sapassword
ECHO BACKUP DATABASE
"%OSQL_PATH%osql.exe" -U %DBUser% -P %DBpassword% -i %B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql -o %logdir%\backupdatabase%B_DATE%_Differential.log

REM FTP info
set FTP_User=administrator
set FTP_PW=adminpassword
set FTP_IP=127.0.0.1
set FTP_target=/database

ECHO %FTP_User%>%B_SCRIPT_TARGET%\FTP_CMD.txt
ECHO %FTP_PW%>>%B_SCRIPT_TARGET%\FTP_CMD.txt
ECHO bin>>%B_SCRIPT_TARGET%\FTP_CMD.txt
ECHO cd %FTP_target%>>%B_SCRIPT_TARGET%\FTP_CMD.txt
ECHO mput %B_DataFiles_TARGET%\%B_Database_Name%%B_DATE%_Differential.bak>>%B_SCRIPT_TARGET%\FTP_CMD.txt
ECHO BYE>>%B_SCRIPT_TARGET%\FTP_CMD.txt
ftp -i -s:%B_SCRIPT_TARGET%\FTP_CMD.txt %FTP_IP%

REM Delete Temp files
DEL /Q %B_SCRIPT_TARGET%\DIFFERENTIAL_backup.sql
DEL /Q %B_SCRIPT_TARGET%\FTP_CMD.txt


完全备份:
@ECHO off
REM !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
REM FULL backup sql server database
REM email:hao.wangbj@gmail.com
REM blog: http://wanghao.cublog.cn
REM Date :20060905
REM !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ECHO .
REM Backup Database Script Log Files
SET logdir=c:\1
if not exist %logdir%\nul mkdir %logdir%

REM B_SCRIPT_TARGET
SET B_SCRIPT_TARGET=c:\2
if not exist %B_SCRIPT_TARGET%\nul mkdir %B_SCRIPT_TARGET%

REM B_DataFiles_TARGET
SET B_DataFiles_TARGET=c:\3
if not exist %B_DataFiles_TARGET%\nul mkdir %B_DataFiles_TARGET%

REM Backup Database Name
SET B_Database_Name=testdb
SET B_DATE=%date:~0,4%%date:~5,2%%date:~8,2%
ECHO use master ;>%B_SCRIPT_TARGET%\FULL_backup.sql
ECHO go >>%B_SCRIPT_TARGET%\FULL_backup.sql
ECHO SP_ADDUMPDEVICE 'DISK',>>%B_SCRIPT_TARGET%\FULL_backup.sql
ECHO 'BackupDatabase%B_Database_Name%file%B_DATE%_FULL', >>%B_SCRIPT_TARGET%\FULL_backup.sql
ECHO '%B_DataFiles_TARGET%\%B_Database_Name%%B_DATE%_FULL.bak'; >>%B_SCRIPT_TARGET%\FULL_backup.sql
ECHO go >>%B_SCRIPT_TARGET%\FULL_backup.sql
ECHO BACKUP DATABASE %B_Database_Name% >>%B_SCRIPT_TARGET%\FULL_backup.sql
ECHO TO BackupDatabase%B_Database_Name%file%B_DATE%_FULL >>%B_SCRIPT_TARGET%\FULL_backup.sql
ECHO WITH  NOINIT ,  NOUNLOAD ;>>%B_SCRIPT_TARGET%\FULL_backup.sql
ECHO go >>%B_SCRIPT_TARGET%\FULL_backup.sql
ECHO .

REM osql.exe path
SET OSQL_PATH=C:\Program Files\Microsoft SQL Server\80\Tools\Binn\

REM Database user name and password
SET DBUser=sa
SET DBpassword=sapassword
ECHO BACKUP DATABASE
"%OSQL_PATH%osql.exe" -U %DBUser% -P %DBpassword% -i %B_SCRIPT_TARGET%\FULL_backup.sql -o %logdir%\backupdatabase%B_DATE%_Full.log

REM FTP info
set FTP_User=administrator
set FTP_PW=admin_password
set FTP_IP=127.0.0.1
set FTP_target=/database

ECHO %FTP_User%>%B_SCRIPT_TARGET%\FTP_CMD.txt
ECHO %FTP_PW%>>%B_SCRIPT_TARGET%\FTP_CMD.txt
ECHO bin>>%B_SCRIPT_TARGET%\FTP_CMD.txt
ECHO cd %FTP_target%>>%B_SCRIPT_TARGET%\FTP_CMD.txt
ECHO mput %B_DataFiles_TARGET%\%B_Database_Name%%B_DATE%_FULL.bak>>%B_SCRIPT_TARGET%\FTP_CMD.txt
ECHO BYE>>%B_SCRIPT_TARGET%\FTP_CMD.txt
ftp -i -s:%B_SCRIPT_TARGET%\FTP_CMD.txt %FTP_IP%

REM Delete Temp files
DEL /Q %B_SCRIPT_TARGET%\FULL_backup.sql
DEL /Q %B_SCRIPT_TARGET%\FTP_CMD.txt
2006年政府暨公共事业开源应用论坛(2006.9.15北京京都信苑饭店):【上一篇】
抛弃CVS,转投subversion:【下一篇】
【相关文章】
  • 取到Sql Server中某数据库中所有用户建的表的字段
  • sql server2000无法安装问题
  • 一起存入SQL数据库中的表
  • 复习J2SE连接SQL Server数据库小有收获
  • mysql使用指南
  • 初实现Java Web的三层架构(JSP+Servlet+JavaBean+SQL Server)
  • JIRA3.6.4 安装指南(POSTGRESQL8.1、MYSQL5、ORACLE10G+TOMCAT5.5.17、TOMCAT5.028)
  • 正确使用mysql + MFC的一个要注意问题
  • PHP4如何增加SQLITE扩展支持
  • sql中的字符类型(整理ing...)
  • 【随机文章】
  • 发现正规一点的程序都好复杂啊
  • HTTP 错误 403 - 禁止访问
  • 精通 CSS 滤镜(五)
  • EasyJF开源团队协同开发实用指南——CVS篇
  • 应该把字体作好后,在FLASH里打散
  • PHPmanager
  • 函数名称 FindFirst
  • 标题:在linux里连接E680i
  • C语言面试题大汇总,个人觉得还是比较全地!!! zz
  • 新安装vs2003和sql2005怪异的问题和需要注意的问题。
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.