ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:192KB ,
资源ID:7692813      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7692813.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Oracle10g闪回功能实例讲解.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Oracle10g闪回功能实例讲解.doc

1、Oracle 闪回特性(FLASHBACK DATABASE) -- Oracle 闪回特性(FLASHBACK DATABASE) --=====================================   闪回技术通常用于快速简单恢复数据库中出现的认为误操作等逻辑错误,从闪回的方式可以分为基于数据库级别闪回、表级别闪回、事务 级别闪回,根据闪回对数据的影响程度又可以分为闪回恢复,闪回查询。闪回恢复将修改数据,闪回点之后的数据将全部丢失。而闪回查询则可 以查询数据被DML的不同版本,也可以在此基础之上确定是否进行恢复等。本文主要描述flashback database的

2、使用。 一、flashback database特性 flashback data1base闪回到过去的某一时刻 闪回点之后的工作全部丢失 使用resetlogs创建新的场景并打开数据库(一旦resetlogs之后,将不能再flashback至resetlogs之前的时间点) 常用的场景:truncate table、多表发生意外错误等 使用闪回日志来实现数据库闪回,闪回点之后的数据将丢失 二、flashback database的组成 闪回缓冲区:当启用flashback database,则sga中会开辟一块新区域作为闪回缓冲区,大小由系统分配

3、 启用新的rvwr进程:rvwr进程将闪回缓冲区的内容写入到闪回日志中,注意闪回日志不同于联机重做日志,闪回日志在联机重做日志基础之 上生成,是完整数据块映像的日志。联机日志则是变化的日志。闪回日志不能复用,也不能归档。闪回日志使用循环写方式。 三、flashback database的配置 flashback database要求数据库必须处于归档模式,且闪回之后必须使用resetlogs打开数据库 a.查看数据库的归档模式及闪回是否启用 SQL> select log_mode,open_mode,flashback_on from v$databas

4、e;   LOG_MODE OPEN_MODE FLASHBACK_ON ------------ ---------- ------------------ ARCHIVELOG READ WRITE NO --FLASHBACK_ON为NO,则表示闪回特性尚未启用 b.查看及设置闪回目录、闪回目录空间大小等 --下面查看恢复目录及恢复目路分配的大小 --可以使用alter system set db_recovery_file_dest 来设置新路径 --可以使用alter system set db_r

5、ecovery_file_dest_size来设定新的大小 SQL> show parameter db_recovery   NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest string /u01/app/oracle/flash_recovery

6、 _area db_recovery_file_dest_size big integer 2G c.设置闪回保留目标生存期 SQL> show parameter db_flashback --缺省为分钟,即小时   NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_flas

7、hback_retention_target integer 1440 SQL> alter system set db_flashback_retention_target=30; --设定保留时间为半小时 d.在mount状态下来启用flashback,如在open状态下则出现下列错误提示 SQL> alter database flashback on; alter database flashback on * ERROR at line 1: ORA-38759: Database must be m

8、ounted by only one instance and not open. --一致性关闭数据库后,在mount状态下设置flashback SQL>startup mount exclusive; SQL> select status from v$instance;   STATUS ------------ MOUNTED   SQL> alter database flashback on; --开启闪回数据库功能   SQL> ho ps -ef | grep rvw

9、可以看到新增了后台进程rvwr oracle 3563 1 0 12:12 ? 00:00:00 ora_rvwr_orcl   --下面查看闪回区分配的大小为大约M,闪回分钟以内的数据则需要M左右的空间 --注意列oldest_flashback_time说明了允许返回的最早的时间点 SQL> select oldest_flashback_scn old_flhbck_scn,oldest_flashback_time old_flhbck_tim, 2 retention_target rete_trgt,flash

10、back_size/1024/1024 flhbck_siz, 3 estimated_flashback_size/1024/1024 est_flhbck_size 4 from v$flashback_database_log;   OLD_FLHBCK_SCN OLD_FLHBC RETE_TRGT FLHBCK_SIZ EST_FLHBCK_SIZE -------------- --------- ---------- ---------- --------------- 915137 24-OCT-10 30

11、 7.8125 11.2519531   SQL> select * from v$flashback_database_stat; --查看闪回   BEGIN_TIM END_TIME FLASHBACK_DATA DB_DATA REDO_DATA ESTIMATED_FLASHBACK_SIZE --------- --------- -------------- ---------- ---------- ------------------------ 24-OCT-10 24-OCT-10 7905280 8

12、6802432 96329728 0   SQL> select * from v$sgastat where name like 'flashback%'; --查看sga中分配的闪回空间大小   POOL NAME BYTES ------------ -------------------------- ---------- shared pool flashback generation buff 3981204

