scn

深入了解控制文件

你说的曾经没有我的故事 提交于 2020-03-27 17:59:59
实验步骤 控制文件是一个二进制文件,为了查看其内容,我们可以通过oracle命令转储出来进行查看(以下命令来自oracle 19c): SQL> alter session set events 'immediate trace name controlf level 8'; Session altered. SQL> select value from v$diag_info where name='Default Trace File'; VALUE -------------------------------------------------------------------------------- /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_13639.trc 解读 19c trace trc 文件头简介 文件头对文件来源做出了简介:包括文件信息、数据库信息、DB版本号、系统信息、实例信息和进程信息 # 文件名 Trace file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_13639.trc ​ # 数据库信息 Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 -

Oracle误删除表数据后的恢复具体解释

流过昼夜 提交于 2020-03-12 04:51:51
Oracle误删除表数据后的恢复具体解释 測试环境: SYSTEM:IBM AIX 5L Oracle Version :10gR2 1. undo_retention參数的查询 与 改动 使 用 show parameter undo 命令查看当 前 的数据库參数 undo_retention 设置。 显演示样例如以下: SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS2 undo_retention(保持力), 900 单位是 秒 , 即 15分钟 。 改动默认的undo_retention參数设置: SQL> ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; System altered. SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- -

Oracle误删除表数据后的恢复具体解释

梦想的初衷 提交于 2020-03-05 17:24:57
Oracle误删除表数据后的恢复具体解释 測试环境: SYSTEM:IBM AIX 5L Oracle Version :10gR2 1. undo_retention參数的查询 与 改动 使 用 show parameter undo 命令查看当 前 的数据库參数 undo_retention 设置。 显演示样例如以下: SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS2 undo_retention(保持力), 900 单位是 秒 , 即 15分钟 。 改动默认的undo_retention參数设置: SQL> ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; System altered. SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- -

Oracle异机恢复

谁说胖子不能爱 提交于 2020-02-17 14:06:36
RMAN异机恢复注意事项: 1、RMAN 异机恢复的时候,db_name必须相同。 如果说要想改成其他的实例名,可以在恢复成功后,用nid 命令修改。 实例名的信息会记录到控制文件里,所以如果在恢复的时候,如果实例名不一致,恢复的时候会报错。 2、如果恢复的路径和源库不一致,就需要在restore时用set 命令指定新位置。 并且使用switch datafile all将信息更新的到控制文件。在做duplicate的时候,RMAN 会自动根据pfile中的log_file_name_convert和db_file_name_convert来进行set 的转换。 手工restore时,只能使用set 命令。 1. 在恢复机上准备好以下内容:   》备份文件:      /ora_rman_backup/20150618/{控制文件.bak ; 数据文件.bak ; 归档日志.bak ; 参数文件.bak; 口令文件.bak}      注:将rman备份文件放到这里,是因为在源DB上做RMAN备份时指定备份到这里,若不建立同样的目录,     下面恢复时,就都必须指定RMAN备份文件的位置。   》OracleDB已经安装好,并且配置了基本环境变量。   》cd $ORACLE_HOME/dbs    orapwd file=orapw$ORACLE_SID password

oracle-11g-闪回技术

*爱你&永不变心* 提交于 2020-02-10 01:04:25
一.4种闪回技术: ①闪回数据库   以当前数据库为起点,在时间上回退,逐步改变知道顺序回退完成的所有工作。最终的结果就像是执行了不完整恢复,将丢失闪回点之后的所有工作,   并且实际上得使用resetlogs打开数据库。         !!!!!闪回数据库不能撤销物理损坏,只能恢复由用户错误造成的逻辑错误。 ②闪回查询、事务和表   三种闪回技术都基于使用撤销段(undo段)。     (1)闪回查询:允许查询过去某个时间的数据库,利用此技术甚至可以选取过去某段时间内一个行的所有版本,以便了解改行的历史操作,包括操作        时间、操作人和做出每个更改的事务的标识符。     (2)闪回事务自动执行修复过程。一旦使用了闪回查询确认了引起问题的事务,oracle可以构造SQL语句来反转事务中的更改。无法回滚提交的更改,       但可以构造另一事务以反转第一个错误事务的影响。与闪回数据不同的是:闪回事务并不会丢失数据,所做的其他所有工作仍然有效,并且数据库保持当前状态。     (3)闪回表:指示oracle反转从特定时间点以来对该表所做的所有更改,而保持其他所有表的当前状态。 ③闪回删除:可以撤销删除一个表,通过将drop命令映射到rename命令实现,不能实现truncate的闪回,purge的闪回,,可以还原任何相关的索引       及权限和表本身(外键约束除外)

