自动备份mssql server数据库并压缩的批处理脚本
在Windows环境下,使用mssql命令行工具sqlcmd进行数据库备份,并通过调用rar进行压缩,无需依赖mssql的“维护计划”功能,有效规避权限问题。以下是详细步骤及代码:
设定备份文件夹为F:\backup\,所有备份文件将存放于此目录。若每个数据库有自己的子目录,则将此子目录设为同名数据库名(脚本可自动创建)。通过参数设置,可选择是否将数据库备份文件放置于子目录中。默认每个数据库备份文件名包含时间戳,确保不会与已存在的文件重名,便于管理。
具体执行备份操作的步骤如下:
一、开启命令行界面,输入以下代码设置日期和时间的变量:
```bash
@ECHO ON
set d=%date:~0,10%
set d=%d:-=%
set t=%time:~0,8%
set t=%t::=%
```
二、定义包含日期和时间的备份时间戳,设置备份文件夹路径。根据需求选择是否按子目录保存备份文件:
```bash
set stamp=%p%%d%%t%
set bakupfolder=F:\backup\
rem 选择是否按子目录保存备份文件(1为是,0为否)
set lay_in_subfolder=1
```
三、调用备份函数对每个数据库进行备份。此例中以对数据库foo、foo2、foo3、foo4的备份为例:
```bash
call :backupone foo
call :backupone foo2
call :backupone foo3
call :backupone foo4
```
四、定义备份函数,包括创建数据库备份、检查子目录设置、执行备份命令和压缩备份文件等步骤:
```bash
:backupone
setlocal
echo %1
set dbname=%1
if not exist %bakupfolder%%dbname% mkdir %bakupfolder%%dbname%
if %lay_in_subfolder%==1 (
set subfolder=%dbname%\ )else set subfolder=
rem 执行备份命令并创建备份文件,使用sqlcmd命令进行数据库备份操作。
sqlcmd -U sa -P "sa" -S localhost -Q "backup database %dbname% to disk='%bakupfolder%%subfolder%%dbname%%stamp%.bak'"
"C:\Program Files\WinRAR\RAR.exe" a -ep1 -r -o+ -m5 -s -df "%bakupfolder%%subfolder%%dbname%%stamp%.rar" "%bakupfolder%%subfolder%%dbname%%stamp%.bak"
endlocal&goto :EOF
```
关闭命令行界面并结束操作。这样,就可以在不使用mssql的“维护计划”功能的情况下,通过命令行工具sqlcmd进行数据库备份并调用rar进行压缩了。同时避免了权限问题,确保备份过程顺利进行。
编程语言
- 自动备份mssql server数据库并压缩的批处理脚本
- js正则表达式验证密码强度【推荐】
- windows下更新npm和node的方法
- 解决asp.net上传文件超过了最大请求长度的问题
- php时间函数用法分析
- PHP上传 找不到临时文件夹的解决方法
- Vue-component全局注册实例
- 基于jquery实现最简单的选项卡切换效果
- 使用NotePad++录制宏功能如何快速将sql搜索条件加
- html清除浮动的6种方法示例
- WordPress中自定义后台管理界面配色方案的小技巧
- web.config使用方法指南
- 详解Spring mvc ant path的使用方法
- php实现删除指定目录下相关文件的方法
- 常用的Javascript数据验证插件
- 正则表达式去除中括号(符号)及里面包含的内