1.创建重做日志及成员
alter database database_name
add logfile group n
filename size m
参数意义:
database_name //需要修改的数据库名,省略则表示当前数据库
n 表示创建重做日志的组号,组号在重做日志组中是唯一的
filename // 日志文件组存储的默认位置
m //日志文件组的大小,默认的大小是50M
2.创建重做日志成员
alter database database_name
add logfile member
'/data/oracle/newlog.log'
to group 2;
3.删除日志文件组
1)无论日志组中有多少个成员,一个数据库至少需要两个日志组
2)只能删除inactive状态的日志组,如果想要删除current状态的必须手工切换到inactive状态
3)如果数据库处于归档模式,在删除前必须保证它已经被归档,可以查询v$log看是否归档,
select group#,archived,status from v$log;
删除:alter database database_name
drop logfile
group n
注:删除只是将他们在数据字典和控制文件中将他们的记录信息删除了,并不会物理的删除操作系统中的相应文件,需手工手工在操作系统删除相应的文件。
1.修改redo日志文件的位置和名称
1)shutdown 关闭数据库
2)在操作系统中重命名redo日志文件或者复制到新的位置上
3)startup mount 重启数据库
4)rename file 重设名称和路径
alter database rename file
2 '/data/oracle/newredofile1.log'
3 to
4 '/data/oracle/newredo01.log';
Database altered.
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/data/oracle/oradata/orcl/redo03.log
/data/oracle/oradata/orcl/redo02.log
/data/oracle/oradata/orcl/redo01.log
/data/oracle/newredo01.log
/data/oracle/newredomember1.log
2.清空重做日志文件
alter database database_name
clear logfile group n
如果redo日志没有归档,则需要添加unarchived关键字
alter database database_name
clear unarchived logfile group n
注:如果清空的redo日志未归档可能造成数据丢失,所以应提前备份数据。
3.重做日志的切换
在某些特殊的情况下lgwr不自动切换到下一个重做日志组,需要手工切换
当未写满时强制执行切换下一个如下:alter system switch logfile
注:每次切换都会在告警文件中记录,无论是自动还是手动
4.重做日志的大小
REDO日志大小不能低于4M,因为一个REDO的一个BLOCK为512 bytes,日志文件要求不低于8192个 blocks,所以REDO日志大小不低于4M。
如果低于4M-即小于8192个blocks,
会报错: ORA-00336: log file size 2048blocks is less than minimum 8192 blocks
5.REDO日志特殊情况下的处理:
当前重做日志组不能删除,如要删除,先用alter system switch logfile切换。
每个重做日志组至少有一个成员才能正常工作,归档模式时要删除的成员未被归档完时无法删除。从系统中删除成员后,操作系统文件除OMF方式管理外都存在,要从操作系统层面删除。
用在redo日志文件崩溃系统挂起,清除redo日志文件使用 alter database clear logfile group 3;
如崩溃的redo日志文件已不能归档,使用命令清除已崩溃的redo日志文件 alter database clear unarchived logfilegroup 3;