这是最近写的一个Oracle数据库自动备份的批处理,经过测试正常运行,记录如下。包括两部分,逻辑备份和冷备份,如有不完整之处,还往看到本文的高手指导!

注:这些内容是本人经过一番学习和多次测试调试后的结果,如果想转载,请以连接的形式,谢谢合作!

第一部分,逻辑备份

下面是:AutoBackup_Logic.bat

--逻辑备份的主文件,直接在计划任务中调用就可以了。

@echo off

rem

rem 需要配置的参数说明:

rem BAT_HOME:即本批处理所在的目录;

rem DUMP_DIR:即要备份到的数据文件目录,存在与数据字典表:dba_directories 中。

rem

set BAT_HOME=E:\BAT

set DUMP_DIR=E:\Temp\DBBackup

set BKFILE=%Date:~0,4%%Date:~5,2%%Date:~8,2%

set HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2%

call %BAT_HOME%\LogicBackup.bat

%DUMP_DIR%

>%BAT_HOME%\LogicBackup_%BKFILE%%HHMMSS%.log

echo Completed!

下面是:LogicBackup.bat

@echo off

rem call LogicBackup.bat

%DUMP_DIR%

rem

==========================================================================================

rem 本批处理实现支持expdp数据泵的Oracle数据库版本的数据库逻辑备份,流程为:导出数据到

rem dump_dir 数据库目录下,然后把dmp文件以rar格式放入当天备份日期命名的目录下,便于以后按

rem 照日期恢复。

rem

rem 需要配置的参数说明:

rem BAT_HOME:即本批处理所在的目录;

rem BKDIR:是调用本批处理时传进来的参数 dump_dir,即要备份到的数据文件目录。

rem

rem Author: Sanlavo

rem Time: 2007-06-07

rem

==========================================================================================

rem

echo 备份开始...

echo 当前的时间是: %DATE% %time%

set BAT_HOME=E:\BAT

set BKDIR=%1

set BKFILE=%Date:~0,4%%Date:~5,2%%Date:~8,2%

set HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2%

expdp system/sys

parfile=%BAT_HOME%\ScriptsLib\parfiletest.sql

if not exist

%BKDIR%\%BKFILE%_LOGIC (

md %BKDIR%\%BKFILE%_LOGIC

) else (

echo 目录 %BKDIR%\%BKFILE%_LOGIC 已经存在

)

echo 开始压缩文件...

rar a %BKDIR%\%BKFILE%_LOGIC\%BKFILE%%HHMMSS%_LOGIC_FULL.rar

%BKDIR%\*.dmp

echo 压缩文件 %BKFILE%%HHMMSS%_LOGIC_FULL.rar 完成

echo 开始移动文件...

move %BKDIR%\*.dmp %BKDIR%\%BKFILE%_LOGIC\

move %BKDIR%\*.log %BKDIR%\%BKFILE%_LOGIC\

echo 移动文件完成

echo 开始删除dmp文件...

del /f /s /q %BKDIR%\%BKFILE%_LOGIC\*.dmp

echo 删除dmp文件完成

net send %userdomain%

"数据库逻辑备份已于:%DATE% %time% 完成!"

echo .

echo 备份已于:%DATE% %time% 完成!

echo .

rem 移动批处理的日志文件到备份目录下面

xcopy %BAT_HOME%\LogicBackup_%BKFILE%*.log

%BKDIR%\%BKFILE%_LOGIC\

echo Successfully Completed!

下面是expdp的parfile参数的文件(parfiletest.sql)内容:

directory=dump_dir

dumpfile=DBBackup_Logic_%U.dmp

logfile=DBBackup_Logic.log

filesize=80M

full=y

job_name=EXP_DB_FULL

到此,逻辑备份批处理完成,可以用命令来定时执行,例如:

c:\>at 06:06

/every:S E:\BAT\AutoBackup_Logic.bat

这样,逻辑备份将会在每周星期六凌晨六点六分执行。

第二部分,冷备份:

下面是:AutoBackup.bat

--主文件

@echo off

set BAT_HOME=E:\BAT

set DUMP_DIR=E:\Temp\DBBackup

call ColdBackup.bat orcl

%DUMP_DIR%

>%BAT_HOME%\ColdBackup_%DATE:~0,10%.log

pause

