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

这是最近写的一个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

...

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

(完)

上面这些内容整整花了我近两周的时间,唉,这就是低手的原因了,希望加紧进程,步入高手行列,以后遇到问题后能很快解决,而且更高质量的解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

11.8学习笔记

封装一套自己的model类(增 删 查 改) select * from news where 1 :默认子查询查询所有的条件 ,如果有其他的条件可以覆盖默认查询所有的条件 mysqli_insert_id //返回添加的id mysqli_affected_rows();//返回删除的行数 例子: header("…

java学习(68):局部内部类

public class test113 {public void method(){final int age 23;class Localinner{public void method(){System.out.println("歌谣");System.out.println(age);}}new Localinner().method();}public static void main(String[] args) {test113 onew test113();o.met…

oracle分区表扩分区 很慢,升级oracle10g 大分区表update变慢

原来使用的数据库是oracle8.1.7.4 这次升级为oracle 10.0.2.4,在导入旧dmp时候明显能够感觉到导入数据比较快。1.可是在正式使用之后,发现启用一个大表(使用了分区表),在update使用比较慢,语句和索引建的和过去在oracle8i上是完全一致的。这…

java学习(69):java模式设计之适配器

1需求是 //公司招员工,要求会讲中、英、法、日四国语言,同时还很会编程的员工。 这时候,我们先定义一个接口,实现接口中的方法我们就认为满足 //公司招员工,要求会讲中、英、法、日四国语言,同时还很会编…

selenium 验证码——万能码的使用

使用万能码需要导入一个random类生成随机码 # codingutf-8 import randomver random.randint(1000,9999)print u生成验证码:%d %vernum input(u输入验证码:) print numif num ver:print u登陆成功 elif num 999999:print u登陆成功 else:print u验证…

双机oracle,[精华] [原创]oracle双机群集系统

没有做oracle failsafe的oracle双机群集系统,如有要做failsafe的兄弟可以在此基础上安装FAILSAFE。一 .群集环境:1. 硬件环境:服务器A . IBM 365 SERVER 单路XEON SMP CPU, 6GB内存, 三块36.4G硬盘(RAID5), 本地千兆网卡(PRIVATE_LAN), 附加IBM 千兆光纤网卡(PUBL…

Intellij IDEA创建的Web项目配置Tomcat并启动Maven项目

点击如图所示的地方,进行添加Tomcat配置页面弹出页面后,按照如图顺序找到,点击号tomcat Service -> Local注意,这里不要选错了哦,还有一个TomEE Service!按照下面图所示进行配置。图中数字的地方代表的配…

mysql(1):修改数据库密码

总是忘记,每次都要查文档,背背背 方法1: 用SET PASSWORD命令 首先登录MySQL。 格式:mysql> set password for 用户名localhost password(‘新密码’); 例子:mysql> set password for rootlocalhost passwor…

学PHP的嫌弃什么歌,抖音再见了互相嫌弃的老同学是什么歌

最近高考结束了,有一首歌突然很火,这首歌有一句歌词是再见了互相嫌弃的老同学再见了来不及说出的谢谢,那么这首感人的分别歌曲是什么歌呢?下面就让我们一起来看看吧。据悉这首歌是由好妹妹演的的不说再见好妹妹简介好妹妹乐队 是由两个热情洋…

ubuntu16 深度学习环境搭建步骤

在安装ubuntu之前需要条一下BIOS,讲UEFI模式改为Legacy 模式。 ubuntu分区系统搭建可以参考一下博客: 分区大小为: boot 400~500Mswap 内存大小主分区 >20G可以30Ghome 剩余全是引导区一定要放在boot上 添加对exfat格式u盘的支持 sudo apt…

java学习(70):GUL图形用户界面初识

import java.awt.*; import javax.swing.*; public class test04 {public static void main(String[] args){//定义一个图形界面JFrame aanew JFrame();//建立一个标题aa.setTitle("歌谣");//创建一个按钮JButton an1new JButton("歌谣");//设置初始位置aa…

oracle实时分析,Oracle Exalytics 大幅提升实时分析洞察力

【天极网OOW2013上海消息】甲骨文近日宣布推出Oracle Exalytics商务智能云服务器的新版本Oracle Exalytics X3-4。新系统显著增强了软件功能和硬件更新,极大提升了针对商务分析的业内最快集成系统的性能。新的Oracle Exalytics X3-4具有2 TB主内存,2.4TB…

java学习(71):GUL边界布局管理器

//面向对象思想,边界管理布局器 import java.awt.*; import javax.swing.*; public class test06 extends JFrame {JButton an1,an2,an3,an4,an5;//把需要的组件定义在这里public static void main(String[] args){test06 lx1new test06();//主函数调用即可}//定义…

修改Docker默认存储位置的方法

在日常使用中由于我们的根目录通常都比较小,如果想大量存储容器镜像的话很容易导致根目录写满 docker 默认的数据目录是/var/lib/docker 我们想要移动数据目录可以按照下面说明操作即可。 指定镜像和容器存放路径的参数是--graph/var/lib/docker,我们只需…

java学习(72):GUL流式布局管理器

//面向对象思想,流式管理布局器 import java.awt.*; import javax.swing.*; public class test07 extends JFrame {JButton[] an{null,null,null,null,null,null,null,null};//把需要的组件定义在这里public static void main(String[] args){test07 lx1new test07…

linux日志服务器配置在哪个文件,Linux中日志的基本配置(syslog)

Syslog日志的作用:syslog 日志可以帮我们主动的收集到设备的各种信息,并保存在syslog服务器上,当某些设备出现故障的时候,我们可以省去手动收集信息的麻烦,方便快捷的从syslog服务器中读取设备的各种信息来进行分析排错。linux中日志的类型:(1)info&…

java学习(73):GUL网格布局管理器

//面向对象思想,网格管理布局器 import java.awt.*; import javax.swing.*; public class test08 extends JFrame {JButton[] an{null,null,null,null,null,null,null,null,null};//把需要的组件定义在这里int s9;public static void main(String[] args){test08 l…

linux如何创建备份文件,如何备份Linux 配置文件

如何备份Linux配置文件文件备份是服务器安全最重要的一个环节,下面小编介绍使用Git工具来备份Linux配置文件。一、安装Git[rootlocalhost ~]# yum install git检查Git版本[rootlocalhost ~]# git --versiongit version 1.8.3.1[rootlocalhost ~]#设置初始参数将如下…

20172327 2018-2019-1 《程序设计与数据结构》第八周学习总结

20172327 2018-2019-1 《程序设计与数据结构》第八周学习总结 教材学习内容总结 第十二章 优先队列与堆 堆1.最小堆(minheap):对是一个完全二叉树,其中的每个结点都小于或等于它的两个孩子。2.最大堆(maxheap):对是一个…

java学习(74):GUL面板

//jPanel面板 //面向对象思想,面板,窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test09 extends JFrame {JPanel mb1,mb2;JButton an1,an2,an3,an4,an5;public static void main(String[] args){test09 lx1new test…