注意点: 1、redo要是能sesize的话就完美了 2、drop时候如果active就得checkpoint才能drop 3、物理删除旧redo文件 redo大小影响切换,进而影响性能,至于什么样的业务设置多大暂时还不是很确定,正常情况下设置1g-2g就差不多了。另外可能还跟IO有关,因为在切换时候如果IO差,那么切换就会很慢,这样的话就会影响到性能。 --查询日志组及状态 SQL> select thread#,group#,members,bytes/1024/1024 ,STATUS from v$log;
THREAD# GROUP# MEMBERS BYTES/1024/1024 STATUS ---------- ---------- ---------- --------------- ---------------- 1 1 1 1000 INACTIVE 1 2 1 1000 ACTIVE
--查询路径,将新增的redo放在同一目录中 SQL> SELECT MEMBER FROM v$logfile;
MEMBER -------------------------------------------------------------------------------- /u01/app/Oracle/oradata/test/actlog/redo02.log /u01/app/oracle/oradata/test/actlog/redo01.log
--比如原来redo大小为1000m,现在想调为100m,毕竟是测试环境,没必要搞那么大 SQL> alter database add logfile group 3 ('/u01/app/oracle/oradata/test/actlog/redo03.log') size 100m;
数据库已更改。
SQL> alter database add logfile group 4 ('/u01/app/oracle/oradata/test/actlog/redo04.log') size 100m;
数据库已更改。
SQL> alter database add logfile group 5 ('/u01/app/oracle/oradata/test/actlog/redo05.log') size 100m;
数据库已更改。
SQL> select group#,members,bytes/1024/1024,status from v$log;
GROUP# MEMBERS BYTES/1024/1024 STATUS ---------- ---------- --------------- ---------------- 1 1 1000 CURRENT 2 1 1000 UNUSED 3 1 100 UNUSED 4 1 100 UNUSED 5 1 100 UNUSED 日志切换,准备删除原来的日志,将被删除的日志切换到INACTIVE就可以drop了 SQL> alter system switch logfile;
系统已更改。 --但是发现,切换了好几次,想drop的redo还是ACTIVE,就来个狠的,强制进行检查点 SQL> alter system checkpoint;
系统已更改。
SQL> select group#,members,bytes/1024/1024,status from v$log;
GROUP# MEMBERS BYTES/1024/1024 STATUS ---------- ---------- --------------- ---------------- 1 1 1000 INACTIVE 2 1 1000 INACTIVE 3 1 100 CURRENT 4 1 100 INACTIVE 5 1 100 UNUSED
SQL> alter database drop logfile group 1;
数据库已更改。
SQL> alter database drop logfile group 2;
数据库已更改。
为了保持好看,1、2还想再用,就再走一遍,但报错了。。。SQL> alter database add logfile group 1 ('/u01/app/oracle/oradata/test/actlog/redo01.log') size 100m;alter database add logfile group 1 ('/u01/app/oracle/oradata/test/actlog/redo01.log') size 100m*第 1 行出现错误:ORA-00301: 添加日志文件 '/u01/app/oracle/oradata/test/actlog/redo03.log'时出错 - 无法创建文件ORA-27038: 所创建的文件已存在Additional information: 1物理删除redo文件,找到对应redo目录rm redo01.log redo02.log[oracle@test ~]
SQL> alter database add logfile group 1 ('/u01/app/oracle/oradata/test/actlog/redo01.log') size 100m;
数据库已更改。
SQL> alter database add logfile group 2 ('/u01/app/oracle/oradata/test/actlog/redo02.log') size 100m;
数据库已更改。 添加删除完之后,switch几下看正常不 SQL> alter system switch logfile;
系统已更改。