oracle 定期备份 + 压缩 批处理.bat文件
2012-03-27 10:25
225 查看
@echo off
rem ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
rem ┣----------------------提示:-----------------------------------┫
rem ┣--该批处理为数据库备份操作文件.-------------------------------┫
rem ┣--由于sqlserver自带备份策略,无需使用批处理.-------------------┫
rem ┣--所以对应数据库类型仅包涵oracle,mysql两种.-------------------┫
rem ┣--存放目录格式如d:\backup\crmnew------------------------------┫
rem ┣--盘符下一级为总目录的文件夹名例如backup----------------------┫
rem ┣--二级为使用该数据库的项目名称例如crmnew----------------------┫
rem ┣--执行环境为windows server 2003-------------------------------┫
rem ┣--编写者:CWCA-ly-2011-7-25------------------------------------┫
rem ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
rem ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
rem ----------------------初始设置项----------------------------
rem 设置项目库备份文件总目录-无需手动创建
set bak_dir=D:\DATA_BACK
rem 选择备份数据所使用的压缩软件
set compressFile="C:\Program Files\WinRAR\Rar.exe"
rem 设置数据库的类型,目前包含oracle和mysql
set db_type=oracle
rem 设置登陆目的数据库的标识,oracle为sid,mysql为库名
set db_name=orcl
rem 设置登陆目的数据库的用户名
set db_user=xxxx
rem 设置登陆目的数据库的用户密码
set db_pwd=xxxx
rem 设置备份周期,1为按天备份,7为按周备份,其它数字无效,与任务计划里的运行周期可并存。
set bak_cycle=1
rem 设置每个备份文件的保留天数,为0则表示不删除历史文件
set keep_days=30
rem ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
rem ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
rem ----------------------可选设置项----------------------------
rem 获取当天为星期几
set pweek=%date:~-1%
rem 设置单个备份文件名-此处按日期命名-例:20110101 -建议不要更改
set bakfilename=%Date:~0,4%%Date:~5,2%%Date:~8,2%
rem ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
rem ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
rem ----------------------------------------执行代码区域------------------------------------
if not exist %bak_dir% mkdir %bak_dir%
set filesuffix=
if %db_type% equ oracle set filesuffix=dmp
if %db_type% equ mysql set filesuffix=sql
if %bak_cycle% equ 7 (
if %pweek% equ 日 goto backup
goto end
)
if %bak_cycle% equ 1 goto backup
goto end
:backup
if %db_type% equ oracle goto backup_oracle
if %db_type% equ mysql goto backup_mysql
goto end
:backup_oracle
exp %db_user%/%db_pwd%@%db_name% file=%bak_dir%%bakfilename%.%filesuffix%
goto compress
:backup_mysql
mysqldump -u%db_user% -p%db_pwd% %db_name% > %bak_dir%%bakfilename%.%filesuffix%
goto compress
:compress
%compressFile% a %bak_dir%%bakfilename%.rar %bak_dir%%bakfilename%.*
goto delete_source
:delete_source
del %bak_dir%%bakfilename%.%filesuffix%
goto delete_history
:delete_history
if %keep_days% neq 0 forfiles /p %bak_dir% /d -%keep_days% /c "cmd /c echo deleting @file ... && del /f @path"
goto end
:end
set bak_dir=
set compressFile=
set db_type=
set db_name=
set db_user=
set db_pwd=
set bak_cycle=
set keep_days=
set pweek=
set bakfilename=
set filesuffix=
rem ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
注:将以上代码拷贝到.txt文件中,另存为.bat,新建windows任务定时执行该文件即可!
rem ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
rem ┣----------------------提示:-----------------------------------┫
rem ┣--该批处理为数据库备份操作文件.-------------------------------┫
rem ┣--由于sqlserver自带备份策略,无需使用批处理.-------------------┫
rem ┣--所以对应数据库类型仅包涵oracle,mysql两种.-------------------┫
rem ┣--存放目录格式如d:\backup\crmnew------------------------------┫
rem ┣--盘符下一级为总目录的文件夹名例如backup----------------------┫
rem ┣--二级为使用该数据库的项目名称例如crmnew----------------------┫
rem ┣--执行环境为windows server 2003-------------------------------┫
rem ┣--编写者:CWCA-ly-2011-7-25------------------------------------┫
rem ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
rem ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
rem ----------------------初始设置项----------------------------
rem 设置项目库备份文件总目录-无需手动创建
set bak_dir=D:\DATA_BACK
rem 选择备份数据所使用的压缩软件
set compressFile="C:\Program Files\WinRAR\Rar.exe"
rem 设置数据库的类型,目前包含oracle和mysql
set db_type=oracle
rem 设置登陆目的数据库的标识,oracle为sid,mysql为库名
set db_name=orcl
rem 设置登陆目的数据库的用户名
set db_user=xxxx
rem 设置登陆目的数据库的用户密码
set db_pwd=xxxx
rem 设置备份周期,1为按天备份,7为按周备份,其它数字无效,与任务计划里的运行周期可并存。
set bak_cycle=1
rem 设置每个备份文件的保留天数,为0则表示不删除历史文件
set keep_days=30
rem ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
rem ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
rem ----------------------可选设置项----------------------------
rem 获取当天为星期几
set pweek=%date:~-1%
rem 设置单个备份文件名-此处按日期命名-例:20110101 -建议不要更改
set bakfilename=%Date:~0,4%%Date:~5,2%%Date:~8,2%
rem ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
rem ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
rem ----------------------------------------执行代码区域------------------------------------
if not exist %bak_dir% mkdir %bak_dir%
set filesuffix=
if %db_type% equ oracle set filesuffix=dmp
if %db_type% equ mysql set filesuffix=sql
if %bak_cycle% equ 7 (
if %pweek% equ 日 goto backup
goto end
)
if %bak_cycle% equ 1 goto backup
goto end
:backup
if %db_type% equ oracle goto backup_oracle
if %db_type% equ mysql goto backup_mysql
goto end
:backup_oracle
exp %db_user%/%db_pwd%@%db_name% file=%bak_dir%%bakfilename%.%filesuffix%
goto compress
:backup_mysql
mysqldump -u%db_user% -p%db_pwd% %db_name% > %bak_dir%%bakfilename%.%filesuffix%
goto compress
:compress
%compressFile% a %bak_dir%%bakfilename%.rar %bak_dir%%bakfilename%.*
goto delete_source
:delete_source
del %bak_dir%%bakfilename%.%filesuffix%
goto delete_history
:delete_history
if %keep_days% neq 0 forfiles /p %bak_dir% /d -%keep_days% /c "cmd /c echo deleting @file ... && del /f @path"
goto end
:end
set bak_dir=
set compressFile=
set db_type=
set db_name=
set db_user=
set db_pwd=
set bak_cycle=
set keep_days=
set pweek=
set bakfilename=
set filesuffix=
rem ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
注:将以上代码拷贝到.txt文件中,另存为.bat,新建windows任务定时执行该文件即可!
相关文章推荐
- [bat批处理文件] 压缩备份
- [bat批处理文件] 压缩备份
- [bat批处理文件] 压缩备份
- mysql定期备份数据并压缩上传到ftp服务器的bat文件脚本,恢复建议使用SQLyog enterprise
- win7快捷开启oracle服务的批处理.bat文件
- oracle利用批处理文件执行SQL语句,bat连接oracle数据库并执行语句
- 使用批处理自动备份并压缩Oracle数据
- SQL数据库备份文件自动压缩,bat
- bat自动备份压缩文件
- Windows中启动和关闭Oracle服务的x.bat批处理文件
- 使用bat批处理方式定期备份和定期删除oracle备份文件
- Windows中启动和关闭Oracle服务的x.bat批处理文件
- bat批处理文件执行Oracle sql语句
- 压缩指定SQL文件并删除N天前的压缩备份文件BAT
- oracle自动备份并打包成压缩文件的脚步------绝对非常实用,window中添加定时任务就可自动备份了
- 12c Oracle 定期验证备份文件
- 启动oracle的bat(批处理)文件
- 批处理(bat文件)自动启动/关闭oracle服务
- dos.bat 批处理文件的应用——批量压缩
- oracle 备份在windows中使用批处理文件