oracle数据库恢复方案

合集下载

ORACLE RAC数据库RMAN 备份与恢复

ORACLE RAC数据库RMAN 备份与恢复

rac数据库RMAN 备份与恢复一、数据库备份在主库上通过rman 每天对数据库进行备份,并且保留两份备份在主库删除归档和进行rman 备份的脚本:[oracle@rac1 arch]$ pwd/opt/app/arch[oracle@rac1 arch]$ more del_arch.shexport ORACLE_SID=orcl1export ORACLE_BASE=/opt/app/oracleexport ORACLE_TERM=xtermexport ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1source /opt/app/arch/orcl1/del_arch.listsource /opt/app/arch/orcl2/del_arch.list/opt/app/oracle/product/10.2.0/db_1/bin/rman target / log='/opt/app/arch/rman.log' <<EOFdelete obsolete recovery window of 3 days;crosscheck archivelog all;delete noprompt obsolete;delete noprompt expired archivelog all;crosscheck backup;delete noprompt expired backup;backup format='/opt/app/arch/rman/orcl_full_%U_%T' tag='orcl_full' database;backup current controlfile tag='orcl_ctlfile'format='/opt/app/arch/rman/orcl_ctlfile_%U_%T';backup spfile tag='orcl_spfile'format='/opt/app/arch/rman/orcl_spfile_%U_%T';exitEOF执行时间:[oracle@rac1 arch]$ crontab -l30 02 * * 0 /opt/app/arch/del_arch.sh30 02 * * 1 /opt/app/arch/del_arch.sh30 02 * * 2 /opt/app/arch/del_arch.sh30 02 * * 3 /opt/app/arch/del_arch.sh30 02 * * 4 /opt/app/arch/del_arch.sh30 02 * * 5 /opt/app/arch/del_arch.sh30 02 * * 6 /opt/app/arch/del_arch.sh每天的备份文件放在/opt/app/arch/rman/目录下二、数据库恢复如果数据库出现故障,可以从备份文件中恢复数据库,最早可以恢复到两天前的备份时间点RAC 下的RMAN 讲究的是备份和还原的策略要一致。

oracle数据库rman备份计划及恢复

oracle数据库rman备份计划及恢复

oracle数据库rman备份计划及恢复1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog。

2.rman备份脚本: a.RMAN 0级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 0 tag 'level0' format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_0_%u_%s_%p" as compressed backupset database;sql "alter system archive log current";backup filesperset 3 format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p_%c"archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} b.RMAN 1级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 1 tag 'level1' format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_1_%u_%s_%p' as compressed backupset database;sql 'alter system archive log current';backup filesperset 3 format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p'archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} c.rman删除备份命令(在保留最近⼀天备份的情况下,删除其他备份):DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 1 DAYS; d.操作系统层⾯运⾏rman备份或删除命令(windows/linux):rman target sys/rf4rfvbgt56yhn@rfdb nocatalog CMDFILE 'D:\app\rman\rman_file\level_0.txt' log=E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\log\rman_level_0.log export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db1export ORACLE_SID=atestexport PATH=$ORACLE_HOME/bin:$PATHrman target sys/123456@atest nocatalog CMDFILE '/u01/rman/rman.sh' log=/u01/rman/rman.log00 02 * * 1 bash /u01/rman_file/run_rman_0.sh00 02 * * 3 bash /u01/rman_file/run_rman_0.sh00 02 * * 5 bash /u01/rman_file/run_rman_0.sh00 04 * * * bash /u01/rman_file/run_delete.sh34 11 * * * bash /u01/rman_file/run_rman_0.sh e.rman参数设置:RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;3.rman恢复a.拷贝datafile,controlfile和spfile的rman备份,以及完整的archivelog和完好的redolog⽂件到新的数据库。

(完整版)Oracle数据库备份和恢复操作手册.doc

(完整版)Oracle数据库备份和恢复操作手册.doc

1ORACLE 数据库数据备份和恢复操作手册1.1. ORACLE 参数设置进入 CMD 操作界面,使用sqlplus 连接数据库,图例 1 数据库连接操作连接语法: sqlplus system/Oracle2013@orcl参数说明参数说明备注sqlplus 语法命令system 数据库管理员用户名Oracle2013 system 用户密码数据库安装目录的tnsnames.ora 文件中可以找到orcl 数据库连接标示符Oracle11G 目录:C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN图例 2 成功连接数据库环境变量设置 (在 Sqlplus 中执行 )create or replace directory <dir_name> as‘c:\tmpdir’;参数说明参数说明备注dir_name c:\tmpdir 路径名称文件路径也可以是另外的随意目录,用单引号括起来。

