好记性不如烂笔头,记下方便查阅。
日志文件能不能resize,直接扩大日志文件的大小?10g是不能的。
一般方法就是新建两个临时日志组(oracle至少要求两个日志组),切换到这两个临时日志组后,删掉重建扩大或缩小,再添加日志组成员。用在操作过程中
用alter system checkpoint 来使日志状态active转inactive
用alter system switch logfile切换日志组
1. 在原有的日志组上创建新的日志组,增大日志文件大小,我是通过新创建大的日志组然后进行切换实现的
alter database add logfile group 4 ('/u01/oracle/product/10.0.2/oradata/ORCL/redo41.log') size 100m;
alter database add logfile group 5 ('/u01/oracle/product/10.0.2/oradata/ORCL/redo51.log') size 100m;
alter database add logfile group 6 ('/u01/oracle/product/10.0.2/oradata/ORCL/redo61.log') size 100m;
2. 切换日志到新建的日志组
alter system switch logfile;
3. 查看日志状态
select * from v$log;
注意:只有status为inactive并且archived为YES时方可删除日志组(这个的意思为该重做日志己经归档,否则会报ora-01624)
4. 删除日志组
alter database drop logfile group 1;
5. 操作系统级别删除数据文件
rm -rf redo01.log
6.增加日志成员(最好把成员放到不同的磁盘上做到多功,避免一个组的日志文件全部损坏数据库宕机)
alter database add logfile member '/u01/oracle/product/10.0.2/oradata/ORCL/redo42.log' to group 4;
alter database add logfile member '/u01/oracle/product/10.0.2/oradata/ORCL/redo52.log' to group 5;
alter database add logfile member '/u01/oracle/product/10.0.2/oradata/ORCL/redo42.log' to group 3;
7.删除日志组成员
alter database drop logfile member '/u01/oracle/product/10.0.2/oradata/ORCL/redo42.log';
下面介绍关于删除日志一些原则:
1. 在删除日志操作前,确保每个实例必须至少有两个日志组
2. 当一个组处于ACTIVE 或者CURRENT的状态时不可删除,删除日志组的操作只对数据库进行更改,操作系统的文件尚未删除
3. 当删除时适用DROP LOGFILE GROUP N语句时,此时GROUP N内的所有成员都将被删除
alter database drop logfile group 1;
4. 删除日志成员的时,当你删除一个是该组中最后一个成员的时候,你不能删除此成员
5. 当组处于current的状态时,不能删除组成员;在归档模式下,必须得归档之后才能删除
6. 删除日志组成员的操作只对数据库进行更改,操作系统的文件尚未删除
alter database drop logfile member '/location_dust/redo01_1.log';