由于rac每个节点都有自己的私有日志组,所以在集群数据库各节点上都会有一个自己的日志线程号,这个线程号由参数THREAD确定(可以通过show parameters thread查看),该值不会改变.
我们可以通过下面的语句进行确定各日志线程号对应的日志组.
select * from v$log;
注意GROUP#,THREAD#,ARC,STATUS列的值.
同时我们也可以确定下当前日志组的路径,可以通过以下语句确定
select * from v$logfile;
当给数据库集群各节点创建新的重做日志组时,DBA需要指定这个新建日志组被分配给哪个线程(即THREAD#列对应的值)。
如下:分别给日志线程1和2进行日志新建
alter database add logfile thread 1
group 11 ('/u01/app/oracle/oradata/rac/redo11a.log','/u01/app/oracle/oradata/rac/redo11b.log') size 200m ,
group 12 ('/u01/app/oracle/oradata/rac/redo12a.log','/u01/app/oracle/oradata/rac/redo12b.log') size 200m ,
group 13 ('/u01/app/oracle/oradata/rac/redo13a.log','/u01/app/oracle/oradata/rac/redo13b.log') size 200m ,
group 14 ('/u01/app/oracle/oradata/rac/redo14a.log','/u01/app/oracle/oradata/rac/redo14b.log') size 200m ;
alter database add logfile thread 2
group 21 ('/u01/app/oracle/oradata/rac/redo21a.log','/u01/app/oracle/oradata/rac/redo21b.log') size 200m ,
group 22 ('/u01/app/oracle/oradata/rac/redo22a.log','/u01/app/oracle/oradata/rac/redo22b.log') size 200m ,
group 23 ('/u01/app/oracle/oradata/rac/redo23a.log','/u01/app/oracle/oradata/rac/redo23b.log') size 200m ,
group 24 ('/u01/app/oracle/oradata/rac/redo24a.log','/u01/app/oracle/oradata/rac/redo24b.log') size 200m ;
新的日志组建好后,就把原来的日志组删除,我们可以使用 ALTER DATABASE DROP LOGFILE GROUP 命令来删除联机重做日志文件组,在删除日志组时,要确定当前系统是否正在使用该日志组,这里我们可以通过查看v$log视图中的STATUS列来确定,STATUS列的值为CURRENT或ACTIVE就表示当前正在使用,我们可以通过ALTER system switch logfile;命令来进行日志组切换,让它变成INACTIVE(分别在各节点上操作,变成INACTIVE需要等几秒钟).通过重复执行几次下面的两条语句,以便确定STATUS的值.
ALTER system switch logfile;
select * from v$log;
另外 ALTER DATABASE DROP LOGFILE GROUP命令只删除该联机重做日志文件组在数据字典中的定义,不会级联删除操作系统中对应的物理文件,如果需要删除对应的物理文件,DBA必须手动通过操作系统命令进行删除。
下面为删除日志组的具体命令
ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 3;
ALTER DATABASE DROP LOGFILE GROUP 4;
手动通过操作系统命令进行删除文件
rm -rf /u01/app/oracle/oradata/rac/redo1.log
rm -rf /u01/app/oracle/oradata/rac/redo2.log
rm -rf /u01/app/oracle/oradata/rac/redo3.log
rm -rf /u01/app/oracle/oradata/rac/redo4.log
到此便完成了rac联机重做日志的重建工作