图例 3 环境变量设置1.2.数据备份备份脚本: expdp system/Oracle2013@orcl directory=file_pathdumpfile=ARADMIN.dat logfile=ARADMIN.log schemas=ARADMIN参数说明参数说明备注expdp 语法命令system 数据库管理员用户名Oracle2013 system 用户密码数据库安装目录的 tnsnames.ora 文件中可以找到orcl 数据库连接标示符Oracle11G 目录:C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMINdirectory 文件目录名称导出数据库文件的存放目录dumpfile 数据库文件名称导出数据库文件的文件名logfile 数据库日志文件名称导出数据库的日志文件名称schemas 数据库用户操作:图例 4 数据库备份操作成功导出。

Oracle数据库RMAN恢复之数据文件的恢复详解

Oracle数据库RMAN恢复之数据文件的恢复详解

除了system表空间的数据文件(mount)之外,其它数据文件可以在open(mount也可以)状态下恢复。

open状态下恢复数据文件可以减少数据库停用的时间,所以应该在open状态下恢复这些数据文件。

示例一:数据文件被误删除数据库关闭状态下删除非系统表空间数据文件。

启动数据库到mount状态。

脱机丢失的数据文件,alter database datafile n offline。

打开数据库,alter database open。

转储数据文件,restore datafile n。

使用recover datafile n 应用归档日志。

联机数据文件,alter database datafile n online。

--数据库关闭状态下删除非系统表空间数据文件。

1.[oracle@localhost ~]$ rm $ORACLE_BASE/product/10.2.0/oradatabak/example01.dbf;2.SQL> select file#,error from v$recover_file;3.FILE# ERROR4.---------- -----------------------------------------------------------------5. 5 FILE NOT FOUND6.SQL> select file#,name from v$datafile where file#=5;7.FILE# NAME8.---------- --------------------------------------------------------------------------------9. 5 /oracle/10g/oracle/product/10.2.0/oradatabak/example01.dbf10.--恢复数据文件11.RMAN> run {12.startup force mount;13.sql 'alter database datafile 5 offline';14.sql 'alter database open';15.restore datafile 5;16.recover datafile 5;17.sql 'alter database datafile 5 online';18.8> }示例二:数据文件所在磁盘出现损坏数据库关闭状态下删除非系统表空间数据文件。

oracle 数据库 快速恢复区域 使用规则

oracle 数据库 快速恢复区域 使用规则

oracle 数据库快速恢复区域使用规则
Oracle数据库的快速恢复区域是用于存放所有与备份恢复操作相关的文件的地方,包括控制文件在线镜像、在线重做日志、归档日志、外来归档日志、控制文件镜像复制、数据文件镜像复制、RMAN备份片和闪回日志。

这些文件由Oracle数据库维护,并按照Oracle托管文件(OMF)格式生成文件名。

启用快速恢复区域后,它将成为RMAN备份的默认存放位置。

如果没有在RMAN 配置或在backup命令中指明路径,RMAN备份片、镜像复制、控制文件自动备份等都会进入快速恢复区。

启用快速恢复区域时,需要考虑以下规则:
1. 位置选择:快速恢复区域的位置必须在集群文件系统、ASM或共享目录上。

2. 大小设置:首先使用参数DB_RECOVERY_FILE_DEST_SIZE设置快速恢复区域的大小。

理想情况下,快速恢复区域应足够大,可以包含控制文件、在线redo 日志、归档redo日志和闪回日志。

它应能够包含所选备份策略使用的数据库的所有数据文件的一个拷贝和增量备份。

在绝对最小的情况下,快速恢复区域必须足够大以包含不在磁带上的归档日志。

3. 无需关闭和重启数据库实例:这些参数可以在需要或不需要关闭和重启数据库实例的情况下启用快速恢复区域。

以上内容仅供参考,如需更多信息,建议访问Oracle数据库官网或咨询专业技术人员。

[Oracle数据库]使用RMAN备份与还原数据库原理

[Oracle数据库]使用RMAN备份与还原数据库原理

使用RMAN备份与还原Oracle数据库原理一、数据库备份概念对于Oracle数据库,备份方式包括物理备份和逻辑备份。

1、物理备份将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。

