Oracle数据库定时自动备份批处理代码
- 格式:doc
- 大小:50.00 KB
- 文档页数:7
oracle数据库全库备份语句Oracle数据库是一种关系型数据库管理系统,提供了全库备份的功能,可以用来备份整个数据库。
下面列举了10个不同的Oracle数据库全库备份语句。
1. 使用RMAN备份全库:使用RMAN工具备份整个Oracle数据库,可以使用以下命令:```RMAN> backup database;```2. 使用expdp备份全库:使用expdp工具备份整个Oracle数据库,可以使用以下命令:```expdp system/password@database_name full=Y directory=backup_dir dumpfile=full_backup.dmp logfile=full_backup.log;```3. 使用exp备份全库:使用exp工具备份整个Oracle数据库,可以使用以下命令:```exp system/password@database_name full=y file=full_backup.dmp log=full_backup.log;4. 使用Data Pump备份全库:使用Data Pump工具备份整个Oracle数据库,可以使用以下命令:```expdp system/password@database_name full=Y directory=backup_dir dumpfile=full_backup.dmp logfile=full_backup.log;```5. 使用RMAN增量备份全库:使用RMAN工具进行增量备份,可以使用以下命令:```RMAN> backup incremental level 1 cumulative database;```6. 使用expdp表空间备份:使用expdp工具备份指定表空间的数据,可以使用以下命令:```expdp system/password@database_name tablespaces=tablespace_name directory=backup_dir dumpfile=tablespace_backup.dmplogfile=tablespace_backup.log;7. 使用exp表空间备份:使用exp工具备份指定表空间的数据,可以使用以下命令:```exp system/password@database_name tablespaces=tablespace_name file=tablespace_backup.dmp log=tablespace_backup.log;```8. 使用RMAN备份控制文件和参数文件:使用RMAN工具备份控制文件和参数文件,可以使用以下命令:```RMAN> backup current controlfile;```9. 使用expdp备份指定用户的数据:使用expdp工具备份指定用户的数据,可以使用以下命令:```expdp system/password@database_name schemas=user_name directory=backup_dir dumpfile=user_backup.dmp logfile=user_backup.log;```10. 使用exp备份指定用户的数据:使用exp工具备份指定用户的数据,可以使用以下命令:```exp system/password@database_name owner=user_name file=user_backup.dmp log=user_backup.log;```以上是10个不同的Oracle数据库全库备份语句,可以根据实际需求选择合适的备份方式进行数据库备份。
最简单的方式制作Oracle数据库备份
1、编写一个.bat批处理文件:
一、在硬盘里新建一个txt文件,在文件中写上下面的语句。
exp 用户名/密码@数据库实例名file=存储物理路径\保存文件名
_%date:~0,10%.dmp
新建.txt文件
写入批处理语句
二、修改txt文件后缀为.bat
修改文件后缀名
三、测试.bat文件是否可用
文件正确,可用
2、编写自动程序
○1控制面板—任务计划—添加任务计划
○2选择任务程序
○3选择时间
选择日期(及多长时间备份一次数据库)
选择时间(即在那个时间备份)
○4输入计算机登录密码
○5单击完成
3、注意:
一、该文档所描述的备份是没有时间区分的,也就是说:今天备份的将替换昨天备份的。
二、批处理语句切记不能写错,而且格式非固定,具体格式可以上网查询。
三、因为是利用windows系统的工具调用批处理语句,所以当时间到了计划任务的时
间,会在电脑桌面上显示批处理(DOS)窗口。
备份结束前不可关闭。
Oracle数据库⾃动备份脚本分享(超实⽤)前⾔众所周知数据是应⽤的核⼼部分,程序坏了换台机器重新发布就可以,但数据⼀旦丢失,造成的损失将不可挽回,程序发布到⽣产后,数据的备份便显得尤为重要,由于不⼀定所有的服务均有资⾦完成⾼级的备份如RAC和DG,在我们只有⼀台数据库服务器的,暂时采取最简单的备份策略,export出dmp进⾏保存。
⼀、备份脚本1、初始化变量,记录开始⽇志#变量sysname=填写⾃⼰的系统名称syspath=/home/oracle/databak/$sysnamev_date=$(date '+%Y%m%d%H%M%S')#⽇志⽬录logfile=${syspath}/backup.${v_date}.log#打印开始时间echo backup_time>>${logfile}date '+%Y-%m-%d %H:%M:%S' >> ${logfile}echo "backup jcd">>${logfile}echo "start_time">>${logfile}date '+%Y-%m-%d %H:%M:%S' >> ${logfile}2、进⼊oracle⽬录,设置oracle的参数#进⼊oracle⽬录,设置oracle变量cd /home/11g/app/oracle/product/11.2.0export ORACLE_HOME=/home/11g/app/oracle/product/11.2.0/db_1export PATH=$PATH:/home/11g/app/oracle/product/11.2.0/db_1/binexport ORACLE_SID=SID名称3、导出数据echo $syspathv_date=$(date '+%Y%m%d%H%M%S')filename=$syspath/jcd${v_date}.dmp#导出命令exp username/password file=${filename} compress=n >> ${logfile}echo "end_time">>${logfile}date '+%Y-%m-%d %H:%M:%S'>>${logfile}4、压缩dump包gzip ${filename}5、使⽤scp,将压缩后的包传递到备份服务器,注意备份服务器上⽬录需要预先创建scp ${filename}.gz remot_name@remot_ip:/home/weblogic/databak/备份⽬录⼆、设定脚本执⾏时间我们设定规则为每天凌晨2点执⾏⼀次,采⽤crontab来进⾏处理执⾏crontab -e,设定如下规则:0 2 * * * sh /home/oracle/db.sh⼤家可以参照上⾯去写⼀个适合⾃⼰⽣产数据库的⼀个脚本,定期备份。
Oracle数据库在linux和windows下自动备份脚本总结本文我们主要对Oracle数据库在Linux和Windows下自动备份的脚本进行了总结,以便于我们对于Oracle数据库在不同平台上的备份的掌握。
一.Windows平台下Windows系统下Oracle数据库自动备份脚本:expData.bat的内容:exp system/system@orcl file=c:\oracle_bak\tne%date:~4,10%.dm p owner=tneexp system/system@orcl file=c:\oracle_bak\prt%date:~4,10%.dm p owner=prtexp system/system@orcl file=c:\oracle_bak\sec%date:~4,10%.dm p owner=secexp system/system@orcl file=c:\oracle_bak\tea%date:~4,10%.dm p owner=teaexp system/system@orcl file=c:\oracle_bak\pic%date:~4,10%.dm p owner=picexp system/system@orcl file=c:\oracle_bak\system%date:~4,10% .dmp owner=systempath=D:\WinRAR3.20rar a Data%date:~4,10%.rar*%date:~4,10%.dmp del*%date:~4,10%.dmp二.Linux平台下功能:1、每天数据库exp全备份2、自动删除7天前的备份,系统只保留当前7天的备份1.系统用户一览2.Oracle环境变量3.邮件设置4.创建备份目录使用oracle创建备份文件存储目录4.创建备份脚本使用oracle用户创建自动备份脚本脚本内容如下,其中的红色部分需要根据实际情况调整当前备份设置删除1个月之前的备份文件注意:date -d "1 month ago" 命令代表获取当前1个月之前的时间date -d "1 week ago"命令代表获取当前1周之前的时间date -d "1 day ago"命令代表获取当前1天之前的时间提升权限手动测试一下5.设置脚本定时执行要检查cron服务是否开启/sbin/service crond start // 启动服务/sbin/service crond stop // 关闭服务/sbin/service crond restart // 重启服务使用root执行命令用法* * * * * :代表执行时间间隔● oracle :执行脚本的用户●/home/oracle /backup.sh:执行脚本的路径Linux系统下Oracle数据库的备份:FIELNAME=/home/oracle/dmp/`date+%Y%m%d`.dmpecho$FIELNAME>/home/oracle/dmp/filename/home/oracle/product/9.2/bin/exp ccbip/'und\=2008CN(Y|N) full=y file=$FIELNAMEbzip2$FIELNAME注:创建的文件都是Oracle用户oinstall组的。
最全的Oracle数据库备份与还原命令【数据导出】1. 导出orcl中所有的表空间exp system/manager@orcl file=d:\daochu.dmp full=y2. 导出system数据库中指定的表空间exp system/manager@orcl file=d:\daochu.dmp owner=(system,sys)3. 导出数据库中制定的表数据exp system/manager@orcl file=d:\daochu.dmp tables=(table1,table2)4. 导出数据库中table1中字段field1以“00”开头的数据exp system/manager@orcl file=d:\daochu.dmp tables=(table1)query=" where filed1 like '00%'"注:如果要压缩,则在最后⾯加上compress=y即可【数据导⼊】1. 将D:\daochu.dmp 中的数据导⼊ orcl数据库中。
imp system/manager@orcl file=d:\daochu.dmp注:如果有的表已经存在,会提⽰报错,这个时候,在后⾯加上ignore=y,即已存在的表不导⼊2. 将d:\daochu.dmp中的表table1 导⼊imp system/manager@orcl file=d:\daochu.dmp tables=(table1)注:导⼊导出时,有时候会出现权限不⾜的情况这时,需要登录plus进⾏授权,⾸先登录管理员账号,然后:GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATE SESSION TO ⽤户名字。
oracle用expdp定时备份所有步骤详解
一连接数据库
输入命令:sqlplus system/123456@orcl如果设置过可以用sq登录
其中system是登录数据库的用户名
123456是用户名的密码
orcl是数据库实例名称
二.创建备份目录
创建oracle的备份目录:
sql>create directory dpdata1 as 'D:\temp\dmp';
这仅仅是在oracle里设定的目录,并没有真正创建
●可以通过这句命令查看到这个目录
sql>select * from dba_directories;
●赋于要导出数据表的所属用户权限
sql>grant read,write on directory dpdata1 to sshe;
三备份命令
首先,要切换回命令窗口,不要再在sql>下运行,切换到expdp所在位置,如“C:\Program Files\oracle\product\10.2.0\db_1\BIN”,然后输入命令:expdp system/123456@orcl directory=dpdata1 dumpfile=sshe.dmp logfile=sshe.log schemas=sshe
四.还原命令
其中directory 需要设置为备份文件的路径(create directory dpdata1 as 'D:\temp\dmp';)
impdp system/123456@orcl directory=dpdata1 dumpfile=SSHE.DMP logfile=sshe.log schemas=sshe。
orcal数据备份语句Oracle数据库备份语句是数据库管理员经常使用的重要工具,它可以保护数据库的数据安全,防止数据丢失或损坏。
以下是一些常用的Oracle数据库备份语句:1. 全备份语句:RMAN> BACKUP DATABASE;这个语句将对整个数据库进行备份,包括数据文件、控制文件和日志文件。
2. 表空间备份语句:RMAN> BACKUP TABLESPACE example;这个语句将备份指定的表空间,可以用于恢复该表空间的数据。
3. 数据文件备份语句:RMAN> BACKUP DATAFILE 1 FORMAT '/backup/datafile1.bak';这个语句将备份指定的数据文件,可以用于恢复该数据文件的数据。
4. 控制文件备份语句:RMAN> BACKUP CURRENT CONTROLFILE FORMAT '/backup/controlfile.bak';这个语句将备份当前的控制文件,以便在需要时进行恢复。
5. 归档日志备份语句:RMAN> BACKUP ARCHIVELOG ALL FORMAT '/backup/archivelog.bak';这个语句将备份所有归档日志文件,用于保留数据库变更的历史记录。
6. 增量备份语句:RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;这个语句将备份已更改的数据块,可以用于快速备份大型数据库。
7. 压缩备份语句:RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE;这个语句将备份数据库并使用压缩备份集来减小备份文件的大小。
8. 备份到远程服务器语句:RMAN> BACKUP DATABASE FORMAT '/backup/%d_%T_%U' TAG 'PROD_BACKUP'2> REMOTE 'ssh user@remotehost "/backup"' SECTION SIZE 10M;这个语句将备份数据库并将备份文件传输到远程服务器上的指定路径。
备份oracle数据库并保留指定天数(day)的备份文件(rar)制作人:whitecloud6688日期:2011-12-06一、需求分析客户要求导出oracle数据库文件,并将导出的dmp文件压缩成rar 文件,因为备份电脑空间有限,需要只保留指定天数的备份rar文件,这样来避免空间不足。
比如保留最近10天的rar文件,其余删除。
根据客户需要在网上查了半天都没有相关的批处理,最多的是用forfiles命令处理,但这个命令在windows xp上没有。
最后只好动动老胳膊老腿,花了一天时间写好代码。
供大家参考使用,如果觉得好的话,亲记得给好评哦。
^_^二、批处理代码废话不说了,代码如下,最好将代码的字体设置成Arial、小四。
@echo offecho ********************************************************************************************************* echo ** 功能:备份oracle并保留指定天数的备份文件**echo ********************************************************************************************************* echo **echo **echo **echo ********************************************************************************************************* echo ** 步骤1:备份当天的oracle数据库**echo ********************************************************************************************************* echo **echo **echo **rem 设置日期set filename=%date:~0,4%%date:~5,2%%date:~8,2%rem 导出user用户数据库exp user/userpasswd@sid file=ora.dmp owner=(user) log=ora.log buffer=102400000rem 判断备份是否成功if exist ora.dmp (echo ##########################################################echo ## 数据库备份成功##echo ########################################################## echo ##) else (echo ############################################################## echo ## %filename%日备份或压缩失败,请重新备份或压缩文件!## echo ############################################################## echo ##pauseexit)rem 将数据库文件ora.dmp、ora.log压缩为当天日期命名的rar文件"C:\Program Files\WinRAR\WinRAR.exe" a %filename%.rar ora.dmp ora.logrem 判断压缩是否成功,成功则删除数据库文件ora.dmp、ora.logif exist %filename%.rar (echo ################################################################## echo ## 数据库压缩成功,删除ora.dmp、ora.log文件##echo ################################################################## echo ##del ora.dmpdel ora.log) else (echo ################################################################## echo ## %filename%日压缩失败,请重新压缩文件!##echo ################################################################## echo ##pauseexit)echo **echo **echo **echo ********************************************************************************************************* echo ** 步骤2:保留指定天数(day)的备份文件(rar) **echo ********************************************************************************************************* echo **echo **echo **setlocal enabledelayedexpansionrem 查询数据库备份文件并导出到dir.txt文件dir /B *.rar >dir.txtrem 计数变量set count=0rem 天数变量,修改该值确定保留多少天的数据库备份文件,本例保留最后三天的备份文件set day=3rem 统计备份文件数量for /f %%i in ( dir.txt ) do (set /a count+=1)set /a day=count-dayset count=0rem 保留day天的备份文件,其余删除for /f %%i in ( dir.txt ) do (set /a count+=1if !count! leq %day% (del %%iecho ## 成功删除%%i数据库备份文件!## ) else (setlocaldel dir.txtexit))。
Centos7.6下Oracle定时自动备份和sudo设置1、编写数据库备份脚本文件(AutoBackup.sh)[root@centos7 ~]# vi /db_backup/AutoBackup.sh#引进备份环境echo -e '******Start********'$(date '+%Y%m%d%H%M%S')>>/db_backup/blog.txt #日志打印export ORACLE_BASE=/data/oracle #oracle安装目录export ORACLE_HOME=/data/oracle/product/11.2.0/db_1 #数据库实体名称,有些系统这个位置不同名export ORACLE_SID=orclexport PATH=$ORACLE_HOME/bin:$PATHrq='db'$(date '+%Y%m%d%H%M%S') #动态编写时间orq='db'$(date -d'7 day ago' +'%Y%m%d%H%M%S') #当前时间减去7天echo -e $rq $orq>>/db_backup/blog.txtexpdp system/manager@orcl dumpfile=$rq.dmp log=$rq.log directory=dpump_dir #导出数据库文件#zip -m /db_backup/dpump_dir/$rq.zip /db_backup/dpump_dir/$rq.dmp /db_backup/dpump_dir/$rq.log #压缩文件zipfind /db_backup/dpump_dir -name $orq.dmp |xargs rm -rf #压删除最近7天之外的数据echo -e '******End**********'$(date '+%Y%m%d%H%M%S')>>/db_backup/blog.txt2、设置定时:[root@centos7 dpump_dir]# crontab -e20 23 * * * /db_backup/AutoBackup.sh #设置每天晚上23:20自动备份3、cat /var/spool/cron/root #查询root下有那些定时任务[root@centos7 dpump_dir]# cat /var/spool/cron/root20 23 * * * /db_backup/AutoBackup.sh4、tail -f /var/log/cron #跟踪查询定时任务是否执行5、查看备份完成6、nmon监控Oracle进程6、blog.txt日志记录Sudo设置:centos7 安装时候创建的普通账号oracle,完成之后在命令行不能使用sudo 命令解决解决办法:修改配置文件(/etc/sudoers)中加入需要用户配置即可1.切换到root用户下打开终端执行su root 然后输入密码,从普通用户切换为root用户2.为sudoers配置文件添加写权限sudoers文件位于/etc 目录下,其为系统配置sudo用户的一个只读配置文件。
ORCL数据库自动备份设置方法1.创建服务器备份目录,生成执行脚本.bat文件创建E:\BACK_MUPAY文件夹;新建BACK_MUPAY.TXT文件,根据服务器情况拷贝修改下面执行代码保存,修改文件类型为.bat,得到BACK_MUPAY.bat文件。
2.执行代码:exp mupay/mupay@orclfile='E:\BACK_MUPAY\BACK_MUPAY%date:~0,4%%date:~5,2%%date:~8,2%.dmp ' owner=mupay BUFFER=100000LOG=E:\BACK_MUPAY\BACK_MUPAY%date:~0,4%%date:~5,2%%date:~8,2%.log forfiles /p "E:\BACK_MUPAY" /s /m *.dmp /d -15 /c "cmd /c del @path"3.执行代码说明:exp命令是oracle提供的备份命令,使用帐号密码为MUPAY/MUPAY的用户在ORCL 数据库实例中表名owner=mupay的数据库,备份文件存放在E:\BACK_MUPAY;备份文件名是BACK_MUPAY+时间+.dmp;其中的%date:~0,4%%date:~5,2%%date:~8,2%是取得当天的日期,年月日;例如:C:\Users\qyy>echo %date:~0,4%%date:~5,2%%date:~8,2%得到20170419;forfiles是windows的文件查找命令,查找在E:\BACK_MUPAY中所有.dmp后缀产生超过15天的文件,找到后执行删除操作4.双击执行BACK_MUPAY.bat测试。
执行成功后,会开始备份数据库,在E:\BACK_MUPAY目录中即会生产备份数据库文件和备份日志文件。
同时会检查小于当前日期15天的数据备份文件执行删除操作。
echo offset pweek=%date:~-1%set fn=e:\bakdb\gdosys_dqgis%Date:~0,4%%Date:~5,2%%Date:~8,2%if %pweek% equ 日(exp system/sysorcl file=%fn%.dmp owner=gdosys,dqgis log=%fn%.lograr a %fn%.rar %fn%.*del %fn%.dmpdel %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)————————————————————————————————————————————hi.baidu./lvns/blog/item/beb171d3c2fa2cd6a8ec9a2d.html这是最近写的一个Oracle数据库自动备份的批处理,经过测试正常运行,记录如下。
包括两部分,逻辑备份和冷备份,如有不完整之处,还往看到本文的高手指导!注:这些容是本人经过一番学习和多次测试调试后的结果,如果想,请以连接的形式,合作!第一部分,逻辑备份下面是:AutoBackup_Logic.bat --逻辑备份的主文件,直接在计划任务中调用就可以了。
echo offremrem 需要配置的参数说明:rem BAT_HOME:即本批处理所在的目录;rem DUMP_DIR:即要备份到的数据文件目录,存在与数据字典表:dba_directories 中。
remset BAT_HOME=E:\BATset DUMP_DIR=E:\Temp\DBBackupset 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_%BK FILE%%HHMMSS%.logecho Completed!下面是:LogicBackup.bat echo offrem call LogicBackup.bat %DUMP_DIR%rem====================================================================== ====================rem 本批处理实现支持expdp数据泵的Oracle数据库版本的数据库逻辑备份,流程为:导出数据到rem dump_dir 数据库目录下,然后把dmp文件以rar格式放入当天备份日期命名的目录下,便于以后按rem 照日期恢复。
remrem 需要配置的参数说明:rem BAT_HOME:即本批处理所在的目录;rem BKDIR:是调用本批处理时传进来的参数dump_dir,即要备份到的数据文件目录。
remrem Author: Sanlavorem Time: 2007-06-07rem====================================================================== ====================remecho 备份开始...echo 当前的时间是:%DATE% %time%set BAT_HOME=E:\BATset BKDIR=%1set 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.sqlif not exist %BKDIR%\%BKFILE%_LOGIC (md %BKDIR%\%BKFILE%_LOGIC) else (echo 目录%BKDIR%\%BKFILE%_LOGIC 已经存在)echo 开始压缩文件...rara %BKDIR%\%BKFILE%_LOGIC\%BKFILE%%HHMMSS%_LOGIC_FULL.rar %BKDIR%\ *.dmpecho 压缩文件%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\*.dmpecho 删除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_dirdumpfile=DBBackup_Logic_%U.dmplogfile=DBBackup_Logic.logfilesize=80Mfull=yjob_name=EXP_DB_FULL到此,逻辑备份批处理完成,可以用命令来定时执行,例如:c:\>at 06:06 /every:S E:\BAT\AutoBackup_Logic.bat这样,逻辑备份将会在每周星期六凌晨六点六分执行。
第二部分,冷备份:下面是:AutoBackup.bat --主文件echo offset BAT_HOME=E:\BATset DUMP_DIR=E:\Temp\DBBackupcall ColdBackup.bat orcl %DUMP_DIR% >%BAT_HOME%\ColdBackup_%DATE:~0,10%.log pause下面是备份流程文件:ColdBackup.batecho offrem E:\BAT>ColdBackup.bat orcl E:\Temp\DBBackupremrem==============================================rem 要备份的文件列表有:参数文件、控制文件、数据文件、重做日志文件remrem 参数文件有:rem %ORACLE_HOME%\database\spfile<sid>.orarem %ORACLE_HOME%\database\PWD<sid>.orarem %ORACLE_HOME%\database\pfile<sid>.oraremrem 控制文件:可以通过查询数据字典视图v$control 确认控制文件的位置和清单rem select status,name from v$controlfile;remrem 数据文件:可以通过查询数据字典视图dba_data_files 确定数据文件的位置和清单rem select status,file_name from dba_data_files;remrem 重做日志文件:查询数据字典v$logfile可以确认联机重做日志文件的位置和清单rem select group#,status,member from v$logfile;rem Author: Sanlavorem Time: 11:35 2007-5-31rem==============================================remrem 请在这里配置好本批处理程序所放的路径BAT_HOME以及ORACLE_HOME:set ORACLE_HOME=D:\oracle\product\10.2.0\db_1set BAT_HOME=E:\BATset BKFILE=%Date:~0,4%%Date:~5,2%%Date:~8,2%set HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2%rem 数据库脱机call %BA T_HOME%\ShutdownDB.bat %1rem %1 为数据库<SID> %2为备份文件路径rem 创建备份目录if exist %2\%BKFILE%_DBBackup (echo %2\%BKFILE%_DBBackup 已经存在) else (mkdir %2\%BKFILE%_DBBackupecho %2\%BKFILE%_DBBackup 已经创建)rem copy备份文件到备份目录中rem call xcopyfiles.bat %1 %2rem begin ==============================================echo 数据库%1 冷备份开始...rem 备份dbs 目录下参数文件xcopy %ORACLE_HOME%\dbs\*.* %2\%BKFILE%_DBBackup\dbs /S /I /C /Y /Frem 备份%ORACLE_HOME%\database 目录下参数文件xcopy %ORACLE_HOME%\database\*.* %2\%BKFILE%_DBBackup\database /S /I /C /Y /EXCLUDE:ScriptsLib\databaseExclude.lst /Frem 备份数据库控制文件、数据文件、重做日志文件rem 创建数据库<SID>命名的文件夹,存放相关文件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 上面的操作过程中以及修改了环境路径,所以掉不到该批处理文件%BA T_HOME:~0,2%cd %BAT_HOME%call %BA T_HOME%\StartupDB.bat %1:Operation:Endrem if exist *.dmp (rem move *.dmp %BKFILE%_DBBackup & goto End1rem echo Move dump file successfullrem )else (rem echo 不存在数据库备份文件& goto End1rem )rem Endrem :: 把日期目录下的文件移动到当前目录rem :: move %BKFILE%_DBBackup\*.batrem :End1rem echo *rem echo Operation Successfullyrem echo *pause上文中的:databaseExclude.lst 容如下:.log.exe即,排除日志文件和exe文件,其他的全部备份。