联机日志文件管理

联机日志文件管理

作用:

  1. 主要用来记录对数据库的改变,防止数据丢失。

  2. 为了数据库操作快速反应。

  3. 维护数据一致性。

1、查看当前数据库的日志

select * from v$log;

在这里插入图片描述

2、查看当前书库库日志文件位置

Select * from v$logfile;

日志状态:
unused:表示从未对联机重做日志文件组进行写入,这是刚添加联机重做日志组状态。
current:表示当前正在使用的联机重做日志文件组。

active:表示联机重做日志文件组是活动的,但不是当前正在使用的。崩溃恢复需要该状态,可能归档,也可能没有归档。

clearing:表示执行alter database clear logfile后正在将该日志重建一个空日志,日志清除后,状态为unused。

在这里插入图片描述

3、添加日志成员

Alter database add logfie member ‘/ora/oracle.oradata/orcl/redo1.log’ to group 1;

在这里插入图片描述

SQL> select * from v$logfile where group#=1;

在这里插入图片描述

4、删除日志成员

SQL> alter database drop logfile member ‘/ora/oracle/oradata/orcl/redo1.log’;

在这里插入图片描述

5、日志切换

alter system switch logfile;

在这里插入图片描述
在这里插入图片描述

6.日志的重定位及重命名

SQL> ho cp /ora/oracle/oradata/orcl/redo01.log /ora/oracle/oradata/redo01.rdo

SQL> alter database rename file ‘/ora/oracle/oradata/orcl/redo01.log’

2 TO ‘/ora/oracle/oradata/redo01.rdo’;

Database altered.

SQL> select * from v$logfile where group#=1;

在这里插入图片描述

7.清空日志文件组

SQL> alter database clear logfile group 3;

SQL> select * from v$log;

在这里插入图片描述

8.联机重做日志异常(日志不一致、丢失、损坏)处理

1. ****日志文件不一致****:清空不一致日志组,oracle数据库一致性关闭的可以在启动时清空日志文件。

SQL> alter database clear logfile group n; —>inactive可清空

SQL> alter database clear unarchived logfile group n; ---->active可清空

2. ****日志文件丢失****:

方法一:数据库一致性关闭的,如果日志文件丢失可以通过清空日志文件的办法恢复,步骤同上。

方法二:数据库非一致性关闭

a. 加隐藏参数:同control_file里的_allow_resetlog_corruption隐藏参数解决问题。

b. 如果归档模式可以通过recover指令恢复:欺骗的手段

sql>recover database using backup controlfile;

sql>alter database open resetlogs;

b. 如果归档模式可以通过recover指令恢复:欺骗的手段

sql>recover database using backup controlfile;

sql>alter database open resetlogs;

c. 非归档模式下,加隐藏参数忽略数据库一致性,可以起到很大的作用,但不支持使用。