该方法实现数据库的完整恢复,但数据库必须运行在归档模式下(业务数据库在非归档模式下运行),且需要极大的外部存储设备,例如磁带库,具体包括冷备份和热备份。

冷备份和热备份是物理备份(也称低级备份),它涉及到组成数据库的文件,但不考虑逻辑内容。

使用RMAN备份与还原ORACLE数据库的方式,属于物理备份方法。

2、逻辑备份利用SQL语言从数据库中抽取数据并存于二进制文件的过程。

业务数据库采用此种方式,此方法不需要数据库运行在归档模式下,不但备份简单,而且可以不需要外部存储设备,包括导出/导入(EXPORT/IMPORT)。

这种方法包括读取一系列的数据库日志,并写入文件中,这些日志的读取与其所处位置无关。

二、RMAN备份方式使用RMAN备份Oracle数据库,包括以下三种备份概念。

1、完全备份(Full Backup)与增量备份(Incremental Backup)完全备份与增量备份是针对数据文件而言,控制文件和归档日志文件不能进行增量备份。

当然,后两者可以做备份优化。

2、打开备份(Open Backup)或关闭备份(Closed Backup)数据库打开状态下进行备份即是打开备份,数据库关闭状态下(加载状态)进行的备份即关闭备份。

3、一致备份(Consistent Backup)与不一致备份(Inconsistent Backup)数据库打开状态或不干净关闭状态(shutdown abort)进行的备份是不一致备份,利用不一致的备份修复数据库后还需要做数据库的恢复。

在数据库干净关闭状态进行的备份是一致备份,利用一致备份修复数据库后不需要做数据库的恢复。

三、备份策略由于数据库占据物理空间较大,每次都进行全库备份,对存储介质要求比较高,也会造成空间的冗余浪费,故而在实际的数据备份过程中,通常采用增量备份的方法。

Oracle ramn 备份与恢复

Oracle ramn 备份与恢复

ORACLE数据库的备份与恢复差异增量备份就是备份往前第一个备份级别小于或等于当前备份级别开始到现在的变化。

累计增量备份就是备份往前第一个备份级别小于当前备份级别开始到现在的变化。

0级备份也就是全备份,但0级备份可以在此基础之上再进行备份,但全备份就不可以。

Oracle rman 备份一、数据库全备份方法(nocatalog)1 注意rman有两个,要执行db_1/bin下那个(可以通过修改oracle变量来达到)2 在执行ramn之前要确认当前数据库是否处理Archive Mode模式,并处于Enabled下查看方式:如果不是可以通过如下方式打开并修改:SQL>startup mountSQL>alter database archivelogSQL>alter database open3全备份数据库:A先连接数据库HERMINGB查看备份列表中是否有以前备份的文件C执行全数据库备份4备份完之后可以查看一下备份出来的文件信息:5备份文件存放路径为:二、0级数据库备份A 以nocatalog方式使用rmanB连接数据库C执行0级数据库备份注:全备份与0级备份的相同点是都是将数据库全部备份下来。

全备份与0级备份的不同点是全备份不能作为增量备份,而0级可以作为增量备份。

1级备份就在0级备份的基础上进行的。

三、1级增量备份(基于0级备份之上)总结:可以将备份出来的文件考到其他介质上进行保存,并进行删除。

如果要恢复时请将该文件放回到这文件夹下,并要保存文件名不变。

说明:口令文件因为可以重新设置,所以不用备份,重做日志文件不能在非nocatalog中备份。

四、备份archivelog(参数文件+数据文件+控制文件+归档日志文件)先备份完再删除归档备份五、备份表空间A 查看有哪些表空间B备份名为TBS1的表空间六、备份控制文件七、镜像备份说明:5为TBS1表空间的编号,及对TBS1表空间进行镜像备份。

oracle中expimp备份还原工具的使用详解

oracle中expimp备份还原工具的使用详解

oracle中expimp备份还原工具的使用详解Oracle数据库的exp和imp命令是数据库备份和恢复的常用工具。

本文将详细介绍exp和imp命令的用法和具体步骤。

一、exp命令exp命令用于将Oracle数据库中的数据和对象导出到一个二进制文件中,以进行备份或迁移。

以下是exp命令的详细步骤:1. 登录到Oracle数据库的命令行界面。

2. 输入以下命令启动exp工具:其中,username是要导出数据的用户名,password是对应的密码,connection_string是连接数据库的字符串,包括主机名、端口号和服务名等信息。

3. exp工具启动后,会提示输入导出内容的方式。

