设为首页 收藏本站
查看: 1198|回复: 0

[经验分享] OCP读书笔记(12)

[复制链接]

尚未签到

发表于 2015-6-17 06:19:02 | 显示全部楼层 |阅读模式
  闪回数据库使用的是闪回日志,闪回日志存在于闪回目录(也就是快速闪回区中)
闪回日志:就是数据块修改之前的镜像,简称前像
  1.查看闪回目录的位置:
show parameter recovery
  如果闪回目录没有设定,要先设定
先设定大小:alter system set db_recovery_file_dest_size=2G;
再设定位置:alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area';
  闪回日志就存在于/u01/app/oracle/flash_recovery _area目录中
  发现没有闪回日志因为闪回数据库功能没有打开:
SQL> select flashback_on from v$database;
  2. 打开闪回数据库:
  数据库必须处于归档模式:



SQL> archive log list
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog
SQL> alter database flashback on
SQL> alter database open;
SQL> select flashback_on from v$database;
  cd /u01/app/oracle/flash_recovery_area/ORCL/flashback
ls
o1_mf_8vt1w7cz_.flb--这个文件就是闪回日志
  闪回日志:就是数据块修改之前的镜像,简称前像,由RVWR进程写入闪回日志
  ps -ef | grep rvwr
  3. 使用闪回数据库恢复scott用户
  模拟损坏:



SQL> drop user scott cascade;
SQL> create user tt default tablespace users identified by a;
SQL> grant connect, resource to tt;
SQL> conn tt/a
SQL> create table tt as select * from tab;
SQL> select * from tt;
SQL> conn /as sysdba
select 'execute dbms_logmnr.add_logfile('''||member||''')' from v$logfile
SQL> exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo03.log')
SQL> exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo02.log')
SQL> exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo01.log')
SQL> exec dbms_logmnr.start_logmnr();
SQL> select scn, sql_redo from v$logmnr_contents where sql_redo like '%drop%';
SQL> select min(scn) from v$logmnr_contents where sql_redo like '%drop%' --找最新的scn

SQL> shutdown immediate
SQL> startup mount;
SQL> flashback database to scn 521102;
SQL> alter database open; --error
SQL> alter database open read only;--以只读方式打开,检查数据是否已经闪回,如果没有闪回,可以启动到mount重新闪回

SQL> conn scott/tiger
SQL> select * from tab;
SQL> conn tt/a--从故障点之后的数据将全部丢失

SQL> conn /as sysdba
SQL> shutdown immediate
SQL> startup mount
SQL> flashback database to scn 521102;
SQL> alter database open resetlogs;
  4. 闪回目标:



SQL> show parameter db_flashback_retention_target
  5. 监视闪回数据库:
  监视快速恢复区的空间使用情况是非常重要的,因为这样可以知道在多大程度上满足了保留目标
  1)查看快速恢复区磁盘限额:



select estimated_flashback_size, flashback_size from v$flashback_database_log;
  estimated_flashback_size :使用先前记录的闪回数据,来估计要满足当前闪回保留目标时闪回日志在快速恢复区中所需的磁盘空间,该估计基于以下两段时间中较短时间段内的工作量:自实例启动以来的时间段或等于闪回保留目标的最近时间间隔
flashback_size :提供当前闪回数据的大小,以字节表示
  2)确定当前闪回窗口:



select oldest_flashback_scn, oldest_flashback_time from v$flashback_database_log;
  oldest_flashback_scn 和 oldest_flashback_time :显示可以将数据库闪回到的最小SCN 和时间的近似值
  3)使用v$flashback_database_stat视图监视闪回数据库日志中记录闪回数据的开销。可以使用此视图确定闪回数据生成过程中的比率变化



select begin_time, end_time, flashback_data, db_data, redo_data, estimated_flashback_size as est_fb_sze from v$flashback_database_stat;
  基于这些信息,可能需要调整保留时间或快速恢复区大小
flashback_data :表示在时间间隔内写入的闪回数据字节数
redo_data :表示在时间间隔内写入的重做数据字节数
db_data:提供读取和写入的数据块字节数
estimated_flashback_size:时间间隔的结束时,评估需要闪回空间的大小
  4)可以查询 v$recovery_file_dest 来查看有关快速恢复区的信息



select name, space_limit as quota, space_used as used, space_reclaimable as reclaimable, number_of_files as files from v$recovery_file_dest ;
  列说明:
NAME:快速恢复区名称,指示位置字符串
SPACE_LIMIT:DB_RECOVERY_FILE_DEST_SIZE 参数中指定的磁盘限额
SPACE_USED:快速恢复区文件使用的空间(以字节表示)
SPACE_RECLAIMABLE:使用空间管理算法,通过删除过时、冗余的以及其它低优先级的文件而回收的空间大小
NUMBER_OF_FILES:文件数
  5)查看哪些文件使用闪回区域:



select FILE_TYPE TYPE, PERCENT_SPACE_USED PSU, PERCENT_SPACE_RECLAIMABLE PSR, NUMBER_OF_FILES NOF
from V$FLASH_RECOVERY_AREA_USAGE;
  6.还原点:
  1)什么是还原点(Restore point)
还原点相当于某个时间点或者某个SCN的别名
  2)Restore point的类型
Restore point有两种类型:Normal和Guaranteed
  2.1)Normal restore point:相当于某个时间点或者SCN的一个别名,restore point的名字和对应的SCN会保存在控制文件中创建了normal restore point后,如果需要执行flashback database/flashback table/point-in-time recovery等操作时,就可以制定目标时间点为该restore point,而不需要指定当时的SCN



select flashback_on from v$database;
create restore point b1;
select scn,TIME,NAME from v$restore_point;
drop user scott cascade;
SQL> shutdown immediate
SQL> flashback database to restore point b1;----b1就相当于scn号
SQL> alter database open resetlogs;
SQL> conn scott/tiger
SQL> select * from tab;
SQL> conn /as sysdba
  闪回数据库无论打开还是关闭,都可以创建normal restore point



select flashback_on from v$database;
drop restore point b1;
shutdown immediate
startup mount
alter database flashback off;
select flashback_on from v$database;
alter database open;
create restore point b1;
drop restore point b1;
  2.2)Guaranteed restore point:
  1. 它的功能与normal restore point的功能基本一致,也是作为SCN的一个别名
2. 与flashback database相关的特性,在执行flashback database到之前的某个时间点时,必须保证所需要的flashback log存在,创建一个guaranteed restore point,可以保证能将数据库flashback到该点,即使没有系统开启flashback database功能,这是因为,在创建guaranteed restore point之后,对于任何block的第一次变更,都会将其前映象整个的记录下来
  如果没有开启flashback database功能,只能将数据库闪回到guaranteed restore point;如果启用了flashback database功能,那么guaranteed restore point可以保证能将数据库flashback到guaranteed restore point之后的任何时间点
  如果数据库没有开启闪回数据库功能,创建guaranteed restore point。此时只能将数据库闪回到guaranteed restore point
  实验:



select flashback_on from v$database;
create restore point b1 guarantee flashback database;---报错,由于没有启用闪回数据库功能
shutdown immediate
startup mount
create restore point b1 guarantee flashback database;
select flashback_on from v$database;
alter database open;
drop user scott cascade;
shutdown immediate
startup mount
flashback database to restore point b1;
alter database open resetlogs;
conn scott/tiger

此时只能将数据库闪回到guaranteed restore point



drop restore point b1;
select flashback_on from v$database;
shutdown immediate
startup mount
create restore point b1 guarantee flashback database;
select flashback_on from v$database;
alter database open;
create user test default tablespace users identified by a;
grant connect,resource to test;
create restore point b2;
drop user test cascade;
shutdown immediate
startup mount
flashback database to restore point b2;
alter database open;

  如果数据库开启闪回数据库功能,创建guaranteed restore point
此时能将数据库闪回到guaranteed restore point之后的任何时间点



select flashback_on from v$database;
create restore point b1 guarantee flashback database;---创建成功,由于启用闪回数据库功能
select flashback_on from v$database;
create user test default tablespace users identified by a;
grant connect,resource to test;
create restore point b2;
drop user test cascade;
shutdown immediate
startup mount
flashback database to restore point b2;
alter database open resetlogs;
查询restore point:
select NAME, SCN, TIME, GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE from V$RESTORE_POINT
  name:restore point的名称
scn:创建restore point时的scn
time:创建restore point的时间点
GUARANTEE_FLASHBACK_DATABASE:是否是确保
STORAGE_SIZE:为了满足确保,闪回日志所占用的磁盘空间大小

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-77993-1-1.html 上篇帖子: OCP读书笔记(11) 下篇帖子: 【转】OPTIMIZER
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表