加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flashback database

发布时间:2020-12-15 17:43:02 所属栏目:百科 来源:网络整理
导读:??????????????????flashback?database ? 1.?? 配置 flashback?database 1) 查看数据库的归档模式以及闪回是否启用 SQL?select?log_mode,open_mode,flashback_on?from?v$database; LOG_MODEOPEN_MODEFLASHBACK_ON ------------?--------------------?-------

??????????????????flashback?database

?

1.??配置flashback?database

1)查看数据库的归档模式以及闪回是否启用

SQL>?select?log_mode,open_mode,flashback_on?from?v$database;

LOG_MODEOPEN_MODEFLASHBACK_ON

------------?--------------------?------------------

NOARCHIVELOG?READ?WRITENO

--flashback?database要求数据库必须处于归档模式,且闪回之后必须使用resetlogs打开数据库

2)数据库开归档

alter?system?set?log_archive_dest_2='location=/archive';

alter?system?set?log_archive_format='orcl_%t_%s_%r.arc'?scope=spfile;

3)置闪回目录、闪回目录空间大小

SQL>?show?parameter?db_recover

NAMETYPEVALUE

------------------------------------?-----------?------------------------------

db_recovery_file_deststring/u01/app/oracle/fast_recovery_

area

db_recovery_file_dest_sizebig?integer?4977M

alter?system?set?db_recovery_file_dest='/u01/app/oracle/fast_recovery_area';

--可以用该命令来给恢复目录设置新路径(闪回目录中可存放:归档的日志文件,controlfile?spfile?的备份文件,闪回日志,和rman的备份集。)

alter?system?set?db_recovery_file_dest_size=4977m;

--用该命令来指定恢复目录的的大小

4)?设置闪回保留目标生存期

show?parameter?db_flashback

alter?system?set?db_flashback_retention_target=60;--设置保留时间为1小时

5)?mount状态下来启用flashback?database如在open状态下则出现下列错误提示ORA-38759

SQL>?startup?mount;

ORACLE?instance?started.

Total?System?Global?Area839282688?bytes

Fixed?Size2233000?bytes

Variable?Size478154072?bytes

Database?Buffers356515840?bytes

Redo?Buffers2379776?bytes

Database?mounted.

SQL>?alter?database?archivelog;

Database?altered.

--开归档

SQL>?alter?database?flashback?on;

Database?altered.

--flashback?database

2.??flashback?database?相关视图

1v$flashback_database_log;

select?oldest_flashback_scn?old_flhbck_scn,oldest_flashback_time?old_flhbck_tim,

retention_target?rete_trgt,flashback_size/1024/1024?flhbck_siz,

estimated_flashback_size/1024/1024?est_flhbck_size

from?v$flashback_database_log;

OLDEST_FLASHBACK_SCN?保留的最低系统改变号
LDEST_FLASHBACK_TIME?最低系统改变号的时间
RETENTION_TARGET?闪回日志保留时间(单位:时间)
FLASHBACK_SIZE?当前闪回日志的大小(单位:字节)
ESTIMATED_FLASHBACK_SIZE?预估满足保留时间所需要的空间大小(单位:字节)

--查看数据库可以恢复到的最早时间点或scn,查看flashback_size已使用大小,和预计大小闪回区大小

2v$flashback_database_stat

alter?session?set?nls_date_format='yyyy-mm-dd?hh24:mi:ss';

select?*from?v$flashback_database_stat;

BEGIN_TIME?一个时间间隔的开始
END_TIME?一个时间间隔的结束
FLASHBACK_DATA?在此时间间隔内写闪回日志大小(单位:字节)
DB_DATA?在此时间间隔内数据库读写大小(单位:字节)
REDO_DATA?在此时间间隔内输出在线日志的大小(单位:字节)
ESTIMATED_FLASHBACK_SIZE?在时间间隔的结束时预估满足保留时间所需要的空间大小(单位:字节)