可以选择导出全库、特定表或特定用户的数据。

输入相应的选项并按Enter键确定。

4. 接下来,exp工具会要求输入导出的目标文件名。

输入文件名并按Enter键确定。

5. 导出过程将开始执行。

exp工具会逐一导出数据库的数据和对象,并将其存储在目标文件中。

此过程可能需要一些时间,取决于数据库的大小和复杂性。

6. 导出完成后,在命令行中会显示相应的导出信息。

可以根据需要选择是否结束exp工具。

二、imp命令imp命令用于将exp命令导出的二进制文件恢复到Oracle数据库中。

以下是imp命令的详细步骤:1. 登录到Oracle数据库的命令行界面。

2. 输入以下命令启动imp工具:其中,username是要导入数据的用户名,password是对应的密码,connection_string是连接数据库的字符串,包括主机名、端口号和服务名等信息。

3. imp工具启动后,会提示输入导入内容的方式。

可以选择导入全库、特定表或特定用户的数据。

输入相应的选项并按Enter键确定。

4. 接下来,imp工具会要求输入导入的源文件名。

输入文件名并按Enter键确定。

5. 导入过程将开始执行。

imp工具会读取源文件中的数据和对象,并将其恢复到目标数据库中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录 数据库恢复方案...1 文档控制...1 一、相关概念...3 1,恢复的两个阶段...3 2,Oracle实例启动的三个阶段...3 3,RMAN信息的保存位置...3 二、 完全恢复...3 (一) 控制文件...3 1) 丢失部分控制文件:...3 2) 丢失全部控制文件...3 (二) 重做日志文件...4 1) 非当前使用的重做日志文件:...4 2) 当前使用的重做日志文件(未归档):...4 (三) 数据文件...4 1) 无归档模式下的完全恢复...4 2) 归档模式下的完全恢复...5 三、 不完全恢复...6 (一) 基于SCN的不完全恢复...6 1) 准备工作...6 2) 使用RMAN进行恢复...7 (二) 基于时间点的不完全恢复...8 1) 准备工作...8 2) 使用RMAN进行恢复...8 四、 高级篇...9 (一) 使用RMAN进行异机同目录...9 1) 准备工作...9 2) 通过RMAN进行异机恢复...10 (二)使用RMAN进行异机异目录...11 1) 准备工作...11 2) 通过RMAN进行异机恢复...11 (三)使用RMAN进行在线数据块恢复...14

一、相关概念 1,恢复的两个阶段 数据库无论采取哪种方式进行恢复都分为Restore和Recover两个步骤。 Restore(还原):把控制文件、重做日志文件和数据文件还原到正确位置。 Recover(恢复):恢复还原后的数据文件,使数据库达到一致状态。

2,Oracle实例启动的三个阶段 Oracle实例启动经过三个阶段: l NOMOUNT(未装载):读入参数文件,验证参数文件中的目录是否存在。 l MOUNT(装载):读入参数文件指定位置的控制文件。 l OPEN(打开):验证控制文件中指定的重做日志文件和数据文件是否正确、数据文件是否一致,然后读入数据文件中的数据。

所以按照如下顺序使数据库正确打开。 1) SHUTDOWN(关闭)状态下,确保参数文件指定的文件夹存在,启动到NOMMUNT状态。

2) NOMOUNT状态下,保证控制文件的位置和命名与参数文件中相同,控制文件中指定的重做日志文件和数据文件存在,然后启动到MOUNT状态。

3) MOUNT状态下,执行RMAN还原和恢复操作。 4) OPEN状态下,读入数据文件和重做日志文件。 我们要保证Oracle在各个阶段读入的文件和目录指向正确的路径。 如果更改了某个文件的位置,要把其相应的参数文件和控制文件中的信息要一同更新。

3,RMAN信息的保存位置 NOCATALOG(非恢复目录)模式时,RMAN把备份文件的辅助信息保存在控制文件中。 CATALOG(恢复目录)模式时,RMAN把备份文件的辅助信息保存在一个数据库中。

下面将通过若干实验来总结Oracle的各种崩溃情况下的恢复。

二、 完全恢复 (一) 控制文件 丢失控制文件只需要执行“还原”步骤。 1) 丢失部分控制文件: 1, 关闭数据库 2, 手动复制剩余控制文件并改名成丢失的控制文件名 3, 启动数据库 数据库中所有控制文件是完全相同的,使用DBCA创建数据库会默认产生三个控制文件,建议多路复用控制文件(把多个控制文件放到不同磁盘上),保证数据库的可用性。

