Oracle数据库定时自动备份批处理代码(Windows).doc_第1页
Oracle数据库定时自动备份批处理代码(Windows).doc_第2页
Oracle数据库定时自动备份批处理代码(Windows).doc_第3页
Oracle数据库定时自动备份批处理代码(Windows).doc_第4页
Oracle数据库定时自动备份批处理代码(Windows).doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

echo offset pweek=%date:-1%set fn=e:bakdbgdosys_dqgis%Date:0,4%Date:5,2%Date:8,2%if %pweek% equ 日 ( exp system/sysorcl file=%fn%.dmp owner=gdosys,dqgis log=%fn%.log rar a %fn%.rar %fn%.* del %fn%.dmp del %fn%.log) else ( exp system/sysorcl file=d:bakweek%date:8,2%.dmp owner=gdosys,dqgis log=d:bakweek%date:8,2%.logrem exp system/sysorcl file=d:bakweek%date:11,3%.dmp owner=gdosys log=d:bakweek%date:11,3%.log)/lvns/blog/item/beb171d3c2fa2cd6a8ec9a2d.html这是最近写的一个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:TempDBBackup 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%ScriptsLibparfiletest.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:BATAutoBackup_Logic.bat 这样,逻辑备份将会在每周星期六凌晨六点六分执行。 第二部分,冷备份: 下面是:AutoBackup.bat -主文件echo off set BAT_HOME=E:BAT set DUMP_DIR=E:TempDBBackup call ColdBackup.bat orcl %DUMP_DIR% %BAT_HOME%ColdBackup_%DATE:0,10%.log pause 下面是备份流程文件:ColdBackup.batecho off rem E:BATColdBackup.bat orcl E:TempDBBackup rem rem= rem 要备份的文件列表有:参数文件、控制文件、数据文件、重做日志文件 rem rem 参数文件有: rem %ORACLE_HOME%databasespfile.ora rem %ORACLE_HOME%databasePWD.ora rem %ORACLE_HOME%databasepfile.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:oracleproduct10.2.0db_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%_DBBackupdbs /S /I /C /Y /F rem 备份 %ORACLE_HOME%database 目录下参数文件 xcopy %ORACLE_HOME%database*.* %2%BKFILE%_DBBackupdatabase /S /I /C /Y /EXCLUDE:ScriptsLibdatabaseExclude.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%ScriptsLibfilepath.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:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL01.CTL D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL02.CTL D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL03.CTL D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF D:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF D:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF D:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF D:SDEDB.DBF E:SDEDBSDE_DATA01.DBF E:SDEDBSDE_INDEX01.DBF D:ORACLEPRODUCT10.2.0ORADATAORCLWJ01.DBF D:ORACLEPRODUCT10.2.0ORADATAORCLREDO01.LOG D:ORACLEPRODUCT10.2.0ORADATAORCLREDO02.LOG D:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG . 在冷备份中涉及到数据库的关闭和启动,这里不在罗索了。关于冷备份的执行,也可以模仿逻辑备份部分,在计划任务中调用。 第三部分,热备份: rem script:hotbak.sql rem creater:chenjiping rem date:4.4.2002 rem desc:backup database datafile in archive -connect database connect internal/virpure; -archive alter system checkpoint; alter system archive log all; alter system switch logfile; -start alter tablespace afis_remote begin backup; !xcopy e:orantdatabaseremote_data1.ora e:databak/H/R; !xcopy e:orantdatabaseremote_data2.ora e:databak/H/R; alter tablespace afis_remote end backup; alter tablespace afis_rmtafis begin backup; !xcopy e:orantdatabasermtafis_data1.ora e:databak/H/R; !xcopy e:orantdatabasermtafis_data2.ora e:databak/H/R; alter tablespace afis_rmtafis end backup; alter tablespace afis_lquser begin backup; !xcopy e:orantdatabaselquser_data.ora e:databak/H/R; alter tablespace afis_lquser end backup; alter tablespace afis_transf begin backup; !xcopy e:orantdatabasetransf1_data.ora e:databak/H/R; !xcopy e:orantdatabasetransf2_data.ora e:databak/H/R; alter tablespace afis_transf end backup; alter tablespace system begin backup; !xcopy e:orantdatabasesys1afis.ora e:databak/H/R; alter tablespace system end backup; alter tablespace rbs begin backup; !xcopy e:orantdatabaserbs1afis.ora e:databak/H/R; alter tablespace rbs end backup; alter tablespace usr begin backup; !xcopy e:orantdatabaseusr1afis.ora e:databak/H/R;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论