Oracle 基于更改的不完全恢复

合集下载

windows下的oracle数据库rman自动备份和恢复文档

windows下的oracle数据库rman自动备份和恢复文档

数据库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. 关闭数据库。

oracle误删数据表还原的二种方法(oracle还原)

oracle误删数据表还原的二种方法(oracle还原)

oracle误删数据表还原的⼆种⽅法(oracle还原)⼀、如果是刚刚删除,那么有两⽅法:⾸先⽤show parameter undo;命令查看当时的数据库参数undo_retention设置。

显⽰如下:复制代码代码如下:undo_management string AUTOundo_retention integer 10800undo_suppress_errors boolean FALSEundo_tablespace string UNDOTBS1undo_retention(保持⼒),10800单位是秒。

即3个⼩时。

修改默认的undo_retention参数设置:复制代码代码如下:ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH;⽅法1,通过oracle提供的回闪功能:复制代码代码如下:exec dbms_flashback.enable_at_time(to_date('2007-07-23 10:21:00','yyyy-mm-dd hh24:mi:ss'));set serveroutput onDECLARE r_temp hr.job_history%ROWTYPE;CURSOR c_temp IS SELECT * FROM hr.job_history;BEGINOPEN c_temp;dbms_flashback.disable;LOOPFETCH c_temp INTO r_temp;EXIT WHEN c_temp%NOTFOUND;insert into hr.job_history(EMPLOYEE_ID,JOB_ID,START_DATE,END_DATE) values(r_temp.EMPLOYEE_ID,r_temp.JOB_ID,r_temp.START_DATE,r_temp.END_DATE);commit;END LOOP;CLOSE c_temp;END;⽅法2,insert into hr.job_history复制代码代码如下:select * from hr.job_history as of timestamp to_timestamp('2007-07-23 10:20:00', 'yyyy-mm-dd hh24:mi:ss');这种⽅法简单,容易掌握,功能和上⾯的⼀样时间为你误操作之前的时间,最好是离误操作⽐较近的,因为oracle保存在回滚保持段⾥的数据时间有⼀定的时间限制由undo_retention 这个参数值决定。

RMAN备份命令

RMAN备份命令

RMAN备份命令(转摘)1、切换服务器归档模式,如果已经是归档模式可跳过此步:%sqlplus /nolog (启动sqlplus)SQL> conn / as sysdba (以DBA身份连接数据库)SQL> shutdown immediate; (立即关闭数据库)SQL> startup mount (启动实例并加载数据库,但不打开)SQL> alter database archivelog; (更改数据库为归档模式)SQL> alter database open; (打开数据库)SQL> alter system archive log start; (启用自动归档)SQL> exit (退出)2、连接:%rman target=rman/rman@mydb (启动恢复管理器)3、基本设臵:RMAN> configure default device type to disk; (设臵默认的备份设备为磁盘) RMAN> configure device type disk parallelism 2; (设臵备份的并行级别,通道数)RMAN> configure channel 1 device type disk format '/backup1/backup_%U'; (设臵备份的文件格式,只适用于磁盘设备)RMAN> configure channel 2 device type disk format '/backup2/backup_%U'; (设臵备份的文件格式,只适用于磁盘设备)RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)RMAN> configure controlfile autobackup format for device type disk to '/backu p1/ctl_%F'; (设臵控制文件与服务器参数文件自动备份的文件格式)4、查看所有设臵:RMAN> show all;5、查看数据库方案报表:RMAN> report schema;6、备份全库:RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)7、备份表空间:RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)_8、备份归档日志:RMAN> backup archivelog all delete input;9、复制数据文件:RMAN> copy datafile 1 to '/oracle/dbs/system.copy';10、查看备份和文件复本:RMAN> list backup;11、验证备份:RMAN> validate backupset 3;12、从自动备份中恢复服务器参数文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件)13、从自动备份中恢复控制文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)13、恢复和复原全数据库:RMAN> shutdown immediate; (立即关闭数据库)RMAN> exit (退出)%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)%rman target=rman/rman@mydb (启动恢复管理器)RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)RMAN> restore database; (还原数据库)RMAN> recover database; (恢复数据库)RMAN> alter database open; (打开数据库)14、恢复和复原表空间:RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机) RMAN> exit (退出恢复管理器)%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名) %rman target=rman/rman@mydb (启动恢复管理器)RMAN> restore tablespace users; (还原表空间)RMAN> recover tablespace users; (恢复表空间)RMAN> sql 'alter tablespace users online'; (将表空间联机)15、增量备份与恢复:第一天的增量基本备份:RMAN> backup incremental level=0 database plus archivelog delete input;第二天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第三天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第四天的增量差异备份:RMAN> backup incremental level=1 database plus archivelog delete input;第五天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第六天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第七天的增量差异备份:RMAN> backup incremental level=0 database plus archivelog delete input;增量恢复:RMAN> shutdown immediate;RMAN> exit%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak%rman target=rman/rman@mydbRMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.oraRMAN> restore database;RMAN> recover database;RMAN> alter database open;Oracle备份与恢复案例一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。

