2011年8月22日月曜日

[高可用] RAC 下的在线日志组重建

-- RAC 各节点都有自己的私有日志组,在各节点上都会有一个自己的日志线程号,这个线程号由参数 THREAD 确定,可以通过show parameters thread查看
sys@XE> show parameter thread
NAME       TYPE            VALUE
---------- --------------- --------
thread    integer       0

-- Log Group 中的 Thread
-- 与参数中不一致???
sys@XE> select * from v$log;
    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS          FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- --------------- ------------- -------------------
         1          1       1921    5242880          2 YES INACTIVE              2297490 2011-08-17 17:00:59
         2          1       1922    5242880          2 NO  CURRENT               2318234 2011-08-22 09:16:01

2 rows selected.

sys@XE> select * from gv$log;
   INST_ID     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS          FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- --------------- ------------- -------------------
         1          1          1       1921    5242880          2 YES INACTIVE              2297490 2011-08-17 17:00:59
         1          2          1       1922    5242880          2 NO  CURRENT               2318234 2011-08-22 09:16:01

2 rows selected.

-- 当给数据库集群各节点创建新的重做日志组时,需要指定这个新建日志组被分配给哪个线程(即THREAD#列对应的值)
alter database add logfile thread 1
     group 11 ('/oracle/redo11a.log','/oracle/redo11b.log') size 200m,
     group 12 ('/oracle/redo12a.log','/oracle/redo12b.log') size 200m;

alter database add logfile thread 2
     group 21 ('/oracle/redo21a.log','/oracle/redo21b.log') size 200m,
     group 22 ('/oracle/redo22a.log','/oracle/redo22b.log') size 200m;

-- 确认当前日志组不是 current 或 active 状态后,删除旧日志组及物理文件

0 件のコメント:

コメントを投稿