Oracle RAC环境下的v$log v$logfile(二)
ce_nu
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_number integer 2
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 10
Next log sequence to archive 11
Current log sequence 11 --->当前日志组为11,位于实例1,这两个验证与我们从v$log实例里看到的是一样的情形。
-->查询v$logfile
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- ----------------------------------------------------------------- ---
2 ONLINE +ASM_DATA/mmbo/onlinelog/group_2.262.821029383 NO
2 ONLINE +FRA_DATA/mmbo/onlinelog/group_2.258.821029385 YES
1 ONLINE +ASM_DATA/mmbo/onlinelog/group_1.261.821029381 NO
1 ONLINE +FRA_DATA/mmbo/onlinelog/group_1.257.821029383 YES
3 ONLINE +ASM_DATA/mmbo/onlinelog/group_3.266.821029785 NO
3 ONLINE +FRA_DATA/mmbo/onlinelog/group_3.259.821029787 YES
4 ONLINE +ASM_DATA/mmbo/onlinelog/group_4.267.821029787 NO
4 ONLINE +FRA_DATA/mmbo/onlinelog/group_4.260.821029789 YES
8 rows selected.
--由于每一组日志包含2个成员,因此视图查询返回8行记录。如前面所说,该视图同样包含了所有实例的日志成员。
--从上面的视图可知,当前数据库总共4个日志组,8个日志成员,其中每一组的一个成员位于闪回区。
--->查询gv$log
SQL> select inst_id,group#,thread#,sequence#,members,archived,status,first_time,next_time from gv$log;
INST_ID GROUP# THREAD# SEQUENCE# MEMBERS ARC STATUS FIRST_TIME NEXT_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------------- -------------------
2 1 1 13 2 NO CURRENT 2013/08/05 14:38:36
2 2 1 12 2 YES INACTIVE 2013/08/05 14:04:29 2013/08/05 14:38:36
2 3 2 11 2 NO CURRENT 2013/08/05 14:44:50 2013/08/05 14:44:50
2 4 2 10 2 YES INACTIVE 2013/08/05 14:04:32 2013/08/05 14:38:33
1 1 1 13 2 NO CURRENT 2013/08/05 14:38:36
1 2 1 12 2 YES INACTIVE 2013/08/05 14:04:29 2013/08/05 14:38:36
1 3 2 11 2 NO CURRENT 2013/08/05 14:44:50 2013/08/05 14:44:50
1 4 2 10 2 YES INACTIVE 2013/08/05 14:04:32 2013/08/05 14:38:33
8 rows selected.
-->
关闭任意一节点后查询v$log与gv$log的情形
SQL> ho srvctl stop instance -d mmbo -i mmbo2
SQL> select group#,thread#,sequence#,members,archived,status,first_time,next_time from v$log;
GROUP# THREAD# SEQUENCE# MEMBERS ARC STATUS FIRST_TIME NEXT_TIME
---------- ---------- ---------- ---------- --- ---------------- ------------------- -------------------
1 1 13 2 NO CURRENT 2013/08/05 14:38:36
2 1 12 2 YES INACTIVE 2013/08/05 14:04:29 2013/08/05 14:38:36
3 2 11 2 YES ACTIVE 2013/08/05 14:44:50 2013/08/05 16:21:22
4 2 10 2 YES INACTIVE 2013/08/05 14:04:32 2013/08/05 14:38:33
SQL> select inst_id,group#,thread#,sequence#,members,archived,status,first_time,next_time from gv$log;
INST_ID GROUP# THREAD# SEQUENCE# MEMBERS ARC STATUS FIRST_TIME NEXT_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------------- -------------------
1 1 1 13 2 NO CURRENT 2013/08/05 14:38:36
1 2 1 12 2 YES INACTIVE 2013/08/05 14:04:29 2013/08/05 14:38:36
1 3 2 11 2 YES ACTIVE 2013/08/05 14:44:50 2013/08/05 16:21:22
1 4 2 10 2 YES INACTIVE 2013/08/05 14:04:32 2013/08/05 14:38:33
--从上面的查询可以看出,对于我们当前2节点的数据库,此时v$log与gv$log呈现相同的信息,gv$log仅仅列出了inst_id列为1的情形
--从上面的整个测试结果可知,gv$log视图类似于使用union all, gv$logfile与此同,不再演示
-- select 1 as inst_id, v.* from v$log v --此时v$log位于实例