13、 shared pool flashback_marker_cache_si 9196 SQL> ho ls -hlt $ORACLE_BASE/flash_recovery_area/ORCL/flashback --查看生成的闪回日志 total 7.9M -rw-r----- 1 oracle oinstall 7.9M Oct 24 12:37 o1_mf_6d7dkogw_.flb 四、使用flashback database闪回数据库 步骤(前提归档日志可用) 关闭数据库 启动数据库到mount状态(exclusi

14、ve模式) 闪回至某个时间点,SCN或log sequence number 使用resetlogs打开数据库 1.使用sqlplus实现闪回 可以接受一个时间标记或一个系统改变号实参 sqlplus几种常用的闪回数据库方法 FLASHBACK [STANDBY] DATABASE [] TO [BEFORE] SCN --基于SCN闪回 FLASHBACK [STANDBY] DATABASE [] TO [BEFORE] TIMESTM

15、P --基于时间戳闪回 FLASHBACK [STANDBY] DATABASE [] TO [BEFORE] RESTORE POINT --基于时点闪回 如下面的示例: SQL> flashback database to timestamp('2010-10-24 13:04:30','yyyy-mm-dd hh24:mi:ss'); SQL> flashback database to scn 918987; SQL> flas

16、hback database ro restore point b1_load; a.基于时间戳闪回 SQL> select count(1) from usr1.tb1; --查询用户usr1下表tb1中的记录数   COUNT(1) ---------- 404944 SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') tm from dual; --获得系统当前的时间   TM ------------------- 2010-10

17、24 13:04:30   SQL> drop user usr1 cascade; --删除帐户usr1,同时帐户usr1下的所有对象将被删除   SQL> conn scott/tiger; --使用scott 帐户登陆   SQL> create table tb_emp as select * from emp; --新创建表tb_emp   SQL> shutdown immediate; --关系系统   SQL> startup mount ; --重新到mou

18、nt状态   SQL> flashback database to timestamp --实施闪回 2 to_timestamp('2010-10-24 13:04:30','yyyy-mm-dd hh24:mi:ss') ; SQL> alter database open resetlogs; SQL> select count(1) from usr1.tb1; --帐户usr1及其对象tb1被成功闪回   COUNT(1) ---------- 404944   SQ

19、L> select count(1) from scott.tb_emp; --闪回成功后,在闪回点之后修改的数据全部丢失 select count(1) from scott.tb_emp * ERROR at line 1: ORA-00942: table or view does not exist b.基于SCN号闪回 SQL> select current_scn from v$database; --获得当前的SCN号   CURRENT_SCN -----------

20、 918987   SQL> drop table usr1.tb1; --删除用户usr1下的表tb1 SQL> alter system checkpoint; --手动执行检查点   SQL> select file#,checkpoint_change# from v$datafile;   FILE# CHECKPOINT_CHANGE# ---------- ------------------ 5 921478   SQL> shutdown abort

21、 SQL> startup mount;   SQL> flashback database to scn 918987;   SQL> select count(1) from usr1.tb1;   COUNT(1) ---------- 404944   c.基于时点闪回 SQL> create table t(id int,col varchar2(20)); --创建表t   SQL> insert into t values(1,'ABC');   SQL> inser

22、t into t values(2,'DEF');   SQL> commit;   SQL> create restore point bef_damage; --创建闪回点   SQL> insert into t values(3,'GHI');   SQL> select ora_rowscn,id,col from t; --查看表t的记录   ORA_ROWSCN ID COL ---------- ---------- -------------------- 1874406

23、 1 ABC 1874406 2 DEF 1874406 3 GHI SQL> shutdown immediate; SQL> startup mount exclusive; SQL> flashback database to restore point bef_damage; --实施时点闪回 SQL> alter database open resetlogs; SQL> select * from t; --闪

24、回成功后,闪回点之后的数据丢失   ID COL ---------- -------------------- 1 ABC 2 DEF 2.使用RMAN进行flashback database 使用RMAN进行闪回数据库的几种常用办法 RMAN> flashback database to scn=918987; RMAN> flashback database to sequence=85 thread=1; SQL> create table scott.tb_emp as select * from sc

25、ott.emp;   SQL> select count(1) from scott.tb_emp;   COUNT(1) ---------- 14   SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') tm from dual;   TM ------------------- 2010-10-24 13:59:38   SQL> drop table scott.tb_emp;   SQL> shutdown abort; SQL> star

26、tup mount;   RMAN> flashback database 2> to time="to_date('2010-10-24 13:59:00','yyyy-mm-dd hh24:mi:ss')";   SQL> select count(1) from scott.tb_emp;   COUNT(1) ---------- 14   查询视图:v$recovery_file_dest将显示闪回区的使用情况 SQL> select name,space_limit/1024/1024 sp_limt 2

