千家信息网

Redo丢失的4种情况是什么

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章将为大家详细讲解有关Redo丢失的4种情况是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一.说明:1.以下所说的当前日志指日志状态为CURRENT,A
千家信息网最后更新 2024年11月23日Redo丢失的4种情况是什么

这篇文章将为大家详细讲解有关Redo丢失的4种情况是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。



一.
说明:
1.以下所说的当前日志指日志状态为CURRENT,ACTIVE,非当前日志指日志状态为INACTIVE
2.不用考虑归档和非归档模式,2种模式下的Redo丢失情况一样。


二.丢失Redo的4种情况:

第一种情况:非当前日志,正常关闭。
第二种情况:非当前日志,非正常关闭。
第三种情况:当前日志,正常关闭。
第四种情况:当前日志,非正常关闭。


三.处理方法:

第一、二种情况的处理方法一样,直接把日志文件clear即可。
SQL> alter database clear logfile group 3;
SQL> alter database clear unarchived logfile group 3;//如果INACTIVE状态的在线Redo还未归档,增加关键字unarchived完成clear操作。(ACTIVE,INACTIVE都有可能未完成归档,归档是否完成可以查看v$log.archived字段)。

例子:

SQL> startup mount

ORACLE 例程已经启动。

Total System Global Area 263639040 bytes

Fixed Size 1384012 bytes

Variable Size 167772596 bytes

Database Buffers 88080384 bytes

Redo Buffers 6402048 bytes

数据库装载完毕。

SQL> select group#,thread#,status,archived from v$log;

GROUP# THREAD# STATUS ARCHIV

---------- ---------- -------------------------------- ------

1 1 CURRENT NO

3 1 ACTIVE NO

2 1 INACTIVE YES

SQL> alter database clear logfile group 3;

alter database clear logfile group 3

*

第 1 行出现错误:

ORA-01624: 日志 3 是紧急恢复实例 orcl (线程 1) 所必需的

ORA-00312: 联机日志 3 线程 1: 'E:\APP\ORADATA\ORCL\REDO03.LOG'

SQL> alter database clear logfile group 2;

数据库已更改。


第三种情况的处理办法:
SQL>startup mount;
SQL>recover database until cancel;
SQL>alter database open resetlogs;

例子1:

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount

ORACLE 例程已经启动。

Total System Global Area 263639040 bytes

Fixed Size 1384012 bytes

Variable Size 167772596 bytes

Database Buffers 88080384 bytes

Redo Buffers 6402048 bytes

数据库装载完毕。

SQL> alter database open resetlogs;

alter database open resetlogs

*

第 1 行出现错误:

ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效

SQL> recover database until cancel;

完成介质恢复。

SQL> alter database open resetlogs;

数据库已更改。

例子2(第三种情况的第二个处理方法):

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount

ORACLE 例程已经启动。

Total System Global Area 263639040 bytes

Fixed Size 1384012 bytes

Variable Size 167772596 bytes

Database Buffers 88080384 bytes

Redo Buffers 6402048 bytes

数据库装载完毕。

SQL> select group#,thread#,status,archived from v$log;

GROUP# THREAD# STATUS ARCHIV

---------- ---------- -------------------------------- ------

1 1 CURRENT NO

3 1 INACTIVE YES

2 1 INACTIVE YES

SQL> alter database clear logfile group 2;

数据库已更改。

SQL> alter database clear logfile group 3;

数据库已更改。

SQL> alter database clear unarchived logfile group 1;

数据库已更改。

这里CURRENT的Redo日志文件组能被clear unarchived。


SQL> alter database open;

数据库已更改。

如果Redo日志文件丢失,clear操作完成之后将在原有位置创建新的Redo日志文件。


第四种情况的处理方法:

1.通过备份来还原、恢复数据。
2.通过修改参数文件中的参数
_allow_resetlogs_corruption=TRUE
来强制启动数据库。<<<< 虽然能够启动数据库到open状态,但是启动后的数据库数据字典、数据有可能导致不一致的情况出现,故需要在open下把整个数据库export,然后删除库,重建,再将export的数据import到新的数据库中。

四.验证数据库是否正常关闭的方法

SQL> select open_mode from v$database;

OPEN_MODE

--------------------

READ WRITE


SQL> select status from v$instance;

STATUS

------------

OPEN


SQL> select file#,checkpoint_change#,fuzzy from v$datafile_header;