2) 丢失全部控制文件 1, 关闭数据库 2, 启动数据库到NOMOUNT状态 3, 重建控制文件 4, 启动数据库

重建控制文件有以下两种方法: 1,找到警告日志,根据其信息创建控制文件。警告日志位于bdump文件夹中,命名为alert_{oracle_sid}.log,启动失败等信息也可以在这里找到。

2,找到跟踪文件,根据其SQL语句重建控制文件。跟踪文件位于udump文件夹下,使用下述命令备份控制文件到跟踪文件。

SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

(二) 重做日志文件 丢失非当前状态的重做日志文件需要执行“还原”步骤,丢失当前状态的重做日志文件需要“恢复”步骤。

重做日志文件按状态分为当前、非当前、已归档和未归档四种,需要用不同的命令来打开数据库。

1) 非当前使用的重做日志文件: 1,已归档: SQL> ALTER DATABASE CLEAR LOGFILE GROUP #; 2,未归档: SQL> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP #;

2) 当前使用的重做日志文件(未归档): SQL> ALTER DATABASE MOUNT; SQL> RECOVER DATABASE UNTIL CANCEL; SQL> ALTER DATABASE OPEN RESETLOGS;

如果清除了未归档的重做日志文件(当前使用的重做日志文件为未归档),会丢失这个重做日志文件包含的信息,导致日后恢复时无法完全恢复,所以清除未归档的重做日志文件后要立刻全备份数据库。

(三) 数据文件 1) 无归档模式下的完全恢复 无归档模式一般采用exp导出或者手工冷备份方式进行备份恢复。 手工冷备份方式: 1,创建表 SQL> create table tb(a integer,b integer); 表已创建。 2,插入数据 SQL> insert into tb(a,b) values(1,1); 已创建1行。 SQL> insert into tb(a,b) values (2,2); 已创建1行。 SQL> commit; 提交完成。 3,关闭数据库,手工删除数据文件模拟数据文件损坏 SQL> shutdown immediate; 4,打开数据库 SQL> startup open; ORACLE例程已经启动。 Total System Global Area 167772160 bytes Fixed Size 1247900 bytes Variable Size 62915940 bytes Database Buffers 100663296 bytes Redo Buffers 2945024 bytes 数据库装载完毕。 ORA-01157:无法标识/锁定数据文件4 -请参阅DBWR跟踪文件 ORA-01110:数据文件4: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF' 5,手工还原数据文件,打开数据库 SQL> alter database open; 6,查询数据 SQL> select * from tb; A B ---------- ---------- 1 1 2 2

数据库恢复完成,数据没有丢失。

2) 归档模式下的完全恢复 归档模式下可采用RMAN备份,手工备份与exp导出方式进行备份,推荐使用RMAN方式进行安全可靠的备份。 RMAN方式: 丢失数据文件需要先“还原”,再“恢复”数据文件到一致状态。 1,查看test表中数据 SQL> select * from tb; A B ---------- ---------- 1 1 2 2

2,备份数据库 RMAN TARGET/ RMAN> BACKUP DATABASE; 3,插入数据,切换日志文件 SQL> insert into tb(a,b) values(3,3); 已创建1行。 SQL> insert into tb(a,b) values(4,4); 已创建1行。 SQL> commit; 提交完成。 SQL> alter system switch logfile; 4,关闭数据库,手动删除USERS01.DBF SQL> SHUTDOWN IMMEDIATE; 5,启动数据库到MOUNT状态 SQL> STARTUP MOUNT: 6, 还原该数据文件 RMAN> RESTORE DATAFILE 4; 7, 恢复该数据文件 RMAN> RECOVER DATABASE; 8, 打开数据库 RMAN> ALTER DATABASE OPEN; 数据库已更改。 9, 查看数据是否丢失 SQL> select * from tb; A B ---------- ---------- 1 1 2 2 3 3 4 4

数据库恢复完成,数据没有丢失。

三、 不完全恢复 (一) 基于SCN的不完全恢复 1) 准备工作 1,备份数据库 rman target/ RMAN> backup database; 2,创建表 SQL> create table tb(a integer); 表已创建。 3,插入数据 SQL> insert into tb(a) values(1); 已创建1行。 SQL> insert into tb(a) values(2); 已创建1行。 SQL> commit; 提交完成。 4,查看数据 SQL> select * from tb; A

相关文档
最新文档