27、 ,space_used/1024/1024 sp_usd,space_reclaimable/1024/1024 sp_recl, 3 number_of_files num_fils from v$recovery_file_dest;   NAME SP_LIMT SP_USD SP_RECL NUM_FILS --------------------------------------------- ---------- ---------- ----

28、 ---------- /u01/app/oracle/flash_recovery_area 2048 472.070313 380.671875 18   可以将某些表空间排除在闪回之外   SQL> alter tablespace users flashback off;   SQL> select name,flashback_on from v$tablespace where ts#=4;   NAME FLA --------------- ---

29、 USERS NO   如果需要对上述表空间启用闪回功能,则需要在mount模式下对该表空间进行开启该功能。   五、总结 闪回策略是针对Oracle撤销功能的增强,为快速恢复数据库提供了更多的便利。数据库的闪回恢复的速度要快于RMAN以及基于用户管理的备份与恢复,其主要原因是因为数据库闪回使用的是闪回日志,而闪回日志中保存的是数据块的完整镜像。其次闪回能够恢复的程度取决于闪回空间的大小以及闪回的保留策略,闪回空间大小会被循环使用,而闪回的保留策略则决定了闪回日志保留的时间长度。总之,合理的平衡恢复速度与可用空间依赖于具体服务要求. Oracle 闪回特

30、性(FLASHBACK DROP & RECYCLEBIN) -- Oracle 闪回特性(FLASHBACK DROP & RECYCLEBIN) --==============================================   FLASHBACK DROP 特性允许在不丢失任何数据库的情况下将指定的表恢复至其被删除的时间点,并保持数据库为当前状态。闪回删除并不是 真正的删除表,而是把该表重命名并放入回收站,类似于Windows的回收站一样。当某个活动对象需要使用该表所占用的空间时,该表才会被真 正删除。只要空间未被复用,该表即可恢复。本文主要讲述了FLAS

31、HBACK DROP特性以及闪回特性中回收站(RECYCLEBIN)的管理。   一、FLASHBACK DROP 的功能 将先前删除的表恢复到删除之前的状态 恢复该表的索引以及触发器,授权 恢复该表的约束,包括唯一约束、主键约束、非空约束。外键约束不可恢复 可以实现基于系统和基于会话的flash drop操作 alter system set recyclebin = on | off; alter session set recyclebin = on | off; drop table(oracle 10g)命令并不真正删除表,在内部被映射为re

32、name命令,即是将其重命名之后放入回收站。   二、理解表重名的过程 scott@ORCL> create table tb_emp as select * from emp; --基于emp表来创建表tb_emp   scott@ORCL> alter table tb_emp add constraint empno_pk --添加主键约束,将产生主键索引 2 primary key(empno); scott@ORCL> alter table tb_emp add constraint ename_uk --添加唯一约

33、束,将产生唯一索引 2 unique(ename); scott@ORCL> alter table tb_emp add constraint sal_ck check(sal>0); --添加check约束   scott@ORCL> alter table tb_emp modify job constraint job_nn not null; --添加非空约束   scott@ORCL> alter table tb_emp add constraint dept_fk --添加外键约束 2 f

34、oreign key(deptno) references dept(deptno) on delete cascade;   scott@ORCL> select constraint_name,constraint_type --查看tb_emp表上的所有约束 2 from user_constraints where table_name='TB_EMP';   CONSTRAINT_NAME C --------------- - EMPNO_PK P ENAME_UK U SAL_CK

35、 C JOB_NN C DEPT_FK R --下面查看表tb_emp所在文件的id,块的起始id,大小,以及该对象的对象id等 sys@ORCL> select file_id,block_id,bytes from dba_extents where segment_name='TB_EMP';   FILE_ID BLOCK_ID BYTES ---------- ---------- ---------- 4 393 65536 sys@OR

36、CL> select object_name,object_id from dba_objects --查看表tb_emp的对象ID 2 where object_name = 'TB_EMP';   OBJECT_NAME OBJECT_ID -------------------- ---------- TB_EMP 54493 --对表进行重命名 scott@ORCL> alter table tb_emp rename to tb_employees;   sys@ORCL>

37、select file_id,block_id,bytes from dba_extents --重命名后所在文件的id,块的起始id,大小没有发生变化 2 where segment_name='TB_EMPLOYEES';   FILE_ID BLOCK_ID BYTES ---------- ---------- ---------- 4 393 65536 sys@ORCL> select object_name,object_id from dba_objects --重命名后对象ID没有发生