FILE# CHECKPOINT_CHANGE# FUZ

---------- ------------------ ---

1 1165820 YES

2 1165820 YES

3 1165820 YES

4 1165820 YES

FUZZY bit in datafile header means that there may have been writes into a datafile after the last checkpoint. E.g. there may be changes written to datafile with higher SCN than checkpoint_change# stored in datafile header (seen from v$datafile_header.checkpoint_change#).
FUZYY表示模糊性,意思是,该数据文件处于模糊状态,在最近一次CHECKPOINT后,该文件上的数据可能被修改过了,但没来得及更新到该文件上(或者该文件不知道),需要读取日志信息来判断。


SQL> select file#,checkpoint_change#,last_change# from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE#

---------- ------------------ ------------

1 1165820

2 1165820

3 1165820

4 1165820

由于数据库是打开的状态,所以终止SCN是空,SCN的内容可参考文章:http://space.itpub.net/23135684/viewspace-627343


SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。


SQL> startup mount

ORACLE 例程已经启动。

Total System Global Area 313860096 bytes

Fixed Size 1384352 bytes

Variable Size 155189344 bytes

Database Buffers 150994944 bytes

Redo Buffers 6291456 bytes

数据库装载完毕。


SQL> select file#,checkpoint_change#,fuzzy from v$datafile_header;

FILE# CHECKPOINT_CHANGE# FUZ

---------- ------------------ ---

1 1166324 NO

2 1166324 NO

3 1166324 NO

4 1166324 NO

在正常关闭数据库的情况下,FUZZY字段都应该是NO,表示没有模糊不清的SCN存储在数据文件中。

SQL> select file#,checkpoint_change#,last_change# from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE#

---------- ------------------ ------------

1 1166324 1166324

2 1166324 1166324

3 1166324 1166324

4 1166324 1166324


正常关闭数据库的终止SCN应该和启动SCN相同。FUZZY等于NO,且数据库的终止SCN等于启动SCN等于数据文件SCN,那么可以认为数据库是正常关闭,且在打开数据库之前不需要执行实例恢复或Crash恢复。


SQL> alter database open;

数据库已更改。


SQL> shutdown abort

ORACLE 例程已经关闭。


SQL> startup mount

ORACLE 例程已经启动。

Total System Global Area 313860096 bytes

Fixed Size 1384352 bytes

Variable Size 155189344 bytes

Database Buffers 150994944 bytes

Redo Buffers 6291456 bytes

数据库装载完毕。


SQL> select file#,checkpoint_change#,fuzzy from v$datafile_header;

FILE# CHECKPOINT_CHANGE# FUZ

---------- ------------------ ---

1 1166327 YES

2 1166327 YES

3 1166327 YES

4 1166327 YES

非正常关闭数据库实例,FUZZY字段的值是YES。


SQL> select file#,checkpoint_change#,last_change# from v$datafile;

FILE# CHECKPOINT_CHANGE# LAST_CHANGE#

---------- ------------------ ------------

1 1166327

2 1166327

3 1166327

4 1166327

非正常关闭数据库实例,终止SCN依然为空。那么,在数据库被打开之前必须使用归档Redo日志完成实例恢复或Crash恢复。

关于"Redo丢失的4种情况是什么"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

数据 数据库 日志 情况 文件 状态 实例 方法 处理 装载 例子 字段 篇文章 内容 参数 文章 更多 模式 线程 错误 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 sql 服务器连接 网络安全工程师证报名时间 轻量化应用服务器可以玩游戏吗 不备案的服务器怎么防护 B S软件开发的过程 网络技术开发合同范本 公安部计算机信息网络安全员 2018重大网络安全事件6 绍兴制造软件开发要求 浙江麒麟网络技术有限公司 做软件开发的女生怎么追 成都小程序软件开发公司 上海趣佳互联网科技有限公司 服务器端 微信支付 软件开发技术文档排版 爱艾贴软件开发 导航测绘软件开发 成都高新区网络安全整治 建筑施工图ai出图软件开发 计算机网络技术警察 吴忠市网络安全知识竟赛 龙之战怎么查看服务器 国泰安数据库怎么查找st企业 职位序列与职位族 软件开发 深圳市云创网络技术有限公司 商丘市一中网络安全检查 软件开发流程及辅助工具 严重侵害了软件开发者的权益 网络安全检测与防范技术 上海网络安全咨询服务
0