下面是备份流程文件:ColdBackup.bat

@echo off

rem E:\BAT>ColdBackup.bat orcl

E:\Temp\DBBackup

rem

rem==============================================

rem 要备份的文件列表有:参数文件、控制文件、数据文件、重做日志文件

rem

rem 参数文件有:

rem

%ORACLE_HOME%\database\spfile.ora

rem

%ORACLE_HOME%\database\PWD.ora

rem

%ORACLE_HOME%\database\pfile.ora

rem

rem 控制文件:可以通过查询数据字典视图v$control 确认控制文件的位置和清单

rem select status,name from v$controlfile;

rem

rem 数据文件:可以通过查询数据字典视图 dba_data_files 确定数据文件的位置和清单

rem select status,file_name from dba_data_files;

rem

rem 重做日志文件:查询数据字典v$logfile可以确认联机重做日志文件的位置和清单

rem select group#,status,member from v$logfile;

rem Author: Sanlavo

rem Time: 11:35 2007-5-31

rem==============================================

rem

rem

请在这里配置好本批处理程序所放的路径BAT_HOME以及ORACLE_HOME:

set ORACLE_HOME=D:\oracle\product\10.2.0\db_1

set BAT_HOME=E:\BAT

set BKFILE=%Date:~0,4%%Date:~5,2%%Date:~8,2%

set HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2%

rem 数据库脱机

call %BAT_HOME%\ShutdownDB.bat %1

rem %1

为数据库 %2为备份文件路径

rem 创建备份目录

if exist %2\%BKFILE%_DBBackup (

echo %2\%BKFILE%_DBBackup 已经存在

) else (

mkdir %2\%BKFILE%_DBBackup

echo %2\%BKFILE%_DBBackup 已经创建

)

rem copy备份文件到备份目录中

rem call xcopyfiles.bat %1 %2

rem begin

==============================================

echo 数据库 %1 冷备份开始...

rem 备份 dbs 目录下参数文件

xcopy %ORACLE_HOME%\dbs\*.* %2\%BKFILE%_DBBackup\dbs /S /I /C /Y

/F

rem 备份 %ORACLE_HOME%\database

目录下参数文件

xcopy %ORACLE_HOME%\database\*.* %2\%BKFILE%_DBBackup\database /S

/I /C /Y /EXCLUDE:ScriptsLib\databaseExclude.lst /F

rem 备份数据库控制文件、数据文件、重做日志文件

rem 创建数据库命名的文件夹,存放相关文件

if not exist %2\%BKFILE%_DBBackup\%1 (

md %2\%BKFILE%_DBBackup\%1

)

rem 从filepath.txt中读取文件路径信息并copy到目标路径

for /f %%i in (%BAT_HOME%\ScriptsLib\filepath.txt) do (

xcopy %%i %2\%BKFILE%_DBBackup\%1 /S /I /C /Y /F

)

echo 数据库 %1 冷备份完成!

rem end ==============================================

echo 启动数据库

rem 上面的操作过程中以及修改了环境路径,所以掉不到该批处理文件

%BAT_HOME:~0,2%

cd %BAT_HOME%

call %BAT_HOME%\StartupDB.bat %1

:Operation

:End

rem if exist *.dmp (

rem move *.dmp %BKFILE%_DBBackup & goto End1

rem echo Move dump file successfull

rem )else (

rem echo 不存在数据库备份文件 & goto End1

rem )

rem End

rem :: 把日期目录下的文件移动到当前目录

rem :: move %BKFILE%_DBBackup\*.bat

rem :End1

rem echo *

rem echo Operation Successfully

rem echo *

pause

上文中的:databaseExclude.lst

内容如下:

.log

.exe

即,排除日志文件和exe文件,其他的全部备份。

上文中的:filepath.txt

内容是经过数据字典查询后得到的比如控制文件、数据文件、日志文件等的路径列表,例如:

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF

D:\SDEDB.DBF

E:\SDEDB\SDE_DATA01.DBF

E:\SDEDB\SDE_INDEX01.DBF

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\WJ01.DBF

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG

D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG

...

在冷备份中涉及到数据库的关闭和启动,这里不在罗索了。关于冷备份的执行,也可以模仿逻辑备份部分,在计划任务中调用。

(完)

