查看重做日志:
select *from v$log;
select *from v$logfile;
判断是否归档:
SQL>sqlplus sys as sysdba
SQL>archive log list;
在10g,11g中设置成归档模式:
把数据库重启到mount状态,
alter database archivelog;(同理设置成非归档模式就是alter database noarchivelog)
但是在9i中上一样,但任然要设置一个参数:
show parameter db_recovery_dest;
把其中的参数设置成:log_archive_start=true;
重做日志的管理:
添加重做日志组的语法:alter database [database_name] ADD LOGFILE [GROP number] filename size n [ADD LOGFILE [GROP number]filename size n ]
alter database add logfile grop 4
('\etc\temp\redo4a.log',
'etc\temp\redo4b.log',
'etc\temp\redo4c.log',)
size 10m;
但是:
alter database add logfile
('etc\temp\redoa.log',
'etc\temp\redob.log',
'etc\temp\redoc.log',)
size 10m;
此时默认为重做日志组5
删除联机重做日志组:
alter database [database_name]
drop logfile {group n|('filename'[,'filename']...)}
{group n|('filename'[,'filename']...)}....
|表示或,[]表示可选
alter database drop logfile group 4,group 5;
注意:若联机日志组处于active,则不可以删除。
要切换重做日志组:alter system switch logfile;
强制启动检查点:
alter database checkpoint;
此时会触发日志切换,oracle会寻找下一个可用的重做日志组,如果数据库处于归档模式,则在将当前写满的日志组归档完成前,不会使用新的重做日志组。检查点事件是oracle为了减少数据库实例恢复时间而设置的一个事件,该事件发生时,LGWR将重做日志缓冲区中的数据写入重做日志文件,而同时通知DBWR将数据库高速缓冲区中的已经提交的数据写入数据文件,所以检查点事件越频繁,则数据库恢复的重做数据就越少。此时,检查点事件也会修改数据文件头信息和控制文件信息,以记录检查点的SCN。
虽然删除了重做日志组的成员,但是残留了操作系统的垃圾文件,要彻底删除还要手动删除。
删除联机重做日志组的一个日志成员:
alter database drop logfile member 'etc\temp\redob.log';
添加重做日志成员:
alter database add logfile member
'etc\temp\redoa.log' to group 1,
'etc\temp\redob.log' to group 2,
'etc\temp\redoc.log' to group 3;
清除联机重做日志:
数据库服务器处于归档模式时,正在使用的重做日志组中的文件损坏,则该重做日志不能完成归档,使得数据库无法完成归档而挂起,要通过清除联机重做日志来重新初始化联机重做日志:
alter database clear logfile group n;
这个一定要注意:
ORACLE只把重做日志中的数据迁移到磁盘上,而不能移动到磁带等存储介质上。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29876893/viewspace-1536382/,如需转载,请注明出处,否则将追究法律责任。