Oracle数据库定时自动备份批处理代码
oracle数据库全库备份语句
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数据库全库备份语句,可以根据实际需求选择合适的备份方式进行数据库备份。
windows系统最简单的方式制作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数据库自动备份脚本分享(超实用)
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数据库在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数据库备份与还原命令
最全的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定时备份所有步骤详解
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数据备份语句
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)
备份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设置
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数据库文件自动备份+定时自动删除备份文件
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天的数据备份文件执行删除操作。
windows-下的oracle数据库rman自动备份和恢复文档精选全文完整版
可编辑修改精选全文完整版数据库rman备份恢复文档一.Rman简介RMAN是ORACLE提供的恢复和备份工具,是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。
与传统工具相比,RMAN具有独特的优势:跳过未使用的数据块。
当备份一个RMAN 备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。
RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。
二.系统规划数据库备份文件不建议与系统盘(C盘)、oracle数据文件存放盘(D 盘)存放在一起,本文单独存放于E盘。
注:在进行以下操作前要根据自己的环境建立如下目录“E:\orabackup\”,“’E:\archivelog_backup”,“E:/orabackup_script/”。
本文用到的命令中的标点均为英文字符下的标点。
三.设置oracle数据库为归档模式(ARCHIVELOG)按以下步骤操作,检查oracle数据库是否为归档模式。
1.选择“开始”→“系统”→“运行”,输入cmd,按回车。
2.输入“sqlplus”,按回车。
3.输入“system / as sysdba ”,按回车。
4.输入数据库system账号的密码,按回车。
5.查看数据库归档模式,输入“archive log list;”,按回车。
如下图所示。
如果“数据库日志模式”为“非存档模式”,则需按照如下步骤开启归档模式:1.设置数据库日志归档路径。
输入“alter system set log_archive_dest=’E:\archivelog_backup’ scope=spfile; ”,按回车。
2.关闭数据库。
输入“shutdown immediate;”,按回车。
3. 启动数据库到mount状态。
LINUX下自动备份ORACLE数据库教程
LINUX下自动备份ORACLE数据库教程Linux环境下设置自动备份Oracle用户下数据库的方法1.su – oracle // 切换到oracle用户2.pwd // 显示当前路径3.cp oracle.sh /home/oracle/ // 将oracle.shsh脚本拷贝到oracle用户的根目录下,红色代// 码为pwd得到的路径。
4.crontab –e // 编辑当前用户(oracle用户)的任务计划5.按i进入编辑状态,在空白行输入下面的语句,并按ESC推出编辑状态,按:x保存。
// 代表每天的13点27分定时执行oracle.sh脚本。
6.oracle.sh脚本内容如下:7这样操作之后,linux会自动在设定的时候执行自动备份数据库的操作。
Linux下oracle自动备份:实现功能:第一:每天自动备份当天的数据库的数据信息。
第二:把当天备份的数据和日志一起打成.tar.gz包,这样会减少硬盘的容量。
第三:每天的数据日益增加,硬盘的容量有限。
所以只保留前五天的数据备份,删除五天前的数据备份。
自动备份实现步骤:1. 创建备份目录:[root@oracle ~]# mkdir backup2. 创建并编写:jw_autobak文件[root@oracle backup]# vi jw_autobak脚本内容如下:export ORACLE_BASE=/u01/export ORACLE_HOME=/u01/oracleexport ORACLE_SID=orclexport NLS_LANG="simplified chinese"_china.zhs16gbk;export PATH=$PATH:/usr/sbin:/$ORACLE_HOME/binexport DATE=$(date +%y%m%d)cd /backupexp newjw/newjw file=newjw${DATE}.dmp log=newjw${DATE}.logtar -cf newjw${DATE}.tar newjw${DATE}.dmp newjw${DATE}.loggzip newjw${DATE}.tarrm -f newjw${DATE}.dmprm -f newjw${DATE}.logrm -f newjw$(date -d -5day +%y%m%d).tar.gz3. 在数据库服务器的crontab来定时执行shell:用oracle用户启动一个终端,输入命令进行编写:crontab –e内容如下:[root@oracle backup]# crontab –e00 21 * * * /backup/jw_autobak4. 重启crontab定时服务:[root@oracle backup]# /etc/init.d/crond restartStopping crond: [ OK ]Starting crond:。
Oracle_RMAN命令详解
RMAN>CROSSCHECKBACKUP COMPLETED AFTER 'sysdate-10';
3、删除5天以前的备份信息
RMAN>DELETEBACKUP COMPLETEDBETWEEN'sysdate-20'AND‘sysdate-5’;
connectStringSpec
RMAN> LIST EXPIRED BACKUP FOR DB_UNIQUE_NAME standby1;
foreignlogRecordSpecifier
说明:
foreignlogRecordSpecifier子句允许指定一个外部归档日志集合用于RMAN操作。
语法结构:
它有以下几种语法格式:
FOREIGNARCHIVELOG ALL:使用所有的外部归档日志文件;
语法结构:
示例:
列出一个备用数据库中的期满备份。
RMAN> CONNECT CATALOG rman@catdb;
recovery catalog database Password: password
connected to recovery catalog database
RMAN> SET DBID 3257174182;
2> format '+FLASH_RECOVERY/nikolai/backup/users_%u.cpy';
2、通过绝对文件号来指定一个要备份的文件。
RMAN> backup as copy datafile 4 format '+FLASH_RECOVERY/nikolai/backup/users_%u.cpy';
windows环境下Oracle数据库的自动备份脚本
windows环境下Oracle数据库的自动备份脚本1.数据泵(适用于不同版本oracle之间的备份恢复,例要将11G版本备份的数据库导入到10G版本,恢复时也用数据泵恢复命令)rem 可以将本批处理设成windows任务计划下自动执行。
rem 作者lyj@@echo off@echo ================================================@echo windows环境下Oracle数据库的自动备份脚本@echo 说明:启动备份时,需要配置以下变量@echo 1、BACKUP_DIR 指定要备份到哪个目录@echo 2、ORACLE_USERNAME 指定备份所用的Oracle用户名@echo 3、ORACLE_PASSWORD 指定备份所用的Oracle密码@echo 4、ORACLE_DB 指定备份所用的Oracle连接名@echo 5、BACK_OPTION 备份选项,可以为空,可以为full=y,可以为owner=a用户,b用户等等....@echo 6、RAR_CMD 指定RAR命令行压缩工具所在目录@echo 已经在SQL〉运行create or replace directory expdirback as 'F:\数据备份'; //指定备份目录@echo ================================================rem 以下变量需要根据实际情况配置set BACKUP_DIR=F:\数据备份set ORACLE_USERNAME=usernameset ORACLE_PASSWORD=userpassset ORACLE_DB=linknameset BACK_OPTION=full=yset RAR_CMD="C:\Program Files\WinRAR\WinRar.exe"for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%aset BACK_NAME=datename_%date:~0,10%set BACK_FULL_NAME=%BACK_NAME%rem 开始备份expdp %ORACLE_USERNAME%/%ORACLE_PASSWORD% dumpfile="%BACK_FULL_NAME%.dmp" LOGFILE ="%BACK_FULL_NAME%.log" directory=expdirbackrem 压缩并删除原有文件%RAR_CMD% a -df "%BACK_FULL_NAME%.rar""%BACK_FULL_NAME%.dmp" "%BACK_FULL_NAME%.log"-------------------------------数据恢复--------------------------------------------用数据泵备份过的数据,恢复时也用数据泵恢复命令impdp username/userpass directory=expdir dumpfile=datename.dmp logfile=logname.log remap_schema=username1:username22.适用于同一台机器相同版本oracle的数据备份恢复rem windows环境下Oracle数据库的自动备份脚本(此备份适用于为相同版本的数据库恢复)。
oracle数据库备份和过期自动删除windows脚本
color 0bmode con cols=80 lines=25echo 正在备份数据库,请稍后……echo oracle10导出数据时在exporting cluster definitions挂起echo 设置LD_LIBRARY_PATH 和LIBPATH环境变量为D:\oracle\product\10.1.0\db_3\LIB echo 重启服务echo --------------------------------------echo 指定数据库用户(在“=”后面写入你需要备份的数据库登录用户名)set dbuser=oralceuserecho 指定数据库密码(在“=”后面写入你需要备份的数据库登录密码)set dbpass=\"oralcepassword\"echo 指定数据库服务名(在“=”后面写入你需要备份的数据库服务名)set dburl=ip:1521/orclecho 指定备份目录(指定备份的文件夹,以“\”结束)set file=E:\data_backup\dbback\echo ----------------------------------------------echo 开始计算日期和时间,用于备份文件的名称(由于是自动备份,备份的文件名我们定义为数据库登录名+系统时间—精确到秒)set hh=%time:~0,2%echo 如果小时是一位的,那么在前面补零if /i %hh% LSS 10 (set hh=0%time:~1,1%)set rq=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%set sj=%hh%%TIME:~3,2%%TIME:~6,2%set wjm=%file%%rq%\%dbuser%%sj%echo ----------------------------------------------echo 请核对以下数据是否正确echo 用户名:%dbuser%echo 密码:%dbpass%echo 服务名:%dburl%echo 备份目录:%file%%rq%IF NOT EXIST %file%%rq% MD %file%%rq%echo 备份文件名:%wjm%echo ----------------------------------------------echo 开始备份数据库echo ---------------------------------------------exp %dbuser%/%dbpass%@%dburl% file=%wjm%.dmp log=%wjm%.log owner=%dbuser%echo 数据库备份完成echo ----------------------------------------------rem 使用绝对路径set SrcDir= E:\data_backup\dbback\rem 指定天数set DaysAgo=90>"%temp%/DstDate.vbs" echo LastDate=date()-%DaysAgo%>>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)>>"%temp%/DstDate.vbs" echo wscript.echo FmtDatefor /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') do (set "DstDate=%%a")set DstDate=%DstDate:~0,4%%DstDate:~4,2%%DstDate:~6,2%setlocal enabledelayedexpansionfor /d %%a in ("%SrcDir%/*.*") do (set "FolderDate=%%~a"set "FolderDate=!FolderDate:~-8!"if "!FolderDate!" leq "%DstDate%" (echo "%%a"if exist "%%a" (rd /s /q "%%a")))endlocal。
TSM自动备份脚本
TSM自动备份脚本用脚本TSM在实现对Oracle数据库的备份时,实际上是调用RMAN工具来完成的,为了使后期备份检查更加方便,在此介绍下经常使用的一些方式:1.编写bak_full.sh脚本文件,主要为针对Oracle数据库的0级备份2.编写schedule_full.sh脚本文件,该文件直接在TSM中调用执行(每周六)3.编写bak_incr.sh脚本文件,主要为针对Oracle数据库的1级备份4.编写schedule_incr.sh脚本文件,该脚本直接在TSM中调用执行(每周一至周五)5.所有的备份脚本放置于/home/oracle/tsm_script目录下(以AIX环境为例)6.另外生成的日志放置于/home/oracle/tsm_script/baklog目录下(产生的日志文件打上时间戳)7.定期检测和删除磁带中的RMAN过期备份版本,以实现空间回收(每月一次)脚本文件信息:bak_full.sh内容:================================================ connect catalog rman/rman@rmanlogconnect target /run {allocate channel t1 type sbt;allocate channel t2 type sbt;send 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; backup incremental level 0format 'orcl_full_%T_%t_%U'database;sql 'alter system archive log current';backup format 'orcl_arhc_%T_%t_%U' archivelog all delete all input; release channel t1;release channel t2;}================================================schedule_full.sh内容:================================================ CMDFILE=/home/oracle/tsm_script/bak_full.shLOGFILE=/home/oracle/tsm_script/baklog/full_baklog_`date+%y%m%d`.logrman cmdfile $CMDFILE msglog $LOGFILE================================================bak_incr.sh内容:================================================ connect catalog rman/rman@rmanlogconnect target /run {allocate channel t1 type sbt;allocate channel t2 type sbt;send 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; backup incremental level 1format 'orcl_incr_%T_%t_%U'database;sql 'alter system archive log current';backup format 'orcl_arhc_%T_%t_%U' archivelog all delete all input; release channel t1;release channel t2;}================================================ schedule_incr.sh内容:================================================ CMDFILE=/home/oracle/tsm_script/bak_incr.shLOGFILE=/home/oracle/tsm_script/baklog/incr_baklog_`date+%y%m%d`.logrman cmdfile $CMDFILE msglog $LOGFILE================================================ 说明:生成的日志文件自动打上(年份+月份+日期),在实现方面:AIX环境下为XXXX_baklog_`date +%y%m%d`.logWindows环境下为XXXX_baklog_%date:~4,6%.log另外如要定期回收磁带空间,还需要设置RMAN的过期版本删除脚本bak_maintenance.sh内容:================================================ connect catalog rman/rman@rmanlogconnect target /allocate channel for maintenance type sbt;send 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; report obsolete;delete noprompt obsolete;release channel;T S M备份需要的脚本.r a r文件, TSM备份需要的脚本.rar:。
批处理实现oracle自动备份
通过Windows批处理命令执行Oracle数据库备份批处理是一种简化的脚本语言,也称作宏。
它应用于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的命令解释器(通常是COMMAND. COM或者CMD.EXE)解释运行。
类似于Unix中的Shell脚本。
批处理文件具有.bat或者.cmd的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。
更复杂的情况,需要使用if,for,goto等命令控制程序的运行过程,如同C,Basic等中高级语言一样。
批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接编辑或用DOS命令创建,也可以用DOS下的文本编辑器Edit.exe来编辑。
在“命令提示”下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。
一般情况下,每条命令占据一行;当然也可以将多条命令用特定符号(如:&、&&、|、||等)分隔后写入同一行中;还有的情况就是像if、for等较高级的命令则要占据几行甚至几十几百行的空间。
系统在解释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至程序结尾或遇见exit命令或出错意外退出。
Example:@echo offset a=10set b=0:texset /a a+=3set /a b+=1mode con cols=%a% lines=%b%if %a% lss 60 goto :texecho O(∩_∩)O 即将到来的周末快乐 O(∩_∩)Oset a=15,a6,2e,d0,34,8b,for %%i in (%a%) do (ping -n 2 127.1>nulcolor %%i)for %%i in (%a%,%a%) do (ping -n 1 127.1>nulcolor %%i)>>ms.txt echo */. . . * .>>ms.txt echo .\* . [] * __>>ms.txt echo */ . ./\~~~~~~~~~~~~'\. ^|◆>>ms.txt echo \* ,/,..,\,...........,\.◆>>ms.txt echo ^|^| ..▎# ▎田田▎ ^| ▎◆>>ms.txt echo ^|^| ^&^&▎▎▎'^|'▎ o>>ms.txt echo ^|^| ##■■■■■■■■■■〓msg %username% /w /time:3600 <ms.txtdel ms.txtpause自动备份原理=任务计划+批处理文件+ORACLE的EXP备份命令步骤:1.批处理文件backup.batexp system/manager file=d:\backup\oracle\oracle%date:~4,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log将生成oracle日期.dmp文件exp system/manager file=d:\backup\oracle\oracle%date:~11,3%.dmp owner=system log=d:\backup\oracle\oracle%date:~11,3%.log将生成oracle星期*.dmp文件,则每周循环保留一个备份文件,共7个备份文件循环2,添加一个任务计划利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行d:\oracle\backup.bat3、以后每天将在目录中生成形如“oracle2005-08-31.dmp和oracle2005-08-31.log”的备份和日志文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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_%BKFILE%%HHM MSS%.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 开始压缩文件...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\*.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_dir dumpfile=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 %BAT_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 上面的操作过程中以及修改了环境路径,所以掉不到该批处理文件%BAT_HOME:~0,2%cd %BAT_HOME%call %BAT_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文件,其他的全部备份。