RMAN备份恢复之BLOCKRECOVER
[@more@]RMAN提供了单独恢复个别BLOCK的功能,这种功能作为普通恢复方法的补充,对于恢复数据库中出现的坏块可以快速的进行恢复。RMAN的BLOCKRECOVER是利用一个全备份作为基础,在此基础中应用日志,对于需要恢复的个别BLOCK进行恢复。下面演示一个BLOCKRECOVER的简单例子,首先是构造一个坏块,最简单的办法莫过于UltraEdit了。SQL> SELECT COUNT(*) FROM T3;COUNT(*)----------50272SQL> SELECT DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID), DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) FROM T3 WHERE ROWNUM = 1;DBMS_ROWID.ROWID_RELATIVE
DBMS_REPAIR的使用 (转载)
[@more@]Oracle提供了DBMS_REPAIR包用来发现、标识并修改数据文件中的坏块。任何工具都不是万能的,使用这个包的同时会带来数据丢失、表和索引返回数据不一致,完整性约束破坏等其他问题。因此当出现错误时,应当首先从物理备份或逻辑备份恢复,使用dbms_repair只是在没有备份的情况下使用的一种手段,这种方式一般都会造成数据的丢失。dbms_repair包的工作原理比较简单,是将检查到的坏块标注出来,使随后的dml操作跳过该块,同时,dbms_repair包还提供了用于保存索引中包含的标注为坏块中的键值,以及修复freelist和segment bitmap的过程
oracle flashback特性(3.2)--Flashback Database操作示例
[@more@]Flashback database即可以在rman中执行,也可以在sql*plus中执行,其命令格式都是一样的,在这个示例中,我们所有操作都是在sql*plus中执行。A. 检查是否启动了flash recovery area:JSSWEB> show parameter db_recovery_fileNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_recovery_file_dest string f:oracleoradatajsswebrecoveryareadb_recovery_file_dest_size big integer 2GB. 检查是否启用了归档JSSWEB> archive log list;数据库日志模式 存档模式自动存档 启用
oracle flashback特性(3.1)--Flashback Database介绍
[@more@]如果说flashback query可用来恢复指定时间点的记录,flashback table可用来恢复被删除或指定时间点的表,而flashback database,则直接提供一个数据库级别的恢复,可将数据库恢复到指定的时间点,相对于前两者,其粒度是最大的。数据库级别的恢复,大家可能会想到我们通常所用的方式:借助备份。那借助flashback database来做恢复相比通过备份恢复,有哪些优势呢?三思个人看法认为主要有两点:速度和恢复方式。众所周知之前我们对数据库做不完全恢复,不论是命令行方式备份还是rman 备份,都是借助备份+有效归档,从备份时间点向
oracle flashback特性(2.2)--Flashback Table之从UNDO中恢复
[@more@]某些时候,我们要处理的表并不是被意外删除,而是被反复修改过多次,希望能回复到之前的某个时间点,通过前面的学习,你一定会说没问题啊,借助flashback query就可以,没错,flashback query确实可以,但flashback query只是查询出记录,如果想做恢复还需要写出相应的insert或update,也许还需要相当多的where条件做判断,一个不甚,可能恢复的数据就是错误的。老板又没在跟儿前站着,我们没必要在这个时刻用这种方式展示我们娴熟的指法,因此,我们需要更高效更严谨更简便的方式:flashback table tbname to scn/timestamp,助你
oracle flashback特性(2.1)--Flashback Table之RECYCLEBIN
[@more@]简单来讲,如果我们把flashback query看做是恢复记录,则flashback table就是用来恢复表的(由于记录是以表为载体存储,因此flashback table也应该看做是恢复记录,只不过相对于flashback query而言,其粒度更大一些),同时呢,在Oracle10g中又新引入了一个叫做Recycle Bin的功能(主要针对表及其关联的对象,比如索引约束啥的),被删除的表并非真正删除,而是先通过修改数据字典的方式,将其改名并放入recyclebin,如果要恢复recycle bin中对象的话,借助flashback table是最简便的方式。除此之外,flashback table也提供了类似fla
oracle flashback特性(1.5)--闪回查询之制约因素
[@more@]制约Flashback Query特性应用的有三方面的因素~5、制约因素制约该特性应用的有三方面的因素5.1 自动撤销管理表空间这个是前面也提到了,要使用flashback的相关特性,必须启用自动撤销管理表空间,不仅是flashback query,也包括flashback table和flashback database,而对于后两项还会有些其它的附加条件,比如flashback table需要启用了recycle bin(回收站),flashback database还要求必须启用了flashback area(闪回区)。附A:提示:什么是Automatic Undo Management(自动撤销管理表空间)提到自动撤销管理表空间,就不得不提手动管
oracle flashback特性(1.4)--闪回查询之Transaction query
[@more@]Flashback的事务查询是通过查询flashback_transaction_query视图来实现的。通过查询该视图能够获得一些事务执行时的信息,甚至包括UNDO语句。4、Transaction query事务查询Flashback的事务查询是通过查询flashback_transaction_query视图来实现的。通过查询该视图能够获得一些事务执行时的信息,甚至包括UNDO语句。下面做个演示,首先删除一条数据:JSSWEB> select *from jss_tb1;ID VL---------- --------------------5 E6 F7 G8 H9 I11 K12 L13 M14 N15 O116 P117 Q118 R119 S120 T10 J已选择16行。JSSWEB> select dbms_f
oracle flashback特性(1.2)--闪回查询之As of scn
[@more@]仍以前文中创建的表为例,既然是基于scn的查询,我们首先就需要得到scn,这里我们通过dbms_flashback.get_system_change_number函数来获取oracle当前的scn,之后再执行数据的修改操作。1、As of scn的示例仍以前文中创建的表为例,既然是基于scn的查询,我们首先就需要得到scn,这里我们通过dbms_flashback.get_system_change_number函数来获取oracle当前的scn,之后再执行数据的修改操作。JSSWEB> select dbms_flashback.get_system_change_number from dual;GET_SYSTEM_CHANGE_NUMBER------------------------344197JSSWEB>
oracle flashback特性(1.1)--闪回查询之As of timestamp
[@more@]正如前言中所提,Flashback Query是利用多版本读一致性的特性从UNDO表空间读取操作前的记录数据!提示:什么是多版本读一致性Oracle采用了一种非常优秀的设计,通过undo数据来确保写不堵塞读,简单的讲,不同的事务在写数据时,会将数据的前映像写入undo表空间,这样如果同时有其它事务查询该表数据,则可以通过undo表空间中数据的前映像来构造所需的完整记录集,而不需要等待写入的事务提交或回滚。flashback query有多种方式构建查询记录集(注意,要使用flashback的特性,必须启用自动撤销管理表空间,什么,你想问什么是自动撤
using backup controlfile和 until cancel 区别
[@more@]using backup controlfile和 until cancel 区别1. recover database using backup controlfile2. recover database until cancel3. recover database using backup controlfile until cancel;4. recover database until cancel using backup controlfile;区别:1. 如果丢失丢失当前控制文件,用冷备份中的控制文件恢复的时候。用来告诉oracle,不要以controlfile中的scn作为恢复的终点;2. 如果丢失current/active redo的时候。手动指定终点。3. 如果 丢失当前controlfile并且current/active redo都丢失,会先去 自动 应用归档日志
Oracle10g新特性:Recycle Bin回收站
[@more@]Oracle10g提供了类似操作系统中的回收站功能。当drop table的时候,实际上只是将其重命名,并将table以及相关联的对象如index,constraint等放到回收站(RecycleBin)中,后续如果发现drop错了table,可以使用flashback table命名将回收站中的table还原,这就是Oracle10g的Flashback Drop功能。环境SQL> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProdPL/SQL Release 10.2.0.1.0 - Product
ALTER DATABASE RESETLOGS 的作用
[@more@]ALTER DATABASE OPEN RESETLOG作用: 。Archives the current online redo logs (if they are accessible) and then erases the contents of the online redo logs and resets the log sequence number to 1. For example, if the current online redo logs are sequence 1000 and 1001 when you open RESETLOGS, then the database archives logs 1000 and 1001 and then resets the online logs to sequence 1 and 2.2。Creates the online redo log files if they do not currently exist.3。Reinitializes the control file me
SCN知识1
[@more@]首先这里我们先介绍四个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