Oracle备份与恢复案例.doc

Oracle备份与恢复案例.doc

Oracle备份与恢复案例By Piner一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。

因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。

恢复过程大致可以分为复原(Restore)与恢复(Recover)过程。

数据库恢复可以分为以下两类:1.1实例故障的一致性恢复当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM ABORT语句)中止时出现实例故障,此时需要实例恢复。

实例恢复将数据库恢复到故障之前的事务一致状态。

如果在在线后备发现实例故障,则需介质恢复。

在其它情况Oracle在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。

如果需要,从装配状态变为打开状态,自动地激发实例恢复,由下列处理:(1)为了解恢复数据文件中没有记录的数据,进行向前滚。

该数据记录在在线日志,包括对回滚段的内容恢复。

(2)回滚未提交的事务,按步1重新生成回滚段所指定的操作。

(3)释放在故障时正在处理事务所持有的资源。

(4)解决在故障时正经历一阶段提交的任何悬而未决的分布事务。

1.2介质故障或文件错误的不一致恢复介质故障是当一个文件、一个文件的部分或磁盘不能读或不能写时出现的故障。

文件错误一般指意外的错误导致文件被删除或意外事故导致文件的不一致。

这种状态下的数据库都是不一致的,需要DBA手工来进行数据库的恢复,这种恢复有两种形式,决定于数据库运行的归档方式和备份方式。

(1)完全介质恢复可恢复全部丢失的修改。

一般情况下需要有数据库的备份且数据库运行在归档状态下并且有可用归档日志时才可能。

对于不同类型的错误,有不同类型的完全恢复可使用,其决定于毁坏文件和数据库的可用性。

(2)不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。

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数据库备份与恢复方案

oracle数据库备份与恢复方案

oracle数据库备份与恢复方案一、编写目的 (1)二、备份工具及备份方式 (1)三、软件备份 (1)四、软件恢复 (1)五、数据备份 (2)六、备份的存储 (2)七、备份数据的保存规定 (2)八、备份介质的格式 (3)九、数据恢复 (4)编写目的本文档主要说明公司项目在实施现场的软件及数据的备份和恢复方案。

二、备份工具及备份方式1.备份工具Oracle RMAN (Recovery Manager):是一一种用于备份(backup)、还原(restore) 和恢复(recover)数据库的Oracle工具。

RMAN只能用于ORACLE8或更高的版本中。

它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。

RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块.2.备份方式(1)自动备份:由Windows计划任务调度完成;(2)手工备份:完成特殊情况下的备份,分热备份和冷备份,热备份是指在不关闭数据库情况下进行备份,冷备份则需要停止Oracle实例服务。

