联机日志文件管理
作用:
主要用来记录对数据库的改变,防止数据丢失。
为了数据库操作快速反应。
维护数据一致性。
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. 非归档模式下,加隐藏参数忽略数据库一致性,可以起到很大的作用,但不支持使用。