管理联机重做日志文件
联机重做日志文件主要特点:
a
b
c
d
对数据库做的任何改变都会被记录在联机重做日志中
提供了一种恢复机制
必须组成组
至少需要两组
一个 oracle数据库至少有两个重做日志文件,一个组一个。如果同一个组有两个文件,LGWR
会向两个文件写入相同的信息,同一组的每个成员都有一个相同的日志序列号。Log switch:将一个
日志组切换到另一个日志组,Log switch引发了 checkpoint,Checkpoint:就修改过的数据回写到磁
盘的数据文件中。
LGWR什么时候开始写
a当一个事务 commit的时候(一个事务 commit并不是把数据写到数据文件中,而是写到联机
重做日志文件中)
b每 3秒钟写一次
c当 Redo Log Buffer达到 1/3满的时候
d Redo Log Buffer中有超过 1M内容的时候
e在一个 check point执行之前,LGWR先把信息写到联机重做日志文件中。
手工切换日志
alter system switch logfile;
手工启动检查点
alter system checkpoint;
查询当前系统中日志的情况
select * from v$logfile;
增加一个新组
文件系统:alter database add logfile group 4 (‘/directory_name/redo_name.log’) size
xxxxM;
裸卷:alter database add logfile group 4 (‘/dev/vgX/rredo_xx_NN’) size 1023M;
给日志组增加一个新成员
文件系统: alter database add logfile member ‘/directory_name/redo_name.log’ to
group 4;
裸卷:alter database add logfile member ‘/dev/vgX/rredo_xx_NN’ to group 2;
删除一个成员(只是在控制文件中删除相关信息,在 OS中还是真实存在)
alter database drop logfile member ‘/directory_name/redo_name.log’;
alter database drop loggile member ‘/dev/vgX/rredo_xx_NN’;
active或 current状态的组不能够被 drop
删除一个组
alter database drop logfile group 2;
重新放置和重命名联机重做日志文件(在做此操作前,必须要对数据库进行全备份)有两种方法:
a、使用 alter database rename file命令
1)关闭数据库
2)拷贝联机重做日志文件到新目录下
3)将数据库置于 MOUNT状态
4)执行命令 alter database rename file ‘/directory_name/redo_name1.log ‘ to
‘/directory_name/redo_name2.log ‘;
5)将数据库置于 OPEN状态
b、增加一个新成员,删除旧成员
alter database add logfile member ‘/directory_name/redo_name.log’ to group 2;
alter database drop logfile member ‘/directory_name/redo_name.log’;
alter system switch logfile;