ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle11g RAC在实例关闭后自动在启动实例上归档

Oracle11g RAC在实例关闭后自动在启动实例上归档

原创 Linux操作系统 作者:yangtingkun 时间:2009-05-15 23:19:06 0 删除 编辑

今天测试RAC环境归档的时候意外发现了这个问题,在11gRAC环境中,如果数据库处于ARCHIVELOG模式,如果一个节点关闭,则另外的节点自动完成关闭节点的日志切换,并将ARCHIVELOG归档到本地节点。

 

检查数据库信息:

SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
test1

SQL> select instance_name from gv$instance;

INSTANCE_NAME
----------------
test1
test2

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
PL/SQL Release 11.1.0.6.0 - Production
CORE    11.1.0.6.0      Production
TNS for Solaris: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production

显然这是一个两节点11gRAC环境,下面检查归档设置:

SQL> select name, log_mode from v$database;

NAME                                                         LOG_MODE
------------------------------------------------------------ ------------
TEST                                                         ARCHIVELOG

SQL> select inst_id, name, value       
  2  from gv$parameter
  3  where name = 'log_archive_dest_1';

   INST_ID NAME                    VALUE
---------- ----------------------- ------------------------------------------------
         1 log_archive_dest_1      LOCATION=/data/oracle/oradata/test/archivelog
         2 log_archive_dest_1      LOCATION=/data/oracle/oradata/test/archivelog

检查当前的日志信息和归档信息:

SQL> select group#, thread#, sequence#, status from v$log;  

    GROUP#    THREAD#  SEQUENCE# STATUS
---------- ---------- ---------- ----------------
         1          1         13 INACTIVE
         2          1         14 CURRENT
         3          1         12 INACTIVE
         4          2          9 INACTIVE
         5          2         10 INACTIVE
         6          2         11 CURRENT

已选择6行。

SQL> select thread#, sequence#, name from v$archived_log;

   THREAD#  SEQUENCE# NAME
---------- ---------- -----------------------
         2          6
         1          6
         1          7
         1          8
         2          7
         2          8
         1          9
         2          9
         1         10
         2         10
         1         11
         1         12
         1         13

已选择13行。

下面执行归档:

SQL> alter system archive log current;

系统已更改。

SQL> select group#, thread#, sequence#, status from v$log; 

    GROUP#    THREAD#  SEQUENCE# STATUS
---------- ---------- ---------- ----------------
         1          1         13 INACTIVE
         2          1         14 ACTIVE
         3          1         15 CURRENT
         4          2         12 CURRENT
         5          2         10 INACTIVE
         6          2         11 ACTIVE

已选择6行。

SQL> select thread#, sequence#, name from v$archived_log where name is not null;

   THREAD#  SEQUENCE# NAME
---------- ---------- ------------------------------------------------------------
         1         14 /data/oracle/oradata/test/archivelog/1_14_684067893.dbf
         2         11 /data/oracle/oradata/test/archivelog/2_11_684067893.dbf

SQL> host ls -l /data/oracle/oradata/test/archivelog
total 3680
-rw-r-----   1 oracle   oinstall 1868288 May 15 17:09 1_14_684067893.dbf

SQL> host ssh 172.0.2.63 ls -l /data/oracle/oradata/test/archivelog
Enter passphrase for key '/export/home/oracle/.ssh/id_rsa':
total 3936
-rw-r-----   1 oracle   oinstall 2006016 May 15 17:13 2_11_684067893.dbf

执行ALTER SYSTEM ARCHIVE LOG CURRENT会使得两个实例分别归档各个线程的REDO文件,通过查询两个节点服务器上对应的目录也可以看到,当前实例归档了线程1对应的REDO,而远端实例归档了线程2对应的REDO日志。

现在将实例1关闭:

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE
例程已经关闭。
SQL> host
$ ls -l /data/oracle/oradata/test/archivelog
total 3680
-rw-r-----   1 oracle   oinstall 1868288 May 15 17:09 1_14_684067893.dbf
$ ssh 172.0.2.63 ls -l /data/oracle/oradata/test/archivelog
Enter passphrase for key '/export/home/oracle/.ssh/id_rsa':
total 4028
-rw-r-----   1 oracle   oinstall   47104 May 15 17:21 1_15_684067893.dbf
-rw-r-----   1 oracle   oinstall 2006016 May 15 17:13 2_11_684067893.dbf

可以看到,实例1关闭后,实例1对应的当前日志自动归档到远端节点上。

下面启动实例1

SQL> startup
ORACLE
例程已经启动。

Total System Global Area  776896512 bytes
Fixed Size                  2098776 bytes
Variable Size             229300648 bytes
Database Buffers          541065216 bytes
Redo Buffers                4431872 bytes
数据库装载完毕。
数据库已经打开。
SQL> select thread#, sequence#, name from v$archived_log where name is not null;

   THREAD#  SEQUENCE# NAME
---------- ---------- ------------------------------------------------------------
         1         14 /data/oracle/oradata/test/archivelog/1_14_684067893.dbf
         2         11 /data/oracle/oradata/test/archivelog/2_11_684067893.dbf
         1         15 /data/oracle/oradata/test/archivelog/1_15_684067893.dbf

SQL> select group#, thread#, sequence#, status from v$log; 

    GROUP#    THREAD#  SEQUENCE# STATUS
---------- ---------- ---------- ----------------
         1          1         16 CURRENT
         2          1         14 INACTIVE
         3          1         15 INACTIVE
         4          2         12 CURRENT
         5          2         10 INACTIVE
         6          2         11 INACTIVE

已选择6行。

下面关闭实例2

SQL> host srvctl stop inst -d test -i test2

SQL> select thread#, sequence#, name from v$archived_log where name is not null;

   THREAD#  SEQUENCE# NAME
---------- ---------- ------------------------------------------------------------
         1         14 /data/oracle/oradata/test/archivelog/1_14_684067893.dbf
         2         11 /data/oracle/oradata/test/archivelog/2_11_684067893.dbf
         1         15 /data/oracle/oradata/test/archivelog/1_15_684067893.dbf
         2         12 /data/oracle/oradata/test/archivelog/2_12_684067893.dbf

SQL> select group#, thread#, sequence#, status from v$log; 

    GROUP#    THREAD#  SEQUENCE# STATUS
---------- ---------- ---------- ----------------
         1          1         16 CURRENT
         2          1         14 INACTIVE
         3          1         15 INACTIVE
         4          2         12 ACTIVE
         5          2         10 INACTIVE
         6          2         11 INACTIVE

已选择6行。

SQL> host ls -l /data/oracle/oradata/test/archivelog
total 3762
-rw-r-----   1 oracle   oinstall 1868288 May 15 17:09 1_14_684067893.dbf
-rw-r-----   1 oracle   oinstall   41472 May 15 17:21 2_12_684067893.dbf

实例2的归档日志在实例2关闭后也归档到了实例1的节点上。

这个特性在10g中还没有,Oracle实现这个功能是为了更安全的实现备份,另外STANDBY环境也可以因此而获益,避免STANDBY一直等待主节点关闭实例对应的归档日志,而无法继续应用新的日志信息。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-598279/,如需转载,请注明出处,否则将追究法律责任。

上一篇: M000进程失败
请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10470039