oracle批处理参数调用,Oracle数据库定时自动备份批处理代码(Windows)相关推荐

  1. oracle自动备份定时任务,Oracle数据库定时自动备份批处理代码(Windows)

    这是最近写的一个Oracle数据库自动备份的批处理,经过测试正常运行,记录如下.包括两部分,逻辑备份和冷备份,如有不完整之处,还往看到本文的高手指导! 注:这些内容是本人经过一番学习和多次测试调试后的 ...

  2. oracle数据库定时每天自动备份语句,Oracle数据库定时自动备份

    Oracle数据库定时自动备份批处理代码(Windows) 这是最近写的一个Oracle数据库自动备份的批处理,经过测试正常运行,记录如下.包括两部分,逻辑备份和冷备份,如有不完整之处,还往看到本文的 ...

  3. 云服务器实现Ms Sqlserver数据库定时自动备份并存至指定存储空间

    适用于windows系统(本次测试环境为windows2012+sqlserver2012)可实现对mssql数据库定时自动备份,同进还可以自动发送备份至指定的FTP空间,Email,局域网空间等.点 ...

  4. 使用SQL Server维护计划实现数据库定时自动备份

    在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库.要实现数据库的定 ...

  5. SQL Server 数据库定时自动备份

    在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库.要实现数据库的定 ...

  6. oracle 数据库定时自动备份

    1,首先创建批处理脚本 if exist d:\Testback (echo 数据库路径:d:\Testback) else (md d:\Testaback)set filename=d:\Test ...

  7. sql server数据库定时自动备份

    对于服务器数据的备份是比较麻烦的事情,如果每天或者经常要手工去备份自然是很痛苦的事情.这里我介绍一种通过sql server的作业调度来建立自动备份的方法: 1.进入企业管理器中->管理-> ...

  8. 如何让你的数据库定时自动备份(2000SQL)

    说明: 1.以下操作是在服务器的Windows 2000 Server上进行操作的.在Window 9X系统上操作相同. 2.由于SQL Server 2000执行备份时将产生许多文件(特别是在进行事 ...

  9. oracle存档模式,Oracle开启归档模式并设置RMAN自动备份策略

    title: Oracle开启归档模式并设置RMAN自动备份策略 categories: 数据库 tags: - Oracle - RMAN timezone: Asia/Shanghai date: ...

最新文章

  1. java solr 查询条件_05 java调用solr的api完成数据的查询
  2. Unity3D研究院之C#使用Socket与HTTP连接服务器传输数据包
  3. AngularJS优缺点、使用场景
  4. 1.什么是数据化运营——《数据挖掘与数据化运营实战》
  5. 【采用】百度大规模知识图谱构建及智能应用
  6. 【分享】程序的开发与编写
  7. wxWidgets:TextCtrl示例
  8. 【听歌】GDB入门教程之查看函数调用堆栈
  9. python如何调用xpath_Python案例:使用XPath的爬虫
  10. 数据库性能自动压测-Oracle swingbench篇
  11. oracle scn与数据恢复,Oracle数据恢复:数据文件头的SCN与时间校验
  12. 451.根据字符出现频率排序
  13. 平均数 中位数 四分位数 方差 标准差
  14. 易语言取html显示的文本,易语言 获取网页文本
  15. RHEL 7 常用命令
  16. 前端三刺客----HTML
  17. 真的!?在阅读体验感上赢过微信读书?
  18. 干货 | 数据思维在携程商旅页面性能优化中的一次实践
  19. effective morden c++ 3
  20. PHP 简单汉字繁简数据转换

热门文章

  1. 麦肯锡:数字化转型的1个目标,3大领域,6大因素和9个环节
  2. 安卓 linux it之家,IT之家安卓版 7.07:紧凑排版+适配华为小米魅族OV系统级推送等...
  3. maven引用第三方jar包的解决方法
  4. linux系统安装arcgis server 10.3.1
  5. 数据销毁,对于数据中心运营意味着什么?
  6. 传奇服务器最多登录人数设置,传奇服务器中如何设置角色升级经验值数量
  7. 【Simulink教程案例12】基于BPSK+costas环载波同步的simulink建模与仿真分析
  8. 计算机专业试题软件,计算机专业《工具软件》试题
  9. 二值图像的形态学处理
  10. 餐饮行业怎么才能玩转大数据?