38、变化 2 where object_name = 'TB_EMPLOYEES';   OBJECT_NAME OBJECT_ID -------------------- ---------- TB_EMPLOYEES 54493   scott@ORCL> select index_name,index_type --重命名后索引和约束也没有发生变化 2 from user_indexes where table_name='TB_EMPLOYEES' 3 union a

39、ll 4 select constraint_name,constraint_type 5 from user_constraints where table_name='TB_EMPLOYEES';   INDEX_NAME INDEX_TYPE ------------------------------ --------------------------- EMPNO_PK NORMAL ENAME_UK NORMAL

40、 EMPNO_PK P ENAME_UK U SAL_CK C JOB_NN C DEPT_FK R 从上面的演示可以看出对于表的重命名仅仅是修改了表名,而对于表对象的ID,以及表存放的位置,块的起始,大小等并未发生实质性的变化 三、删除表并实施闪回 1.删除表tb_employees并查看回收站的信息 scott@ORCL> d

41、rop table tb_employees;   scott@ORCL> select object_name,original_name,can_undrop, 2 base_object from user_recyclebin;   OBJECT_NAME ORIGINAL_NAME CAN BASE_OBJECT ------------------------------ -------------------------------- --- -----------

42、 BIN$k1zC3yEiwZvgQAB/AQBRVw==$0 TB_EMPLOYEES YES 54493 BIN$k1zC3yEhwZvgQAB/AQBRVw==$0 ENAME_UK NO 54493 BIN$k1zC3yEgwZvgQAB/AQBRVw==$0 EMPNO_PK NO 54493   scott@ORCL> select count(1) from "BIN$k1zC3yEiwZvgQAB/AQBRVw==$0"

43、 --可以使用回收站名来访问对象,但要对对象加双引号   COUNT(1) ---------- 13 2.实施闪回并查看闪回后的情况 scott@ORCL> flashback table tb_employees to before drop; --进行闪回   Flashback complete.   scott@ORCL> select count(1) from tb_employees; --闪回后表存在并且可以访问   COUNT(1) ----------

44、13   scott@ORCL> select index_name,index_type --查看闪回后索引,约束的情况,发现其名称仍然为BIN$名称 2 from user_indexes where table_name='TB_EMPLOYEES' 3 union all 4 select constraint_name,constraint_type 5 from user_constraints where table_name='TB_EMPLOYEES';   INDEX_NA

45、ME INDEX_TYPE ------------------------------ --------------------------- BIN$k1zC3yEgwZvgQAB/AQBRVw==$0 NORMAL BIN$k1zC3yEhwZvgQAB/AQBRVw==$0 NORMAL BIN$k1zC3yEcwZvgQAB/AQBRVw==$0 P BIN$k1zC3yEdwZvgQAB/AQBRVw==$0 U BIN$k1zC3yEewZvgQAB/AQBRVw==$0 C BIN$k1zC3yE

46、fwZvgQAB/AQBRVw==$0 C 从上面的查询可以看出闪回之后索引约束的名字还是使用了以BIN开头,由系统生成的名字,可以将其改回,但外键约束已经不存在了。 3.尝试对表DML操作 scott@ORCL> insert into tb_employees(empno,ename,job,sal,deptno) 2 select 9999,'Robinson','DBA',3000,50 from dual;   1 row created. --可以成功插入,deptno列的外键约束已经被删除,故deptno为号成功插入  

47、 scott@ORCL> alter index "BIN$k1zC3yEgwZvgQAB/AQBRVw==$0" rename to EMPNO_PK;   Index altered. --将BIN开头的索引改回原来的名字,其余的约束名修改在此省略 4.下面演示表空间不足时无法闪回表删除的问题 sys@ORCL> select tablespace_name,sum(bytes/1024/1024) ||' M' 2 from dba_free_space where tablespace_name='TBS1' 3 gro

48、up by tablespace_name; --表空间tbs1的可用空间为M   TABLESPACE_NAME SUM(BYTES/1024/1024)||'M' ------------------------------ --------------------------------- TBS1 .9375 M   flasher@ORCL> create table tb1 tablespace tbs1 as select * from dba_objects

49、 2 where rownum < 6000;   sys@ORCL> select tablespace_name,sum(bytes/1024/1024) ||' M' 2 from dba_free_space where tablespace_name='TBS1' 3 group by tablespace_name; --在该表空间创建表tb1之后,可用空间为.25M   TABLESPACE_NAME SUM(BYTES/1024/1024)||'M' -------------------

50、 --------------------------------- TBS1 .25 M flasher@ORCL> drop table tb1; --将表tb1删除   flasher@ORCL> show recyclebin; --删除后的对象位于回收站中 ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服