三、软件备份1.以七天为一个周期每天23:00将所有软件拷贝到其他存储介质上2.超出七天的备份依次删除3.每月一号将上月最后7天的备份文件刻录到光盘上四、软件恢复1.找出最近的备份程序覆盖到正式运行环境的相应目录中1.业务系统或数据库在打重要补丁或升级的前后,必须按要求对业务系统进行停机备份或非停机备份,备份需包含应用和数据库的文件系统及数据,备份方式为手工备份,使用RMAN执行备份;2.系统日常备份:作为7*24运行的重要系统,必须最小化数据丢失的同时,还需要尽可能缩短恢复时间,数据库的日常备份策略如下:(1)确保数据库处于ArchiliveLog模式;(2)每日凌晨01:00执行数据库全备份,含控制文件备份;(3)每四小时间隔执行数据库归档日志备份,含控制文件备份;(4)每间隔两周执行数据库与应用系统文件备份,执行时间:数据库服务器在第一周的周六05:00,应用服务器在第一周的周六7:00。

oracle的四个scn概念

oracle的四个scn概念

首先这里我们先介绍四个SCN概念。

1,系统检查点scn当一个检查点动作完成后,Oracle就把系统检查点的SCN存储到控制文件中。

select checkpoint_change# from v$database;2,数据文件检查点scn当一个检查点动作完成后,Oracle就把每个数据文件的scn单独存放在控制文件中。

select name,checkpoint_change# from v$datafile;3,启动scnOracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,因为它用于在数据库实例启动时,检查是否需要执行数据库恢复。

select name,checkpoint_change# from v$datafile_header4,终止scn每个数据文件的终止scn都存储在控制文件中。

select name,last_change# from v$datafile以下条件需要使用using backup controlfile1)、使用备份控制文件2)、重建resetlogs控制文件,如果重建立noresetlogs不必要使用using backup controlfile2、alter database open resetlog指定RESETLOGS将重设当前LOG sequence number为1,抛弃所有日志信息。

以下条件需要使用resetlog1)在不完全恢复(介质恢复)2)使用备份控制文件使用resetlogs打开数据库后无必完整地备份一次数据库。

3、create controlfile resetlogs/noresetlogs1).用Noresetlogs重建控制文件时,控制文件中 datafile Checkpoint来自Online logs中的Cu rrent log头2).用Resetlogs重建控制文件时,控制文件中datafile Checkpoint来自各数据文件头。

Oracle数据库数据发生丢失后的恢复方法

Oracle数据库数据发生丢失后的恢复方法

将 会丢 失 。因此 , 讨论不 完全恢 复 。 不
2 1 恢 复 过 程 .
al 数据 库数据 发 生 丢失 后 的恢 复方 法 , 供 同 仁 c e 谨
参考。
O al 数据库的恢复过程分两 步进行 , rc e 首先将 把 存放在重做 日志 文件中的所 有重 做运行 到数 据文件 , 之后对重做 中所有提 交的事 务进行 回滚 , 这样所有 数 据就恢复到发 生 灾难那 一 时刻 了。数 据 库 的恢复 只 能在 发 生 故 障 之 前 的 某 一 个 时 刻 。例 如 : 一 个 有 20// 0 1 1 1的数据 库备 份 , 2 0 / / 数 据库 中数 据 当 015 1 发生混 乱 , 望 将 数 据 库恢 复 到 2 0 / / 0时 的 状 希 0143 态, 只能先恢 复 2 O / / O l 1 1的数据库备 份 , 然后在 其运
环境 。随着 Wid ws系统 的广 泛应 用 , rce . 7 no O al 1 5 已 经 成 为 过 去 时 , 于 Wid ws的 Orc 8、 基 no al i e
2 恢 复
数 据库 的恢复 可分为两 大类 : 一是完 全恢复 ; 二
是 不完全 恢复 。
完 全恢 复 指 将数 据恢 复 到发 生 故 障 的时 间点 , 不丢失 任何数 据 。不完全 恢复指 将数据 恢 复到发生
维普资讯
第2 期




