Windows下Oracle9i数据库文件的自动备份
- 格式:doc
- 大小:24.50 KB
- 文档页数:2
2020.041概述数据库备份/还原/恢复操作,是数据库管理员首要任务。
尽管更好的硬件或者容灾等方案似乎降低了数据库备份的紧迫性,但数据库备份在很长一段时间内仍然是保证数据安全的托底方案。
有关Oracle 数据库的备份/还原/恢复(含不完全恢复)非常复杂,如按其备份的方法就有逻辑备份(即数据导出)、物理备份(包括冷备份和热备份)、RMAN 备份等区别[1]。
这些备份方式各有优缺点[1]-[4],大多数非专职的数据库管理员希望一种简单有效的自动方法,确保一旦硬件失效,即使不能恢复到失效前一秒的状态,也希望能恢复绝大部分数据。
当前大多数Oracle 数据库被安装和运行在Unix 或者Linux 环境下,这些环境下如何实现Oracle 数据库自动备份,文献[4]-[7]等均有较为详细的介绍。
但对一些将其安装在Windows 环境下的用户,如何对数据库进行自动热备份,鲜有人提及。
简述在Windows 环境下采用RMAN 实用程序[8]对Oracle 数据库进行自动全库热备份的方法。
2备份方法2.1前提条件要完成Oracle 自动全库热备份,需要具备以下几个条件:(1)要对Oracle 数据库启用归档模式。
(2)要保证服务器有足够的硬盘空间,以便存储备份结果。
(3)启动Windows 任务计划服务,实现备份脚本的定期、自动执行。
此外,这里还需要说明两个与热备份相关的概念。
1)备份集,它是RMAM 所提供的一种用于存储备份信息的逻辑结构,并且备份集只能用RMAN 命令建立和转储,备份集可以存储一个或多个文件的备份信息;2)备份片,它是用于存储备份信息的二进制文件,备份集由一个或多个备份片组成,并且每个备份片对应一个操作系统文件。
2.2使用环境在对数据库进行RMAN 备份时,借助Catalog 库(即恢复目录数据库,用于存储与RMAN 备份相关的元数据)进行官方推荐的方法,这种方法只要Catalog 库正常运行,可以很方便地进行数据库的还原恢复。
数据库rman 备份恢复文档Rman 简介RMAN是ORACLE!供的恢复和备份工具,是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。
与传统工具相比,RMAN 具有独特的优势:跳过未使用的数据块。
当备份一个RMAN 备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。
RMAr使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。
二.系统规划数据库备份文件不建议与系统盘( C 盘)、oracle 数据文件存放盘( D 盘)存放在一起,本文单独存放于 E 盘。
注:在进行以下操作前要根据自己的环境建立如下目录“”,“' E:\archivelog_backup ”,“ E:/orabackup_script/ ”。
本文用到的命令中的标点均为英文字符下的标点。
三.设置oracle 数据库为归档模式(ARCHIVELOG)按以下步骤操作,检查oracle 数据库是否为归档模式。
1. 选择“开始”“系统” “运行”,输入cmd按回车。
2. 输入“ sqlplus ”,按回车。
3. 输入“ system / as sysdba ”,按回车。
4. 输入数据库system 账号的密码,按回车。
5. 查看数据库归档模式,输入“ archive log list; ”,按回车。
如下图所示。
C : XDocuments and Settings\Adminis :tpator>sqIplusSQL*Flus: Re lease 10,2.0.1.0 - Production on 星期二 1 月 8 22:2S :02 201^Copi/i*ight (c> 1982, Oracle. All rights i^eserved.旌接到:lOracle Database 10^ Enterprise Edition Release 16.2.0.1.0 - 64b±t Production With the Partit ion Ing, OLAP and D&ta Min inct opt ions档模式:2. 关闭数据库。
Windows下Oracle9i数据库文件的自动备份第一步:在D盘根目录下新建文件夹Backup,这个目录可以任意,复制exp.exe文件到这个目录下,在该目录下新建文件expbkup.batexp test/test@test file=d:\backup\%date:~0,10%.dmplog=d:\backup\%date:~0,10%.log compress=n buffer=8092 consistent=y direct=n constraints=y feedback=10000 grants=y record=y indexes=y triggers=y rows=ysid是test,用户名/密码是test/test,调用exp命令在d:\backup目录下生成相应的数据文件和日志文件。
第二步:在控制面板的任务计划下新建一任务计划向导,选择执行任务的文件expbkup.bat,任务名随意expbkup,选择每天执行这个任务,起始时间18:00,起始日期默认为从当天开始,输入用户名和密码,点完成可添加每天下午6:00备份一次Oracle数据库的计划任务。
调用linux日期函数,实现每天自动生成一个oracle备份-bash-2.05b$ more /opt/oracle/product/movedata/movedata1.shORACLE_HOME=/opt/oracle/product/9.0.2export ORACLE_HOME. /opt/oracle/product/.bash_profileexport DATE=$(date +%Y%m%d) #调用linux日期函数,实现文件按日期命名每天一个备份/opt/oracle/product/9.0.2/bin/exp goldring/123456@szdbfile=/data/Oracle DB_Backup/goldring.dmp log=/data/OracleDB_Backup/loggoldring.dmp consistent=yes/opt/oracle/product/9.0.2/bin/exp jltgame/123456@szdbfile=/data/OracleDB_Backup/jltgame$DATE.dmp log=/data/OracleDB_Ba ckup/logjltgame.dmp consistent=yes/opt/oracle/product/9.0.2/bin/expuserid=oraclebackup/"abcd456&*("@szdb owner=moonprincessfile=/data/OracleDB_Backup/moonprincess.dmp log=/data/OracleDB_Backup/logmoonprincess.dmpconsistent=yes#ftp -n 10.0.0.3 < /opt/oracle/product/movedata/ftpcommand 把以上脚本放到crontab中即可注:oracle实现自动备份关键是要在备份脚本中加入oracle的环境变量和在备份文件名中加入$DATE变量。
Windows系统下Oracle数据库每天⾃动备份linux和unix下⾯使⽤shell可以很⽅便实现,如果windows环境下可以结合计划任务实现1.创建备份⽬录d:\backup, 创建批处理命令Bak.bat,编写备份脚本exp user/passwd@orcl DIRECT=Y BUFFER=100000 FILE=D:\backup\scdd%date:~0,10% OWNER=('scdd') LOG=D:\backup\data.logforfiles /p "D:\backup" /s /m *.dmp /d -3 /c "cmd /c del @path"说明:exp命令是oracle提供的dump备份命令,其中的%date:~0,10%是DOS⾥取⽇期的命令,例如:C:\Users\qyy>echo%date:~0,10%得到2016-11-30forfiles是windows的⽂件查找命令,查找在backup,dmp后缀产⽣三天的⽂件,找到后执⾏删除操作2.Windows定时任务每⽇⾃动执⾏批处理⽂件3.保留最近三天的⽂件,⾃动删除以前⽇期的备份⽂件forfiles参数说明:/P 可是搜索的路径。
在我们这⾥就是要在哪个⽬录寻找要删除的⽂件/M 根据搜索掩码搜索⽂件。
默认为*,如果要找备份处dump⽂件,格式为*.dmp/D ⽂件修改时间在某个时间之前或者之后。
-3 表⽰3天之前的⽂件。
/s 包含⼦⽬录/C 表⽰为每个⽂件执⾏的命令,如果要删除该⽂件可以为"cmd /c del /F /s /q @file"。
其中变量@file表⽰该⽂件名 f s q表⽰强制静默删除可以不⽤;cmd /c表⽰执⾏字符串指定的命令然后终断其中@file可以返还如下结果,我们这⾥⽤@path@file - returns the name of the file.@fname - returns the file name without extension.@ext - returns only the extension of the file.@path - returns the full path of the file.@relpath - returns the relative path of the file.@isdir - returns "TRUE" if a file type is a directory, and "FALSE" for files. @fsize - returns the size of the file in bytes.@fdate - returns the last modified date of the file.@ftime - returns the last modified time of the file以上所述是⼩编给⼤家介绍的Windows系统下Oracle数据库每天⾃动备份,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
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组的。
Windows下Oracle自动异地备份方法2012-6-27方法一(利用ORACLE客户端)一、编写脚本文件:Oracle自动导出脚本(Windows下,导出文件名自动加上日期和时间)只适用于Windows 客户端,通过exp命令完成数据库导出。
导出文件有以下特点:1.导出的文件名自动添加上日期和时间,避免了导出文件的混乱。
2.导出的文件自动通过RAR压缩,同时删除压缩前的文件(需要导出端Windows系统安装好WinRAR),通过WinRAR压缩,Oracle的dmp文件压缩比例很高。
3.支持windows的任务计划。
4.将导出的日志和dmp文件共同打包,避免忘记exp导出的内容。
导出条件:导出端Windows必须安装好Oracle客户端或exp.exe文件,并且配置好Net Manager(指定数据库连接符pcchina)。
以下是具体的脚本,命名为:oracle_bak.bat--------------------------------------------------------------------------------------------------@echo offset RAR_CMD="C:\Program Files\WinRAR\WinRAR.exe"set USERNAME=xxxset PASSWORD=yyyset ORA_SID=orclset COMMAND=%USERNAME%/%PASSWORD%@%ORA_SID%set BACKUPPATH=D:/set TIMESTYLE=%Date:~0,4%年%Date:~5,2%月%Date:~8,2%日%time:~0,2%时%time:~3,2%分set FILEPATH=%BACKUPPATH%/%USERNAME%_%TIMESTYLE%.dmpset LOGPATH=%BACKUPPATH%/%USERNAME%_%TIMESTYLE%.logset RARPATH=%BACKUPPATH%/%USERNAME%_%TIMESTYLE%.rarecho ============================================echo 正在备份Oracle数据库,请稍等......echo ============================================exp %COMMAND% file=%FILEPATH% full=y log=%LOGPATH%echo 任务完成!echo ============================================echo 压缩备份文件,请稍等......echo ============================================%RAR_CMD% a -df "%RARPATH%" "%FILEPATH%" "%LOGPATH%"echo 压缩完成!--------------------------------------------------------------------------------------------------脚本结束。
1.Windows环境下Oracle数据库的自动备份脚本
1 创建批处理文件gzepbmotorAutoBackup.bat
gzepbmotorAutoBackup.bat中详细内容如下:
@echo off
echo 正在备份Oracle数据库,请稍等......
exp userid='ybhrm/ybhrm@orcl'
file=D:/backup/data/ybhrm_%date:~0,4%%date:~5,2%%date:~8,2%.dmp
log=D:/backup/data/ybhrm_%date:~0,4%%date:~5,2%%date:~8,2%.log full=y
echo 任务完成!
2新建备份目录d:\backup\data d:\backup\log
3添加windows一个任务计划gzepbmotorAutoBackup
开始> 所有程序> 附件> 系统工具> 任务计划> 添加任务计划> 下一步> 在浏览中查找刚刚写好的ytcn.bat 文件> 任务名输入ytcn,执行这个任务选择每天,下一步> 起始时间下午12:00,起始日期2009-7-11,下一步> 输入用户名及密码,用户名要求是管理员权限用户名,下一步> 完成
点击"完成"之后,会在任务计划栏目下新增一个名为"ytcn"的任务计划,表明已经配置完毕。
备注:有时点击"完成" 之后,系统警告
4 5。
三种方法,供您参考,如果您对Oracle备份方面感兴趣的话,不妨一看。
Oracle自动备份数据库不外乎以下三种方式WINDOWS下的任务计划(At命令)UNIX下的Crontab第三方工具如Viritas在以上三种方式中Viritas属于第三方工具,很多人可能都没有接触,主要说一下windows的任务计划与unix的cron1、生成脚本文件,如backup.rcv 假定文件内容如下:$>cat backup.rcvconnect target sys/password rcvcat rman/rman@localname;run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’archivelog all delete input;release channel c1;release channel c2;release channel c3;}2、生成执行文件在windows上生成backup_archive.bat,内容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,内容包括oracle/ramn/rman cmdfile = backup.rcv3、加入调度在windows中用任务计划向导即可,或使用at命令。
在unix中,在目标机器上编写一个文件,用以启动Oracle自动备份进程。
假定文件名为ORACLE,文件将放在/var/spool/cron/crontabs目录下$>cat oracle0 23 * * 0 backup_archive.sh#表示星期天23点对数据库备份0 12,18 * * * backup_archive.sh#表示每天12点,18点备份Crontab文件的每一行由六个域(minutes,hours,day of month,month,day of week,command)组成,域之间用空格或Tab分隔开来oracle备份命令使用实例备份命令实现oracle备份的过程,希望可以让您对oracle备份命令有更深的认识。
Oracle数据库在windows操作系统下自动备份操作手册1、第一步首先准备自动备份文件(1)首先新建一个bat文件文件,命名为expautobackup.bat,如下图所示:(2)用记事本方式打开编辑expautobackup.bat文件,然后对文件中内容编辑如下:setmydate=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time: ~3,2%%time:~6,2%set mydate=%mydate= :0%exp BDCDJK/BDCDJK@orcl file=d:\ora_bak\data\BDCDJK_%mydate%.dmplog=d:\ora_bak\log\BDCDJK_log_%mydate%.logexp BDCQJK/BDCQJK@orcl file=d:\ora_bak\data\BDCQJK_%mydate%.dmplog=d:\ora_bak\log\BDCQJK_log_%mydate%.logforfiles /p "D:\ora_bak\data" /s /m *.* /d -7 /c "cmd /c del @path"forfiles /p "D:\ora_bak\log" /s /m *.* /d -7 /c "cmd /c del @path" pause如图示说明:(1)、注意,图中的目录文件夹一定要真实存在,否则备份会失败;(2)、该方式是以普通方式备份(非数据泵方式备份),支持远程方式备份;2、创建自动备份定时任务(1)首先在开始菜单栏中,找到任务计划程序,如下图所示:(2)点击任务计划程序,进入如下界面:在任务计划程序界面右边找到创建基本任务按钮,点击进入创建基本任务界面,如下图所示:输入创建的任务名称,如oracle数据库自动备份;(3)在创建基本任务向导界面,输入信息后,点击下一步,进入如下界面:在第一个触发器界面,选择第一个,每天响应,如上图所示;(4)触发器界面选择每天后,直接点击下一步,进入如下界面:在此界面设置执行的开始响应时间,如设置2020年5月13日凌晨开始启动备份,则可以设置时间如下,日期选择2020-05-13,时间选择00:00:00,每隔选择1天,如上图所示(上图);(5)设置时间后,点击下一步,如下图所示:选择第一项启动程序,如上图所示:(6)选择启动程序后点击下一步,如下图所示:点击浏览按钮,选择对应的准备好的自动备份bat文件,如上图所示;(7)选择备份文件后,然后点击下一步,如下图所示:(8)完成后在任务计划程序主界面检查刚才的任务是否创建成功,并确保任务启动,如果是禁用状态,则右键选择启动,状态会变成准备就绪,如下图所示:3、检查备份任务(是否一天做两次备份)关于定时备份任务,为了安全起见,建议一天做两次备份,分别备份时间是中午12点40和凌晨00点00分备份,大家就需要建立两个自动定时备份任务,如分别是oracle数据库自动备份中午12点和oracle数据库自动备份凌晨0点;如下图所示:注意如果添加凌晨定时备份任务计划,则步骤与第二章节操作步骤一致,只是在第二章第4小章节中的时间修改设置如下图所示:4、核对备份成果是否正确(1)、对于备份完成后,则在对应的备份路劲目录下检查是否生成了备份文件和备份日志,如下图所示:(2)、对备份日志用记事本打开,看日志中是否有报错,如没有报错,则表示自动备份成功,如下图所示。
Problem如何配置Backup Exec对Windows平台下的Oracle进行备份?Solution请按照以下步骤一步一步对Oracle备份进行配置:1. 首先登陆到Oracle服务器,然后点击“开始”菜单,选择“程序”,选择“Symantec Backup Exec for Windows Servers底下的Backup Exec Remote Agent Utility,参考下图:2. Backup Exec Remote Agent Utility打开后如下图:注意:建议不要勾选“每次登陆时启动Remote Agent Utility(S)”此项目。
3. 请切换到Oracle标签页,然后点击“新建”按钮进行Oracle实例的添加,如下图:注意:如果您的Backup Exec的版本是12.0或者以上,请先按窗口右下方的“更改设置”按钮,然后再重新切换回Oracle标签页。
4. 在添加实例的窗口选择并添加您的实例,参考下图:A.建议使用sys用户作为实例连接的凭证。
B.建议“介质服务器名称或IP地址”栏目填写备份服务器的主机名注意:请确保DNS解释正确,或者修改hosts文件添加正确条目以确保解释正确。
5. 切换到“DBA 设置”页面,添加用于连接此Oracle服务器操作系统的用户凭证;并勾选“对于Oracle和DB2操作,请使用完整的计算机名或IP地址”,并输入此Oracle服务器的主机名。
注意:请确保DNS解释正确,或者修改hosts文件添加正确条目以确保解释正确。
如采用工作组验证方式,在用户名里不要添加计算机的名称;如采用域验证,则用户名需要以 Domain\Username 方式填写。
6. 最后点击“确定”按钮完成Oracle服务器上的配置,Backup Exec Remote Agent Utility将会最小化到系统栏继续运行,建议您右键点击它的图标,选择“退出”关闭此工具。
Windows下Oracle9i数据库文件的自动备份
第一步:
在D盘根目录下新建文件夹Backup,这个目录可以任意,复制exp.exe文件到这个目录下,在该目录下新建文件expbkup.bat
exp test/test@test file=d:\backup\%date:~0,10%.dmp
log=d:\backup\%date:~0,10%.log compress=n buffer=8092 consistent=y direct=n constraints=y feedback=10000 grants=y record=y indexes=y triggers=y rows=y
sid是test,用户名/密码是test/test,调用exp命令在d:\backup目录下生成相应的数据文件和日志文件。
第二步:
在控制面板的任务计划下新建一任务计划向导,选择执行任务的文件expbkup.bat,任务名随意expbkup,选择每天执行这个任务,起始时间18:00,起始日期默认为从当天开始,输入用户名和密码,点完成可添加每天下午6:00备份一次Oracle数据库的计划任务。
调用linux日期函数,实现每天自动生成一个oracle备份
-bash-2.05b$ more /opt/oracle/product/movedata/movedata1.sh
ORACLE_HOME=/opt/oracle/product/9.0.2
export ORACLE_HOME
. /opt/oracle/product/.bash_profile
export DATE=$(date +%Y%m%d) #调用linux日期函数,实现文件按日期命名每天一个备份
/opt/oracle/product/9.0.2/bin/exp goldring/123456@szdb
file=/data/Oracle DB_Backup/goldring.dmp log=/data/OracleDB_Back
up/loggoldring.dmp consistent=yes
/opt/oracle/product/9.0.2/bin/exp jltgame/123456@szdb
file=/data/OracleDB_Backup/jltgame$DATE.dmp log=/data/OracleDB_Ba ckup/logjltgame.dmp consistent=yes
/opt/oracle/product/9.0.2/bin/exp
userid=oraclebackup/"abcd456&*("@szdb owner=moonprincess
file=/data/OracleDB_Backup/moon
princess.dmp log=/data/OracleDB_Backup/logmoonprincess.dmp
consistent=yes
#ftp -n 10.0.0.3 < /opt/oracle/product/movedata/ftpcommand 把以上脚本放到crontab中即可
注:oracle实现自动备份关键是要在备份脚本中加入oracle的环境变量和在备份文件名中加入$DATE变量。