oracle日志文件的维护
作者:zero_plus
1、刷新重做日志缓存的时机
a.commit
b.缓存满了
c.checkpoint,checkpoint的触发有两种机制:
定时触发,由log_checkpoint_interval[1]参数决定间隔的时间,单位秒;0表示禁用
定量触发,由log_checkpoint_timeout[2]参数决定,表示故障恢复所需要的时间,单位秒;0表示禁用。
2、切换日志的归档方式
a.archive log list (查看日志的日志的归档方式)
b.startup mount
c.alter database archivelog/noarchivelog
d.shutdown immediate ;顺便进行脱机全备份
e.startup
f.archive log start 启用自动归档(当前有效)
alter system set log_archive_start=true scope=spifle;重启后生效
g.修改log_archive_dest_n,指定归档路径
3、日志切换和检查点
日志切换触发检查点,检查点会做一下操作:更新数据文件头、更新控制文件头、刷新数据缓存、刷新日志缓存。【另外dbwn会定时或定量刷新数据缓存,定量:fast_start_io_target(脏数据块的数量),定时:fast_sart_mttr_target(单位秒),数据库能够在该时间内open】
切换日志的命令:alter system switch logfie;
强制检查点(也会导致日志的切换):alter system checkpoint local;对当前实例
alter system checkpoint global;对全局有效
alter tablespace XXX begin backup; --对表空间做检查点
alter tablespace XXX offline;
4、日志归档的时机
当启用日志自动归档时,日志切换会自动归档日志。
当没有启用日志自动归档时,日志切换到最后一个日志时,会造成等待,等待手动归档日志。
5、新增、删除日志组和日志成员
增加日志成员:
Alter database add logfile member ‘filename’ to group groupnumber;
增加日志组:
Alter database add logfile group ‘filename’;
删除日志成员:
Alter database drop logfile member ‘filename’;
删除日志组:
Alter database drop logfile group groupnumber;
5、修改归档日志文件目录
Alter system set log_archive_dest_1=’location=d:/log/’;
Alter system set log_archive_dest_1=’service=tnsname’;
6、重命名重做日志
Alter database clear logfile group n
Shutdown immediate
Copy 日志文件到另一个目录
Alter database rename file “XXXXXX” to “XXXXXX”
Startup
备份控制文件