oracle服务器上已提交的数据都被记录在重做日志文件上,一旦数据库崩溃,就可以使用重做日志文件恢复数据。
查看数据库目前的重做日志文件配置
select GROUP#, SEQUENCE#, BYTES, MEMBERS, STATUS, ARCHIVED from v$log;
结果:
可以看出:目前有3个重做日志组(group),每组一个重做日志文件(MEMBERS),每个文件200M,当前组是第一组。
select * from v$logfile;
3个重做文件组都位于同一块盘,同一文件夹下,每个日志组中只有一个成员,是不可靠的。
创建disk1、disk2、disk3 三个文件夹,假设它们是三块不同的磁盘。现在决定,将重做日志组设为5个,每个组3个成员,每个成员大小50M,成员分别位于disk1、disk2、disk3。
增加日志组4:
alter database add logfile 2 ('H:\oracle\disk1\onlinelog\REDO04A.LOG', 3 'H:\oracle\disk2\onlinelog\REDO04B.LOG', 4 'H:\oracle\disk3\onlinelog\REDO04C.LOG') 5 SIZE 50M;
查询:
可以看出增加了一个重做日志组4。
增加日志组5
同上;
查询:
发现group1为当前组,当前组不能删除,所以先删除组2和组3
删除组3:
ALTER DATABASE DROP LOGFILE GROUP 3;
可以看出组3被删掉了。
添加新的日志组3
ALTER DATABASE ADD LOGFILE GROUP 3 2 ('H:\oracle\disk1\onlinelog\REDO03A.LOG', 3 'H:\oracle\disk2\onlinelog\REDO03B.LOG', 4 'H:\oracle\disk3\onlinelog\REDO03C.LOG') 5 SIZE 50M;
日志组2同理。
因为日志组1为当前组,不能删除,所以进行切换操作。
ALTER SYSTEM SWITCH LOGFILE;
切换后,日志组2变为当前组,但日志组1处于活动状态,这个状态也是不能删除的,等一段时间后,会转换为非活动态,
这个时候就可以删除日志组1了,
操作同上,最后再查询验证一下: