1、增加日志组: alter database add logfile group 4 '/oradata/oracle/oradata/oracle_sid/redo04.log' size 100M; 2、改变日志组的大小( 首先看下归档状态: SQL> select group#,thread#,members,archived,status from v$log; 4 rows selected. 其次DROP GROUP 1(此时最好是别DROP GROUP3,至于什么后果,我没有往这方向TEST。) SQL> alter database drop logfile group 1; 再删除redo01.log SQL> !rm /oradata/oracle/oradata/NC5X/redo01.log 最后增加redo01.log: SQL> alter database add logfile group 1 '/oradata/oracle/oradata/ORACLE_SID/redo01.log' size 100M; SQL> select group#,thread#,members,archived,status from v$log; 4 rows selected. 此时,切换下日志: SQL> alter system switch logfile; 注意:alter system switch logfile 和alter system archive log current这两个切换的区别。 alter system switch logfile 是不等待归档完成就switch logfile。如果database尚未开启archive log mode。那用这个切换是毋庸置疑了。另外,也是对单实例database和RAC模式下当前实例执行日志切换。 而alter system archive log current则需要等待归档完成才switch logfile。会对中所有实例执行日志切换。 整体上说来,在自动归档的库里,两个命令的所产生的结果几乎一样。有区别的是alter system archive log current所用的时间会比alter system switch logfile 的长。 3、增加日志组成员: SQL> alter database add logfile member '/oraback/logbackup/redo01_b.log' to group 1; 注意:alter 语句中不可设定redo01_b.log的大小。
Alter语句运行之后,生成的Redo01_b.log的大小与redo01.log的大小一致。 路径可以选择与默认路径不一致。 最后,得声明一下:可以同时增加几个日志组。也可以同时增加几个日志组成员。语句格式如下: ALTER DATABASE ADD LOGFILE '/LOCATION_DUEST/REDO01.LOG' SIZE 10M,''/LOCATION_DUEST/REDO02.LOG' SIZE 10M... ...;依次类推。 增加成员也类似。不在赘述。 4、删除日志组及日志组成员: 原则:删除前必须遵守如下原则,每个实例必须至少有两个日志组;当一个组处于ACTIVE或者CURRENT的状态时不可删除;删除日志组的操作只对数据库进行更改,操作系统的文件尚未删除;当删除时适用DROP LOGFILE GROUP N语句时,此时GROUP N内的所有成员都将被删除。 ALTER DATABASE DROP LOGFILE GROUP N; 删除日志成员的原则:当你删除一个是该组中最后一个成员的时候,你不能删除此成员;当组的转台处于current的状态时,不能删除组成员;在归档模式下,必须得归档之后才能删除;删除日志组成员的操作只对数据库进行更改,操作系统的文件尚未删除 ALTER DATABASE DROP LOGFILE MEMBER '/LOCATION_DUST/REDO0N_N.LOG'; |
oracle 增加日志组,日志成员的一些命令
oracle 增加日志组,日志成员的一些命令
2012-05-14 13:42