dg中基于scn恢复RMAN-06094故障解决

*爱你&永不变心* 提交于 2020-02-06 05:19:00
dataguard中出现gap后,采用基于scn的备份和恢复的方法进行恢复. 在恢复的过程中出现报错: RMAN> recover database noredo; Starting recover at 05-FEB-20 using channel ORA_DISK_1 using channel ORA_DISK_2 using channel ORA_DISK_3 using channel ORA_DISK_4 using channel ORA_DISK_5 using channel ORA_DISK_6 using channel ORA_DISK_7 using channel ORA_DISK_8 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 02/05/2020 12:12:28 RMAN

恢复删除的表数据

限于喜欢 提交于 2020-01-19 15:09:31
通过scn恢复删除且已提交的数据   - 获得当前数据库的scn号     select current_scn from v$database; (切换到sys用户或system用户查询)     查询到的scn号为:1499223   - 查询当前scn号之前的scn     select * from 表名 as of scn 1499220; (确定删除的数据是否存在,如果存在,则恢复数据;如果不是,则继续缩小scn号)   - 恢复删除且已提交的数据     flashback table 表名 to scn 1499220; 通过时间恢复删除且已提交的数据   - 查询当前系统时间     select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;   - 查询删除数据的时间点的数据     select * from 表名 as of timestamp to_timestamp('2018-10-09 15:29:00','yyyy-mm-dd hh24:mi:ss'); (如果不是,则继续缩小范围)   - 恢复删除且已提交的数据     flashback table 表名 to timestamp to_timestamp('2018-10-09 15:29:00','yyyy-mm-dd hh24

block的初探

二次信任 提交于 2020-01-15 16:11:21
1、 创建一张测试表: create table t1(a integer,b varchar2(100),c varchar2(100)); insert into t1 values(1,null,'aaaa'); insert into t1 values(1,null,'bbbb'); insert into t1 values(1,1111,null); 2、 查找表(段)所在的位置: select extent_id,file_id,block_id from dba_extents where segment_name='T1'; 3、 查找12号文件是什么: select file_name from dba_data_files where file_id=12; 4、 查找具体的块号: 5、 下面用linux命令dd将3029这个块dump出来: dd if=/oradata/oracle/datafiles/NNC_DATA01_07.dbf of=g.dmp bs=8192 skip=3029 count=1 cp g.dmp /db_backup/ 6、 UE打开g.dmp文件进行查看,文件尾部: 其中 蓝色的数字代表:2c是行头,01表示改行使用了1号ITL槽,03表示这一条记录有多少个字段(3个)。 02,c1,02是第一个字段的值,这个字段是数字类型

Oracle block cleanout 说明

 ̄綄美尐妖づ 提交于 2020-01-15 16:10:42
一. Block Cleanout 说明 文章的整理参考 : http://www.orawh.com/60.html 之前的相关测试参考: OraceITL(Interested Transaction List) 说明 http://blog.csdn.net/tianlesoftware/article/details/6573988 OracleBlock scn/commit scn/cleanout scn 说明 http://blog.csdn.net/tianlesoftware/article/details/6660530 block clean out 是指把一个块中的数据从 dirty 变为 clean,等于告诉后面的人,这个块里面的数据是干净的,可以放心的使用,本质上是更改 block header 中的一个标志位。 当commit 的时候,如果被commit 的数据块还在 data buffer 中也要被cleanout,因为 commit 的时候并不一定修改block header (delay block cleanout) 。 Clean out有2种: fast commitcleanout和delayed blockcleanout: oracle有一个modified block list结构

Oracle block cleanout 说明

耗尽温柔 提交于 2020-01-15 16:10:11
一. Block Cleanout 说明 文章的整理参考 : http://www.orawh.com/60.html 之前的相关测试参考: OraceITL(Interested Transaction List) 说明 http://blog.csdn.net/tianlesoftware/article/details/6573988 OracleBlock scn/commit scn/cleanout scn 说明 http://blog.csdn.net/tianlesoftware/article/details/6660530 block clean out 是指把一个块中的数据从 dirty 变为 clean,等于告诉后面的人,这个块里面的数据是干净的,可以放心的使用,本质上是更改 block header 中的一个标志位。 当commit 的时候,如果被commit 的数据块还在 data buffer 中也要被cleanout,因为 commit 的时候并不一定修改block header (delay block cleanout) 。 Clean out有2种: fast commitcleanout和delayed blockcleanout: oracle有一个modified block list结构