`
flownclouds
  • 浏览: 27683 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

sql server 数据库的备份脚本(转)

 
阅读更多
由于工作需要我需要编写一个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
分享到:
评论

相关推荐

    Delphi SQL Server数据库备份程序_delphi_SQL_ServerDelphi_sqlserver_

    标题 "Delphi SQL Server数据库备份程序" 涉及到的是使用Delphi编程语言与Microsoft SQL Server数据库进行交互,特别是实现数据库的自动化备份功能。在IT领域,数据库备份是至关重要的,它保护了数据免受意外丢失或...

    Sql Server数据库自动全备份的脚本(带7z压缩)

    在SQL Server数据库管理中,定期备份是确保数据安全的关键步骤。本话题主要涉及如何使用脚本实现自动全备份,并结合7-Zip进行压缩,以节省存储空间和提高备份效率。以下将详细介绍相关知识点: 1. **SQL Server ...

    SQL Server自动备份脚本 bat

    "SQL Server自动备份脚本 bat" 提供了一种自动化解决方案,确保你可以按照预定的时间表执行数据库备份。下面将详细介绍如何利用SQL Server的T-SQL命令以及批处理(bat)文件来创建一个定时备份策略。 首先,`...

    SQLServer2008自动备份脚本

    这里我们将详细探讨如何使用SQL Server自带的`sqlcmd`工具以及如何创建一个自定义的备份脚本来实现这一功能。 首先,`sqlcmd`是一个命令行工具,允许用户在命令行界面执行Transact-SQL语句、系统存储过程和脚本。在...

    sqlserver备份数据库为脚本

    备份sqlserver数据库为txt,可远程 局域网连接, 导出建表脚本,存储过程脚本,数据脚本(视图等不会导出) 可批量导出,可导出数据量很大的数据库,会自动拆分为多个数据脚本,注意选择完整模式 tips:表要有主键,且主键...

    SQLSERVER2005数据库备份脚本.pdf

    在《SQLSERVER2005数据库备份脚本.pdf》文档中,主要介绍了如何利用T-SQL语句来实现对SQL Server 2005数据库的备份操作。通过分析文档中的内容,我们可以了解到该脚本主要用于自动化的数据库备份任务,具体涉及到了...

    批处理(bat)实现SQLServer数据库备份与还原

    ### 批处理(BAT)实现SQL Server数据库备份与还原 #### 一、概述 在日常的数据库维护工作中,定期对数据库进行备份是非常重要的一个环节,它能够帮助我们防止因硬件故障、软件错误或其他不可预见的情况导致的数据...

    Sqlserver2005数据库还原备份工具

    本文将深入探讨“Sqlserver2005数据库还原备份工具”以及相关的知识点。 首先,我们关注的是“备份”。在SQL Server 2005中,备份是预防数据丢失的关键步骤。备份操作可以创建数据库的完整副本,以便在系统故障、...

    sql server 2008数据库转sql server 2005数据库

    "sql server 2008数据库转sql server 2005数据库" 本文将详细介绍四种将 SQL Server 2008 数据库转换为 SQL Server 2005 数据库的方法。这些方法都是通过实践和总结得出的,旨在帮助读者快速、可靠地将 SQL Server ...

    SQL Server 数据库日常维护脚本 合集

    以下是一个完整的自定义备份脚本示例,展示了如何创建完整的数据库备份、差异备份和事务日志备份: ```sql -- 创建完整备份 USE Master; GO DECLARE @str VARCHAR(100); SET @str = 'D:\DBtext\jgj\DBABak\FullBak' ...

    备份SQLserver数据库脚本

    备份sqlserver数据库时候,虽然有自动备份的工具,但是并不保险,我们一般还会在进行物理备份,但这时候需要暂停SQLSERVER的服务,然后拷贝,最后在开启服务,这样是非常麻烦的,该脚本可以实现一键备份

    SQL SERVER数据库批量备份、恢复、附加工具

    在这个场景中,我们关注的是如何高效地对大量的SQL SERVER数据库执行批量备份、恢复和附加操作。以下是对这些核心概念的详细阐述。 首先,**批量备份**是数据库管理中的关键环节,尤其是在面对多个数据库时。SQL ...

    SQL_Server_2008维护计划实现数据库定时自动备份

    维护计划支持多种任务,如数据库备份、索引优化、统计信息更新等,且可通过SQL Server Agent按计划自动执行。 #### 实现数据库定时自动备份 在SQL Server 2008中,实现数据库定时自动备份主要依赖于两种方法:使用...

    sqlserver数据库备份与恢复

    在IT领域,SQL Server数据库备份与恢复是维护数据安全与业务连续性的重要环节。本文将深入探讨SQL Server数据库备份与恢复的关键概念、方法以及实践代码,帮助读者理解并掌握这一核心技能。 ### SQL Server数据库...

    SQL Server 备份永久脚本

    实现sqlserver自动备份, select @数据库文件大小=cast((convert (dec (15,2),sum(convert(bigint,case when status & 64 = 0 then size else 0 end))) + convert (dec (15,2),sum(convert(bigint,case when status ...

    VB实现SQL Server数据库备份恢复.rar_sql server 备份_vb sql_数据库备份_数据库管理

    标题中的“VB实现SQL Server数据库备份恢复”表明我们将关注如何使用VB编程语言来编写脚本或应用程序,以执行SQL Server的备份和恢复操作。VB是一种面向对象的编程语言,它提供了丰富的库和API,可以方便地与SQL ...

    SQL Server 数据库实现定时自动备份

    在IT行业中,数据库管理是至关重要的任务之一,...总之,定时自动备份是保障SQL Server数据库安全的重要手段。通过理解和掌握以上步骤,可以有效地实施并管理数据库的备份策略,确保数据在任何情况下都能得到妥善保护。

    sqlserver多数据库自启动定时备份工具批量执行脚本

    "sqlserver多数据库自启动定时备份工具批量执行脚本"是一种高效的方法,它允许管理员自动化备份多个数据库,特别是在系统启动时自动运行,以确保数据始终得到保护。这个解决方案尤其适用于那些包含大量关键数据和对...

    SQLServer数据库备份软件

    SQLServer数据库备份软件是针对微软的SQL Server数据库系统设计的一款专业工具,主要用于保障数据库的安全性和可靠性,通过定期或按需备份来防止数据丢失。在IT行业中,数据的重要性不言而喻,尤其是对于企业而言,...

Global site tag (gtag.js) - Google Analytics