20 年1月 06 2
O al数据库数据发生丢失后的恢复方法 rc e
晓南矿 关明杰
摘 要 本文详 细介绍 了 Orc 数 据库发 生 灾难 性数 据丢 失后 的恢 复 方法 , al e 重点讲 述 了用 户操 作 失败 与存储 设备 失败 时数据库 管理员完全 恢复 的办 法。 关键 词 oa l 数据 库 备 份 恢 复 日志 文件 rce O al 数 据库环境 己成 为世界上 最流行 的数据 rc e 库平 台之一 , 占有 7 以上 的 数 据库 市 场 份 额 , O 并 法, 数据 库必须 处于 打开状态 , 而且 如果 数据库不 是
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle 基于更改的不完全恢复
对于基于更改的不完全恢复,则是以存在问题的事务的SCN号来终止恢复过程,在恢复数据库之后,将包含低于指定SCN号的所有事务。

在RMAN中执行基于更改的不完全恢复时,可以使用SET UNTIL SCN命令来指定恢复过程的终止SCN号。

其他的操作步骤与执行基于时间的恢复,或者基于撤销的不完全恢复完全相同。

执行基于更改的不完全恢复时,DBA唯一需要考虑的确定适当的SCN号。

LogMiner是确认事务SCN号的常用工具。

例如,假设某用户不小心删除SCOTT.EMP表中的所有记录,DBA需要查看删除数据的事务的SCN号,以执行基于更改的不完全恢复,恢复被用户误删除的数据。

下面是具体的操作步骤:
(1)在SQL*Plus中连接到数据库,并删除SCOTT.EMP表中所有数据。

SQL> delete scott.emp;
SQL> commit;
SQL> alter system switch logfile;
(2)使用DBMS_LOGMNR_D.BUILD过程提取数据字典信息。

SQL> exec dbms_logmnr_d.build('e:\orcldata\logminer\director.ora','e:\orcldata\logminer');
(3)使用DBMS_LOGMNR.ADD_LOGFILE过程添加分析的日志文件。

如果不能确定哪一个日志文件包含了删除SCOTT.EMP表中数据的事务,则必须对每一个重做日志文件进行分析。

SQL>exec dbms_logmnr.add_logfile(' d:\app\Administrator\oradata\orcl\redo01a.log',dbms_logmnr.new);
SQL>exec dbms_logmnr.add_logfile('d:\app\Administrator\oradata\orcl\redo02a.log',dbms_logmnr.addfile);
SQL>exec dbms_logmnr.add_logfile('d:\app\Administrator\oradata\orcl\redo03a.log',dbms_logmnr.addfile);
(4)启动LogMiner开始分析日志
SQL> exec dbms_logmnr.start_logmnr(dictfilename=>'e:\orcldata\logminer\director.ora');
(5)查询V$LOGMNR_CONTENTS视图,查看为DELETE SCOTT.EMP语句分配的SCN号。

为了减少搜索范围,可以限制只返回那些引用了名为EMP的段的记录。

SQL> select scn,sql_redo
2 from v$logmnr_contents
3 where seg_name='EMP';
(6)结束LogMiner会话并释放为其分配的所有资源。

SQL> exec dbms_logmnr.end_logmnr;
(7)关闭数据库,并创建数据库的脱机备份,以防止不完全恢复失败。

(8)使用RMAN连接到目标数据库。

(9)在RMAN中启动数据库到MOUNT状态。

(10)输入如下的命令恢复数据库。

RMAN> run{
2> allocate channel ch1 type disk;
3> allocate channel ch2 type disk;
4> set until scn 3503266;
5> restore database;
6> recover database;
7> sql'alter database open resetlogs';
8> }
恢复数据库之后,可以通过在SQL*Plus查看SCOTT.EMP表的内容,确认是否成功地恢复了数据库。

在恢复数据库后,应该立即创建数据库的一个备份,以防止随后出现的错误。

相关文档
最新文档