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下Oracle9i数据库文件的自动备份
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自动异地备份方法
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 压缩完成!--------------------------------------------------------------------------------------------------脚本结束。
使用EXPDP方式备份整个实例
使用EXPDP方式备份整个实例
本教程可使用system账户将整个实例备份(包含空表),并自动删除超过6天的历史数据。
1、root用户登录服务器
mkdir -p /backup/oracledata #新建Oracle数据库备份目录
chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle
用户(用户oracle与用户组oinstall是在安装Oracle数据库时设置
的)
2、创建目录对象
因为使用expdp命令需要使用到目录对象(directory),所以首先需要创建目录对象,并赋予某个
用户对目录对象的操作权限。
将下面的代码写入最后一行:
30 2 * * * oracle /backup/oracledata/ordatabak.sh
#每天凌晨2点30分,以oracle用户执行ordatabak.sh备份文件
:wq #保存退出
service crond restart #重启系统计划服务
即每天凌晨2点30分进行备份,如需每天备份多次,可设置不同时间段备份:例如:* 3,13,18 * * * oracle /backup/oracledata/ordatabak.sh
即每天3点、13点、18点进行备份。
说明:文件备份目录,用户oracle必须有更改权限,否则无法备份。
精心整理。
Windows环境下Oracle数据库的自动备份脚本
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。
Linux_oracle数据库的备份与恢复
Linux_oracle数据库的备份与恢复1 数据库备份和恢复(备份和恢复均已做成脚本自动运行,下列操作供参考,请不要在生产机上做测试) 1)数据库备份:◆将dbexp.parm,dbexp.sh 拷贝至/home/oracle/backup/.以oracle用户登录系统$ cd /home/oracle/backup$ dos2unix *$ chmod 755 dbexp.sh◆手工执行备份,用oracle用户登录:$ cd /home/oracle/backup$ ./dbexp.sh◆自动执行备份,用root用户登录:#crontab -e 00 01 * * * su - oracle -c "/home/oracle/backup/dbexp.sh"2)数据库恢复:以oracle用户登录系统◆删除用户:sqlplus /nolog>connect / as sysdba;>drop user center cascade;>create user center identified by center;>grant connect,resource,dba to center◆恢复数据库$imp center/center full=y grants=y INDEXES=y constraints=y LOG=/tmp/backup.log rows=y ignore=y file=xxx(xxx--为以前备份的数据文件,如checkid_20041123.dat)oracle数据库的备份与恢复原理及方法:导出(备份)exp 用户名/密码@服务名file=d:daochu.dmp (rows=no(导出空结构)) 导入(恢复)imp 用户名/密码@服务名file=d:daochu.dmp fromuser=原用户名touser=新用户名---- 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。
一个优秀的oracle 自动备份脚本(exp for windws)
一个优秀的oracle自动备份脚本(exp for windws)xx时间:2011-5-12一、脚本内容set mydate=%DATE:~0,10%exp system/system@hzic full=y file=d:\ora_bak\data\hzic_%date%.dmplog=d:\ora_bak\log\hzic-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"注:使用时只需要把上述内容,复制到记事本中,保存为.bat的文件即可,注意换行,上面其实是4行内容。
自动备份的计划设置,可以用windows的任务计划轻松搞定。
二、解释说明1、set mydate=%DATE:~0,10%:设置日期变量,为了在备份导出文件时自动使用当前日期进行命名。
0代表开始位置,10代表从开始位置取10个字符2、expsystem/system@hzicfull=y file=d:\ora_bak\data\hzic_%date%.dmplog=d:\ora_bak\log\hzic-log_%mydate%.log:使用sytem账号进行全库导出,备导出的数据文件存放在d:\ora_bak\log目录下,导出的日志文件存放在d:\ora_bak\log目录下3、forfiles /p "D:\ora_bak\log" /s /m *.* /d -7 /c "cmd /c del @path":自动删除7天前的备份,详细说明见后面附件附件FORFILES [/P pathname] [/M searchmask] [/S]描述:选择一个文件(或一组文件)并在那个文件上执行一个命令。
oracle 备份步骤
oracle 备份步骤
以下是 Oracle 数据库备份的一般步骤:
1. 确保备份介质就绪:选择合适的备份介质,如硬盘、磁带等,并确保介质的可用性。
2. 创建备份模式:根据备份需求,选择备份模式,如全量备份、增量备份等。
3. 确定备份策略:根据需求和数据重要性,制定备份的频率和保留周期。
4. 配置备份参数:使用 Oracle 数据库管理工具如 RMAN (Recovery Manager)等,配置备份参数,指定备份目标、备
份方式、备份文件名等。
5. 执行备份任务:通过 RMAN 或其他备份工具,执行备份任务。
对于全量备份,一般会备份整个数据库;而对于增量备份,则只备份自上次备份以来发生变化的数据。
6. 验证备份完整性:备份完成后,进行备份完整性验证,确保备份文件没有损坏或错误。
7. 校验备份文件:通过数据库工具运行校验命令,验证备份文件的完整性和一致性。
8. 存储备份文件:将备份文件存储在安全的位置,可以是本地
磁盘、远程服务器或云存储等。
同时,确保备份文件有适当的冗余和故障恢复计划。
9. 记录备份信息:记录备份相关信息,包括备份时间、备份文件名称和路径等。
10. 定期恢复测试:定期进行备份恢复测试,验证备份文件的可用性和恢复时间。
请注意,上述步骤仅供参考,具体的备份过程可能会因具体环境和需求而有所不同。
建议在备份前仔细查阅 Oracle 官方文档,并根据实际情况做出相应调整。
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状态。
oracle备份方案
Oracle备份方案1. 引言数据库备份是保护和应对意外数据损失的关键操作之一。
Oracle作为一种常用的关系型数据库管理系统,在备份方案的设计和实施上有多种选项。
本文将从整体架构设计、备份类型、备份策略和自动化备份等方面,探讨一种可行的Oracle备份方案。
2. 整体架构设计为了保证备份的可靠性和灵活性,我们建议采用如下整体架构设计:•主数据库(Production Database):负责处理实际的业务数据。
•备份数据库(Backup Database):用于定期备份主数据库的数据,并保持与主数据库的同步性。
•存储系统(Storage System):提供高性能的存储设备,用于存储备份数据。
3. 备份类型在备份方案中,可以采用以下备份类型的组合来满足不同的需求:•完全备份(Full Backup):备份整个数据库,包括数据文件、控制文件和归档日志。
•增量备份(Incremental Backup):备份自上次备份以来发生变化的数据块。
•归档备份(Archive Backup):备份数据库的归档日志,用于恢复数据到备份时的状态。
4. 备份策略制定合理的备份策略对于Oracle备份方案的成功实施至关重要。
以下是一些备份策略的建议:•定期完全备份:根据业务需求和数据的变化情况,制定定期完全备份的计划,通常可以选择每天或每周进行完全备份。
•增量备份结合完全备份:在定期完全备份的基础上,结合增量备份进行备份,可以大大减少备份过程中对网络和存储资源的占用。
•归档备份保留:在备份过程中,同时备份归档日志,并保留一定的时间段,以便在需要时进行数据恢复。
5. 自动化备份为了降低运维成本和人为错误的风险,建议采用自动化备份方案。
以下是一些实施自动化备份的步骤:•自动备份脚本:编写一个自动备份脚本,定期执行备份操作,并可以灵活调整备份策略。
•定时任务调度:利用操作系统的定时任务调度机制,设定备份脚本的执行时间,确保备份过程按计划顺利进行。
ORACLE数据库备份方法
ORACLE数据库备份方法2008年03月21日星期五 13:38ORACLE数据库有两类备份方法。
第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。
数据库逻辑备份方法ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。
表模式备份某个用户模式下指定的对象(表)。
业务数据库通常采用这种备份方式。
若备份到本地文件,使用如下命令:exp icdmain/icd rows=y indexes=n compress=n buffer=65536feedback=100000 volsize=0file=exp_icdmain_csd_yyyymmdd.dmplog=exp_icdmain_csd_yyyymmdd.logtables=moninformation,icdmain.serviceinfo,icdmain.dealinfo若直接备份到磁带设备,使用如下命令:exp icdmain/icd rows=y indexes=n compress=n buffer=65536feedback=100000 volsize=0file=/dev/rmt0log=exp_icdmain_csd_yyyymmdd.logtables=moninformation,icdmain.serviceinfo,icdmain.dealinfo注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。
出于速度方面的考虑,尽量不要直接备份到磁带设备。
用户模式备份某个用户模式下的所有对象。
业务数据库通常采用这种备份方式。
若备份到本地文件,使用如下命令:exp icdmain/icd owner=icdmain rows=y indexes=n compress=nbuffer=65536feedback=100000 volsize=0file=exp_icdmain_yyyymmdd.dmplog=exp_icdmain_yyyymmdd.log若直接备份到磁带设备,使用如下命令:exp icdmain/icd owner=icdmain rows=y indexes=n compress=nbuffer=65536feedback=100000 volsize=0file=/dev/rmt0log=exp_icdmain_yyyymmdd.log注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。
Oracle备份常用命令
Oracle备份常用命令Oracle也是常用的数据库之一,备份起来的话有时候是否感到棘手?保存好以下信息,相信能助你一臂之力。
一.常用的备份命令1.list backup;列出数据库中所有的备份信息。
2.list backup of controlfile;列出所有备份的控制文件。
3.list backup of datafile ' 或者 list backup of datafile 对应数据文件的ID号。
数据文件全路径.dbf';列出指定的备份的数据文件。
4.list backup of archivelog all;列出所有备份的归档文件。
5.list copy of tablespace '表空间名';列出指定表空间的备份信息。
6.list expired backup;列出无效备份。
7.delete obsolete;删除过期备份。
8.delete expired backup;删除无效备份。
9.delete expired copy;删除expired副本。
10.delete backupset 备份集编号;删除指定备份集。
11.delete backup;删除所有备份集。
12.delete copy;删除所有映像副本。
13.report need backup;查看所需要的备份文件14.report need backup tablespace 表空间名;查看指定表空间是否需要备份。
15.crosscheck archivelog all;检查归档文件是否有效16.crosscheck backup;检查所有备份集。
RMAN相关的list backup of database(查看数据库的全库备份,全部细节都包括)list backup of tablespace users (查看users表空间的备份) list backup of datafile 5;(5是表空间对应的文件id)list backup of controlfile(看出控制文信息的备份)list backup of datafile'+DATADG/cboms/datafile/users.264.735423243';(根据具体的数据文件的具体位置,查看备份)list expired backup;(无效的备份)list expired archivelog all;(查看无效的archive log 日志) list backup of database summary(这个是对概况性的,对数据库有个直观,全面的了解)list backup of database summarylist backup of archivelog all summarylist backup of tablespace users summarylist backup of datafile 5 summarycrosscheck archivelog all;验证DB的归档日志时候缺失crosscheck backup;验证数据库备份集的是否缺失delete expired archivelog all;命令删除所有过期的归档日志RMAN> crosscheck backup;using channel ORA_DISK_1crosschecked backup piece: found to be 'AVAILABLE'backup piecehandle=/u01/flash_recovery_area/DBTEST/backupset/2012_04_21 /o1_mf_nnndf_TAG20120421T153359_7s4rq7v6_.bkp recid=22 stamp=781198439crosschecked backup piece: found to be'AVAILABLE'backup piecehandle=/u01/flash_recovery_area/DBTEST/backupset/2012_04_21 /o1_mf_ncnnf_TAG20120421T153359_7s4rsm9k_.bkp recid=23 stamp=781198515Crosschecked 2 objectsRMAN>17.修改备份状态用CHANGE,如修改表空间RMAN> backup tablespace users format'/backup/rmanbackup/userscp';Starting backup at 21-APR-12using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backupsetchannel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00004name=/u01/oradata/dbtest/users01.dbfchannel ORA_DISK_1: starting piece 1 at 21-APR-12channel ORA_DISK_1: finished piece 1 at 21-APR-12piece handle=/backup/rmanbackup/userscptag=TAG20120421T155115 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 21-APR-12RMAN> list backup of tablespace users;List of Backup Sets===================BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ---------------------------24 Full 2.02M DISK 00:00:00 21-APR-12BP Key: 28 Status:AVAILABLE Compressed: NO Tag:TAG20120421T155115Piece Name: /backup/rmanbackup/userscpList of Datafiles in backup set 24File LV Type Ckp SCN Ckp Time Name---- -- ---- ---------- --------- ----4 Full 1388204 21-APR-12 /u01/oradata/dbtest/users01.dbfRMAN> change backup of tablespace users unavailable;changed backup piece unavailablebackup piece handle=/backup/rmanbackup/userscp recid=28 stamp=781199475Changed 1 objects to UNAVAILABLE statusRMAN> list backup of tablespace users;List of Backup Sets===================BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ---------------------------24 Full 2.02M DISK 00:00:00 21-APR-12BP Key: 28 Status:UNAVAILABLE Compressed: NO Tag:TAG20120421T155115Piece Name: /backup/rmanbackup/userscpList of Datafiles in backup set 24File LV Type Ckp SCN Ckp Time Name---- -- ---- ---------- --------- ----4 Full 1388204 21-APR-12 /u01/oradata/dbtest/users01.dbfRMAN>如果没有指定表空间位置,来改变状态,不会成功。
oracle 数据库备份方案
Oracle 数据库备份方案引言数据库备份是确保数据安全和业务连续性的重要环节之一。
Oracle 数据库备份方案是指针对 Oracle 数据库设计的备份策略和操作步骤,以确保数据库在发生故障或数据丢失时能够快速恢复。
本文将详细介绍 Oracle 数据库备份方案的设计和实施步骤。
备份策略设计数据库备份策略应根据业务需求和风险评估来制定。
一般而言,数据库备份策略应包括以下要素:备份类型备份类型包括完全备份和增量备份。
完全备份是指备份整个数据库;增量备份是指备份数据库发生更改的部分。
建议采用定期完全备份和增量备份结合的方式,以最大程度地减少备份时间和存储空间。
备份周期备份周期应根据业务的 SLA 要求来确定。
常见的备份周期包括每日备份、每周备份和每月备份。
根据业务需求,可以灵活调整备份周期。
存储位置备份数据应保存在安全可靠的存储介质中。
常见的存储介质包括硬盘、磁带和云存储等。
建议将备份数据分散存储,以避免单点故障。
定时任务为了确保备份任务能够按时执行,可通过定时任务来自动触发备份操作。
Oracle 数据库提供了 DBMS_SCHEDULER 包来实现定时任务的管理。
可以根据实际需求配置定时任务的执行时间和频率。
备份验证备份验证是确保备份数据完整性和可恢复性的关键步骤。
可以定期恢复备份数据,验证数据库的一致性和可用性。
在发现问题时,及时修复备份策略中的漏洞。
备份操作步骤根据设计好的备份策略,我们可以按照以下步骤进行数据库备份:1.连接到 Oracle 数据库。
sqlplus / as sysdba2.进入备份模式。
alter database begin backup;3.复制数据库文件到备份目录。
cp $ORACLE_HOME/dbs/* /backup_directory4.退出备份模式。
alter database end backup;5.将备份文件压缩并移动到安全的存储介质。
tar -czvf backup.tar.gz /backup_directory mv backup.tar.gz /secure_storage6.更新备份日志。
Oracle数据库备份方案
Oracle数据库备份方案一前言如同社会总会有不公平、人总会犯错误、程序总会有BUG一样,数据库出现问题是不可避免的,好的备份是项目成功应用的关键。
从独立的硬盘保存备份文件、主机与从机同步(DATA GUARD)到多实例单数据库的负载平衡(RAC),按照不同的需求对应不同级别的技术,但其根本就是数据的冗余,用人力和物力来提高数据可用性。
二备份恢复工具简介1,常用的imp/exp工具我们常用的imp/exp工具是由Oracle提供的用于在客户端把数据导出到dmp文件,进行数据转移和保存的方法,是逻辑备份。
在11gR2中已经废弃exp,保留imp,相关操作由数据汞(Data Pump)的impdp/expdp代替。
优点为:1,使用简单。
2,可以指定导出某个逻辑对象(整个数据库或用户或表)缺点为:1,不能进行完全恢复(Complete Recovery)2,只能备份数据文件(Data File)3,全库导出对数据库压力较大4,占用空间较大2,恢复管理器(RMAN)由Oracle提供的专业的备份与恢复工具,是物理备份。
优点为:1,可以进行完全恢复与不完全恢复2,可以备份所有数据库文件(控制文件,服务器参数文件,归档日志文件,数据文件)3,具有功能强大的控制能力和脚本编写语言4,支持在线热备份5,支持多级增量备份6,支持并行备份,恢复7,减少备份数据量(压缩、块级备份)8,可将文件备份到磁盘或磁带9,支持在线块级别恢复10,可以限制速率,减少备份中对系统的造成的影响11,等等。
三配置RMAN1,配置归档(ARCHIVELOG)模式数据库在装载(MOUNT)模式下执行下列操作开启归档模式SQL> ALTER DATABASE ARCHIVELOG;将数据库置于归档模式可防止重做日志在归档之前被覆盖。
如果处于非归档(NOARCHIVELOG)模式,数据库只能恢复到上一次备份的时间,到当前时间的之间的数据变更都会丢失。
oracle数据库备份 方法
oracle数据库备份方法:
Oracle数据库备份的方法有多种,以下是一些常见的方法:
1.导出/导入(Expdp/Impdp或Exp/Imp):利用expdp可将数据从数据库中提取出来,再利用impdp将提取出来
的数据送回到Oracle数据库中去。
2.冷备份:冷备份发生在数据库已经正常关闭的情况下,所有的数据文件、控制文件、归档重做日志文件以及初始化参
数文件都需要拷贝。
冷备必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。
3.热备份:热备份是在数据库运行时进行数据备份的过程,执行热备份的前提是数据库运行在可归档日志模式。
4.逻辑备份:业务数据库采用此种方式,此方法不必数据库运行在归挡模式下,不仅备份简单,而且能不必外部存储设
备。
ORACLE最简单有效的备份恢复方案
ORACLE 最简单有效的备份恢复方案ORACLE备份分两种,1.逻辑备份;2.物理备份;逻辑备份又分两种:传统的exp备份;10g开始支持的expdp数据泵备份;物理备份主要就是RMAN备份;最基本的原则是:这些逻辑或物理备份和数据库文件必须放在不同的硬盘上;否者一损俱损;备份就没多大意义了;如果数据库不是很大,比如在50G以下,那么我们就考虑一些傻话化的全备方案我现在的备份方案是:两个逻辑备份和RMAN 备份全部用上;1.传统dmp逻辑备份和恢复1.1传统dmp逻辑备份,这个是最简单的备份方法;现在我提供一个简单的脚本:1.1.1首先建立一个bat文件,名字叫:exp_backup.bat内容是:set oracle_username=%1set oracle_password=%2set local_tnsname=%3set url=%oracle_username%/%oracle_password%if not %local_tnsname% == "" set url=%url%@%local_tnsname%if exist %oracle_username%_old.dmp del %oracle_username%_old.dmpif exist %oracle_username%_old.log del %oracle_username%_old.logif exist %oracle_username%.dmp ren %oracle_username%.dmp %oracle_username%_old.dmpif exist %oracle_username%.log ren %oracle_username%.log %oracle_username%_old.logexp %url% file=%oracle_username%.DMP log=%oracle_username%.LOG该脚本是一个通用的最简单的exp脚本;意思就是:备份之间,把以前的备份文件修改名字,后面加上_old ,如果本来就有old文件,就删除之;之后,就开始备份;备份的文件目录和该脚本一致(这样做最简单);所以总是会出现一新一旧两个文件;当然只要最新的就行了,所以理论上只要一份文件;但是考虑有可能备份的时候突然报错,这样old文件还在,将就着使用,否者新的是坏的,旧的也没了;有的人做一周7天逻辑循环备份,我觉得没有必要,要那么多旧的备份文件何用,浪费空间;1.1.2然后再做一个bat文件,比如是my_exp.bat内容是:call exp_backup.bat USER PASSWORD ""如果是在服务器自身上备份,就不需要写入数据库服务名;如果有多个用户数据需要备份;那么就在my_exp.bat继续添加:call exp_backup.bat USER1 PASSWORD1 ""….My_EXP.BAT可以做成windows的执行计划,每天不忙的时候执行一次;1.2 exp备份的恢复下面就是恢复的最简单方法:1.2.1.把电脑上当前用户彻底删除,用命令,这样就可以把对象彻底清除;DROP USER XXX CASCADE1.2.2.再创建该用户CREATE USER xxxxIDENTIFIED BY xxxxDEFAULT TABLESPACE xxxxTEMPORARY TABLESPACE TEMP并赋予权限:GRANT DBA TO xxxx WITH ADMIN OPTION1.2.3用IMP恢复C:\> imp xxxx/xxxx FILE=xxxx.DMP LOG=xxxx.LOG FULL=Y2.10G后的数据泵expdp备份和恢复2.1 expdp 备份据说这个比exp有很多优点,这个我就不说了,大家可以自己参考资料;不过我测试下来,如果数据量小expdp 还是不如exp的;但是还是建议是使用expdp,因为数据会慢慢变大的,用expdp更好些;我最看重的是:expdp备份的文件涵盖的东西更多;所以恢复的时候方便;删除用户后,可以不用再创建用户恢复;实现方法和exp类似:不过,它的目录不像EXP那么直接,需要使用oracle的目录对象;所以2.1.1第一步先创建一个目录对象,比如:SQL>create or replace directory LOGIC_BUCKUPas 'd:\OACLE_BACKUP\逻辑备份';2.1.2建立一个通用脚本,比如叫EXPDP_BACKUP.BAT内容是:set oracle_username=%1set oracle_password=%2set local_tnsname=%3set url=%oracle_username%/%oracle_password%if not %local_tnsname% == "" set url=%url%@%local_tnsname%if exist %oracle_username%_old_dump.dmp del %oracle_username%_old_dump.dmpif exist %oracle_username%_old_dump.log del %oracle_username%_old_dump.logif exist %oracle_username%_dump.dmp ren %oracle_username%_dump.dmp %oracle_username%_old_dump.dmpif exist %oracle_username%_dump.log ren %oracle_username%_dump.log %oracle_username%_old_dump.logEXPDP %url% DIRECTORY=LOGIC_BACKUP DUMPFILE=%oracle_username%_DUMP.DMP LOGFILE=%oracle_username%_DUMP.LOG PARALLEL=2该方法与上面的dmp备份类似;2.1.3然后再做一个bat文件,比如是my_expdp.bat内容是:call expdp_backup.bat USER PASSWORD ""如果是在服务器自身上备份,就不需要写入数据库服务名;如果有多个用户数据需要备份;那么就在my_exp.bat继续添加:call expdp_backup.bat USER1 PASSWORD1 ""……同dmp备份一样,My_EXPdp.BAT也可以做成windows的执行计划,每天不忙的时候执行一次;2.2 expdp备份的恢复下面就是恢复的最简单方法:2.2.1.把电脑上当前用户彻底删除,用命令,这样就可以把对象彻底清除;DROP USER XXXX CASCADE2.2.2.用另外一个权限较高的用户(最好不是sys,比如是YYYY) 导入:C:\>IMPDP yyyy/yyyy DUMPFILE=xxxx_DUMP.DMP LOGFILE=xxxx_DUMP.LOG DIRECTORY=LOGIC_BUCKUPPARALLEL=2(这里的LOGIC_BUCKUP是oracle的对象目录,要和xxxx_dump.dup存放的目录一致)这样就OK了,也即是说用户不需要创建,数据泵文件含有了用户以及它原来的权限;从这点来讲,是不是比IMP导入更为方便;好了,两种逻辑备份讲完了,下面重点说一下RMAN备份;因为在生产系统中,逻辑备份作用不大的,因为它不能实时的备份数据,所以逻辑备份更多的时候是给开发人员互相导入数据和存储过程之类用的;RMAN备份的原理还是有点复杂的,很多细节的我也不是很清楚,不过没关系,我们可以整理出一套最简单的备份方案:3.RMAN备份和恢复3.1. RMAN备份3.1.1 首先把数据库参数关注一下,关注下面两个参数第一个参数:db_recovery_file_dest_size,上图中的大小是默认的4G,也就是归档模式下,archivelog的所有归档日志文件大小总和,如果超过这个数,就会导致数据库出问题;所以要非常小心,因而建议修改大一些,比如修改成20G;当然最本质的方法,是要按时清理无用的归档日志;第二个参数:db_recovery_file_dest ,这个参数非常重要,是11G里,存放rman备份集和归档日志的地方;默认是放在flash_recovery_area目录下的,因为我的系统的flash_recovery_area 和数据库文件在同一个硬盘,所以修改了;3.1.2.关注redo日志文件,每组里要有两个成员,1个在数据库文件的硬盘下,1个在备份文件的硬盘下,因为日志文件写入最频繁,RMAN无法对它备份,或者说任何备份工具都无法对redo日志备份;不过redo它自己可以做冗余,两个文件只要有一个在,即可;比如:3.1.3做一个最简单的rman备份脚本;3.1.3.1首先做一个txt,比如是:autorman.txt内容是:sql 'alter system archive log current';backup database;delete noprompt obsolete;这三句话的作用分别是:1.对当前redo日志进行归档;2.备份数据库3.删除无效的archive日志和rman备份集3.1.3.2 做一个bat 调用上面的autorman.txt,比如是:autorman.bat内容是:rman target / @autorman.txt然后就在winddows下做一个执行计划,每天或没隔几天,自动执行一下这个autorman.bat当然备份之前,要用rman>show all 看一下参数设置,有没有自动备份控制文件,如果没有,要加上;3.2 rman恢复Rman恢复非常简单;下面说一下步骤:3.2.1 假如最新一次全备是3天前的,先随便建立一个新表,比如是test_rman,随便插几条数据;用来测试还原后,这个最新的对象是否也给恢复了;现在用sqlplus登陆,shutdown 数据库,然后把oracle的数据库文件全部删除(控制文件,redo日志文件,数据库文件);3.2.2 用sql> startup nomount 启动数据库的参数文件,参数文件和数据库文件不在同一个硬盘,所以没丢;这时候如果执行sql>alter database mount 会报错,因为mount会加载控制文件,而控制文件已经丢了;3.3.3.把以前控制文件所在的目录建立好,否者rman找不到控制文件恢复路径;然后执行RMAN> restore controlfile from autobackup;这样控制文件就回复了,有了控制文件就好办了;3.2.4. 以为有了控制文件,所以在sqlplus里,可以装载数据库Sql>alter database mount3.2.5 数据库被装载后,说明控制文件生效了,这时候,所有的数据库信息都出来了;所以可以用rman还原数据库了:RMAN> RESTORE database;3.2.6 恢复数据库:RMAN> recover database;2.2.7 数据库现在已经全部回复好,可以重新启动了:SQL> alter database open resetlogs;数据库已更改。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目标:我想实现这样的功能,只要会简单的linux命令就能实现oracle exp的自动备份
环境:linux as3+oracle9i
具体的步骤:
1.邮件设置
[root@sxapp1 mail]# cd /etc/mail
[root@sxapp1 mail]# mv submit.cf submit.cfbak
[root@sxapp1 spool]# chmod a+wrx mqueue/
[root@sxapp1 mail]# echo "sdsdssd"|mail -s "sda" westlife_xu@
2.建立备份目录
[root@sxapp1 mail]# su - oracle
[oracle@sxapp1 oracle]$ mkdir -p /home/oracle/phy_backup/data --备份文件存放目录
[oracle@sxapp1 oracle]$ mkdir -p /home/oracle/phy_backup/log --备份的log 路径
[oracle@sxapp1 oracle]$ cd /home/oracle/phy_backup
3.备份脚本编写,测试(脚本要根据需求微调,我已经测试通过了)
[oracle@sxapp1 phy_backup]$ vi exp.sh
#!/bin/sh
. /home/oracle/.bash_profile
#define variable......
backup_date=`date +%Y%m%d`
bak_home=/home --df -k里面必须能看见
backup_dest=/home/oracle/phy_backup/data --根据需要填写
backup_log=/home/oracle/phy_backup/log --根据需要填写
RECIPT=''westlife_xu@'' --报警邮件设置
--检查磁盘空间
# Check local disk space..................................
USED=` df -k|grep $bak_home|awk ''{print $5}''|awk -F% ''{print $1}''`
if [ $USED -gt 85 ]; then
echo "Disk space is full\243\254please check it"|mail -s "exp full backup failed" $RECIPT
exit 1
fi
--开始备份
#starting exp backup.....
exp system/abc123 full=y buffer=65536 file=$backup_dest/data_$backup_date.dmp
log=$backup_log/data_$backup_date.log
--删除过期的备份文件
# delete expired backup ...
list=` find $backup_dest -mtime +7`
echo $list
rm -f $list
if [ $? -ne 0 ]; then
cat $backup_log/data_$backup_date.log|mail -s "exp full backup failed,please check it" $RECIPT
exit 1
fi
cat $backup_log/data_$backup_date.log|mail -s "$backup_date exp log " $RECIPT
~
"exp.sh" 37L, 1237C 已写入
[oracle@sxapp1 phy_backup]$ chmod a+x exp.sh --授予可执行权限
[oracle@sxapp1 phy_backup]$ ./exp.sh --执行备份脚本
Export: Release 9.2.0.7.0 - Production on Thu Dec 14 14:37:53 2006 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to: Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production
Export done in ZHS16CGB231280 character set and AL16UTF16 NCHAR character set
About to export the entire database ...
. exporting tablespace definitions
. exporting profiles
. exporting user definitions
. exporting roles
. exporting resource costs
. exporting rollback segment definitions
. exporting database links
. exporting sequence numbers
. exporting directory aliases
. exporting context namespaces。
看脚本是否顺利的运行,备份之后应该会收到备份的log,检查log是否备份正常。
如果正常的话就可以做个crontab了,自动执行计划
[oracle@sxapp1 phy_backup]$ crontab -e
#min hour day month dayofweek command
0 2 * * * /home/oracle/phy_backup/exp.sh
表示每天2点开始执行exp备份。
提示:
备份脚本至少要具备:1.磁盘空间的检查 2.备份log的完整记录3.备份失败时的报警机
制。
本不可能去整理的东西居然整理出来了,希望对别人能有点帮助。