--说简单点就是根据间隔时间(1小时)内数据库的活动情况,来估计保证预估满足你设定的保留时间(db_flashback_retention_target),所需的闪回去大小

3v$recovery_file_dest;

col?name?format?a50;

select?name,space_limit/1024/1024?sp_limt,

space_used/1024/1024?sp_usd,space_reclaimable/1024/1024?sp_recl,

number_of_files?num_fils?from?v$recovery_file_dest;

--查看闪回区的实际使用情况(闪回去空间不足会导致数据库hung住)

在数据库运行过程中,oracle?自动向该区域写入文件,当剩余空间不足15%的时候,它就会在alert?中增加警告,提示你空间不足。但此时不会影响数据库的正常运转,直到所有空间统统被用掉之后,oracle?首先尝试删除寻些过期的文件,冗余文件(备份策略之外的备份集或归档等)以及闪回日志,如果这些做完了,还是没有空闲空间的话,数据库就被hang住了

4v$sgastat

select?*?from?v$sgastat?where?name?like?'flashback%';

--查看sga中分配的闪回空间大小

3.??使用flashback?database闪回数据库

步骤(前提归档日志可用)

关闭数据库

启动数据库到mount状态(exclusive模式)

闪回至某个时间点,SCNlog?sequence?number

使用resetlogs打开数据库

1)使用sqlplus实现闪回

可以接受一个时间标记或一个系统改变号实参

sqlplus几种常用的闪回数据库方法

FLASHBACK?[STANDBY]?DATABASE?[<database_name>]TO?[BEFORE]?SCN?<system_change_number>?--基于SCN闪回

FLASHBACK?[STANDBY]?DATABASE?[<database_name>]?TO?[BEFORE]?TIMESTMP?<system_timestamp_value>--基于时间戳闪回

FLASHBACK?[STANDBY]?DATABASE?[<database_name>]?TO?[BEFORE]?RESTORE?POINT?<restore_point_name>--基于时点闪回

如下面的示例:

a.基于时间戳闪回

SQL>?flashback?database?to?timestamp('2010-10-24?13:04:30','yyyy-mm-dd?hh24:mi:ss');

b.基于scn

SQL>?flashback?database?to?scn?918987;

c.基于闪回点

SQL>?flashback?database?to?restore?point?b1_load;

2)使用RMAN进行flashback?database

使用RMAN进行闪回数据库的几种常用办法

aRMAN>?flashback?database?to?scn=918987;

bRMAN>?flashback?database?to?sequence=85?thread=1;

4.??flashback?database使用注意事项

1)闪回区没有空间会导致数据库hung

--闪回目录中可存放:归档的日志文件,controlfile?spfile?的备份文件,闪回日志,和rman的备份集。(且归档和备份集默认放在闪回区中)

2Flashback?Database?不能解决Media?Failure

3)一旦关闭闪回数据库,flashback?recovery?area中的闪回日志将自动全部删除

4)如果闪回数据库的时间点之间进行了控制文件的恢复或重建,数据文件的收缩,或删除了某个表空间,则闪回将失败

5)即便以闪回后resetlogs打开数据库,当前闪回日志里的内容仍然保留,仍然可以继续进行闪回到其他的scnrestlogs方式打开数据库。之所以考虑以read?only方式打开数据库,主要是因为以resetlog方式打开数据库后,用户即可操作数据库,无法保证校验闪回的准确性。另外,当闪回数据库与DATA?GUARD结合后,当主库发生逻辑损坏,我们可以闪回备库,然后以read?only方式打开备库,将数据从备库中导出后导入到主库中,这样将对数据和业务的影响减小到最小。

6)闪回日志在出现空间压力的情况下,oracle会自动删除闪回日志,则有可能导致无法闪回到指定的时间点。如果希望闪回到指定的时间点,可进行如下操作

SQL>?create?restore?point?must_to_flashback?guarantee?flashback?database;

这样我们就给当前时间点取must_to_flashback这个名字,确保能闪回到该时间点上

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读